Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Optimised Design Patterns for Professional Firmware Development
Introduction
Welcome(Same as Promo) (1:44)
Course Requirements
Introduction to Design Patterns
Introduction to Design Patterns (2:51)
Importance of Design Patterns in Embedded Systems (3:01)
Differences between Embedded and General Software Design Patterns (5:37)
Introduction to the Unified Modeling Language(UML)
The Module Notation (4:10)
Understanding Module Relationships(Pt.1) (3:25)
Understanding Module Relationships(Pt.2) (2:52)
The Gang of Four
Overview of the Gang of Four(GoF) (1:35)
Categories of the GoF Design Patterns (1:08)
Setting Up
Downloading CubeIDE (2:34)
Installing CubeIDE (2:38)
Getting the required documentation (7:41)
Getting the required package for bare-metal development (21:19)
Testing the project setup (15:54)
Developing Some Generic Drivers for Running Examples
Important information about this section
Programming : Enabling the Floating Point Unit (FPU) (18:00)
Programming : Developing a UART Driver - Analyzing the Documentation (11:35)
Programming : Developing a UART Driver - Listing out the steps (4:00)
Programming : Developing a UART Driver - Implementing the Init. function (22:13)
Programming : Developing a UART Driver - Implementing the Write function (5:39)
Programming : Developing a UART Driver - Testing the Driver (6:39)
Programming : Developing the System Timebase - Analyzing the Documentation (8:28)
Programming : Developing the System Timebase - Implementing the Init. function (9:52)
Programming : Developing the System Timebase - The rest of the functions (12:15)
Programming : Developing the System Timebase - Testing the Timebase (5:34)
Programming : BSP : Listing the out the Required Functions (7:55)
Programming : Writing the LED Driver (5:01)
Programming : Writing the PushButton Driver (4:00)
Programming : Testing the Board Support Package (3:35)
Programming : Analyzing the Documentation (5:21)
Programming : Listing out the steps for developing the ADC Driver (5:27)
Programming : Writing the ADC Initialization function (13:21)
Programming : Writing the ADC Read function (14:05)
Programming : Analyzing the Documentation for the SPI Driver (7:34)
Programming : Intializing the GPIO Pins for SPI (11:00)
Programming : Implementaing Structures for Configruation Parameters (15:29)
Programming : Configuring the Parameters (15:41)
Programming : Writing the SPI Initialization function (14:55)
Programming : Writing the SPI Transmit Function (Pt.1) (9:27)
Programming : Writing the SPI Transmit Function (Pt.2) (10:26)
Programming : Transmitting 16-bit Data (17:54)
Programming : Transmitting 8-bit Data (6:46)
Programming : Receiving Data (11:05)
Programming : Testing the SPI Driver (15:47)
Programming : Analyzing the Documentation for the I2C Driver (10:47)
Programming : I2C : The GPIO Initialization (10:35)
Programming : Configuring the I2C Parameters (10:22)
Programming : Implementing the I2C Read function (13:44)
Programming : Implementing the I2C Burst Read function (7:25)
Programming : Implementing the I2C Write functions (10:17)
The Singleton Design Pattern
Overview of the Singleton Design Pattern (1:50)
Programming: Updating the Workspace (0:46)
Programming: Implementing the UART Singleton Structure (3:16)
Programming: Implementing the UART Singleton (3:42)
Programming: Updating the other Functions to Conform with the Design Pattern (5:45)
Programming: Testing the UART Singleton (2:49)
Programming: Comparing the Execution Time of the Singleton to the Default Implementation (18:00)
The Builder Design Pattern
Overview of the Builder Design Pattern (2:15)
Components of the Builder Pattern (2:18)
Programming: Implementing the UART Builder Structure (3:09)
Programming: Implementing the UART Builder Initialization Function (4:14)
Programming: Implementing the Build Function (5:32)
Programming: Implementing the Functions for Building the Parts (4:00)
Programming: Testing the Builder Design Pattern (9:00)
The Factory Design Pattern
Introduction to the Factory Design Pattern (6:56)
Why Use the Factory Pattern In Embedded Systems (1:16)
Programming: Implementing the CommProtocolType Enumerator (3:54)
Programming: Implementing the Communication Protocol Structure (1:59)
Programming: Implementing the Protocol Factory (4:13)
Programming: Implementing the UART Protocol File (6:50)
Programming: Implementing the SPI and I2C Protocol Files (3:32)
Programming: Implementing the Protocol Detection Function (3:21)
Programming: Testing the Factory Design Pattern (7:29)
The Hardware-Proxy Design Pattern
Introduction to the Hardware-Proxy Design Pattern (2:33)
Why and When to Use Hardware-Proxy Design Pattern (2:35)
Programming: Implementing the GPIO Proxy (5:10)
Programming: Implementing the Proxy Functions (5:06)
Programming: Creating the Real GPIO Instance and the Secure Proxy Layer (2:47)
Programming: Implementing the Functions for Accessing Pins Securely (6:10)
Programming: Updating the Allowed Pins at Runtime (1:48)
Programming: Exposing the Secure Functions to other Modules (2:14)
Programming: Testing the Hardware-Proxy Pattern for Secure Pin Access (17:58)
The Decorator Design Pattern
Introduction to the Decorator Design Pattern (2:40)
Programming: Implementing the Decorator Pattern- The ADC Interface (3:23)
Programming: Implementing the ADC Logger Structure (4:29)
Programming: Implementing the Concrete ADC Function (1:51)
Programming: Implementing the Read Function (3:37)
Programming: Implementing the Logger Initialization Function (2:47)
Programming: Testing the Decorator Design Pattern (6:16)
The Mediator Design Pattern
Introduction to the Mediator Design Pattern (4:54)
Challenges and Real World Applications (1:34)
Programming: Implementing the Mediator Interface (5:30)
Programming: The Interface Files for the Colleague Objects (3:23)
Programming: Implementing the System Context Structure (3:46)
Programming: Implementing the Colleague Methods (6:12)
Programming: Implementing the Concrete Mediator (3:50)
Programming: Implementing the Concrete Mediator(Pt.2) (5:41)
Programming: Implementing the System Initialization Function (3:29)
Programming: Testing the System (5:12)
Developing a Home Automation System with the Mediator Pattern
Programming: Implementing the Mediator Interface (3:56)
Programming: Implementing the Colleague Objects Interface File (2:57)
Programming: Creating the Colleague Object Implementation File (2:40)
Programming: Implementing the Light Module Behaviour (5:09)
Programming: Implementing the Thermostate Module Behaviour (2:15)
Programming: Implementing the Security System Behaviour (3:10)
Programming: Implementing the Concrete 'notify' Function (4:31)
Programming: Implementing the Function for Creating the Home Automation Mediator (3:10)
Programming: Testing the Home Automation Mediator System (9:52)
The STRATEGY Design Pattern
Overview of the Strategy Design Pattern (1:34)
Components of the Strategy Pattern (3:28)
Programming: Implementing the Filter Strategy Interface File (5:04)
Programming: Implementing the Filters (4:36)
Programming: Implementing the ADC Interface (4:56)
Programming: Implementing the ADC Reader Module (8:01)
Programming: Testing the Strategy Pattern for Filter Selection (10:24)
The Observer Design Pattern
Introduction to the Observer Pattern (2:47)
Programming: Implementing the Observer Interface (2:37)
Programming: Implementing the LED Observer (5:05)
Programming: Implementing the UART Observer (2:12)
Programming: Implementing the 'Subject' Structure (2:58)
Programming: Implementing the Function for Attaching Observers (4:11)
Programming: Implementing the Function for Detaching Observers (3:47)
Programming: Implementing the Function for Notifying Observers (3:30)
Programming: Testing the Observer Pattern (7:30)
The STATE Design Pattern
Introduction to the STATE Design Pattern (3:14)
Analyzing a Traffic Light Controller Example (1:59)
Advantages and Realworld Applications (2:03)
Programming: Traffic Light System- Implementing Handlers (8:37)
Programming: Implementing the Function for Running the State Machine (2:11)
Programming: Testing the State Machine (2:37)
Developing the System State Machine
Programming: The Interface File (5:25)
Programming: The State Transition Function (4:57)
Programming: Implementing the Error State Module (7:40)
Programming: Implementing the Idle State Module (3:55)
Programming: Implementing the ADCRead State Module (6:21)
Programming: Implementing the Transmit Modules (8:55)
Programming: Testing the System State Machine (9:28)
Teach online with
Programming : Analyzing the Documentation
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock