Course Curriculum
31 sections • 193 lectures • 16h 34m total length
-
Introduction
3
Lessons
-
Preview
-
Programming languages for Embedded Systems
Preview
-
History of 'C' and standardization
Preview
-
IDE installation
15
Lessons
-
Start
-
Start
-
Key features of the STM32CubeIDE
Start
-
Start
-
Installing STM32CubeIDE on Linux
Start
-
Installing compiler (GCC) for host
Start
-
Installing compiler (GCC) for host (WINDOWS)
Start
-
Installing compiler (GCC) for host (LINUX)
Start
-
Installing compiler (GCC) for host (MAC)
Start
-
Importing course projects in to workspace
Start
-
Creating a project for the HOST
Start
-
Creating a project for the Target
Start
-
Start
-
Hardware/Software Requirements
Start
-
Meet the embedded target of this course
Start
-
Your first 'C' program
7
Lessons
-
Data types and variables
13
Lessons
-
'C' Integer data types and value ranges
Start
-
Start
-
Char data type and variable definition
Start
-
Variable definition exercise
Start
-
Range calculation for 'char' data type
Start
-
Integer data type 'int' and 'long'
Start
-
Start
-
Integer data type 'short int' and value range
Start
-
Variables naming rules and definition vs declaration
Start
-
Declaration vs definition : An illustration
Start
-
Variables scope and illustration contd
Start
-
Variables scope and illustration
Start
-
Summary of local and global variables
Start
-
Address of variable
2
Lessons
-
Start
-
Address of variables contd.
Start
-
Storage classes
5
Lessons
-
Storage class specifiers in 'C'
Start
-
Use cases of 'static' with variables
Start
-
Use cases of 'static' with functions
Start
-
'Extern' storage class specifier
Start
-
Start
-
-
Microcontroller and Hello World
7
Lessons
-
Start
-
Testing printf over ARM Cortex M4 ITM+SWO line
Start
-
Start
-
Testing printf over OpenOCD semihosting
Start
-
Run Sizeof on Embedded Target
Start
-
Start
-
Compiler settings on STM32CubeIDE
Start
-
Build process
1
Lesson
-
Embedded project build process
Start
-
Analyzing Embedded C code
6
Lessons
-
What is a Microcontroller ?
Start
-
Code memory of the microcontroller
Start
-
Code and Data of the program using memory browser
Start
-
Analyzing ELF file using GNU tools
Start
-
Start
-
IDE option for Instruction level debugging
Start
-
Data types to manipulate floating point data
3
Lessons
-
Manipulating decimal numbers in 'C'
Start
-
Single vs double precision
Start
-
Working with float and double variables
Start
-
Taking input from the user using scanf()
6
Lessons
-
Start
-
Scanf exercise implementation
Start
-
Scanf exercise implementation contd.
Start
-
Start
-
Scanf exercise implementation
Start
-
Scanf and float with scientific notation
Start
-
Pointers
7
Lessons
-
Start
-
Pointer variables and initialization
Start
-
Pointer variables and pointer data types
Start
-
Read and Write operation on pointers
Start
-
Pointer exercise implementation
Start
-
Significance of pointer data types
Start
-
Significance of pointer data types
Start
-
Importance of stdint.h
1
Lesson
-
-
decision making
15
Lessons
-
Start
-
Start
-
'if' statement exercise solution
Start
-
Start
-
'if' and 'else' exercise implementation part-1
Start
-
'if' and 'else' exercise implementation part-2
Start
-
'if' and 'else' exercise implementation part-3
Start
-
'if -else-if' ladder statements
Start
-
'if-else-if' ladder exercise
Start
-
'if-else-if' ladder exercise solution
Start
-
Start
-
switch case statement in 'C'
Start
-
Start
-
switch case exercise solution
Start
-
switch case exercise solution contd.
Start
-
Bitwise operators
7
Lessons
-
Start
-
Bitwise AND and bitwise OR
Start
-
Applicability of bitwise operators : Testing of bits
Start
-
Finding a number even or odd using testing of bits
Start
-
Applicability of bitwise operators : Clearing of bits
Start
-
Applicability of bitwise operators : xor
Start
-
Applicability of bitwise operators : Setting of bits
Start
-
Embedded C coding exercise for LED
9
Lessons
-
Start
-
Controlling IO pin using software
Start
-
Processor addressable memory regions
Start
-
Start
-
Memory mapped peripheral registers and IO access
Start
-
Procedure to turn ON the LED
Start
-
Enabling peripheral clock
Start
-
Calculating peripheral register addresses
Start
-
Start
-
Bitwise shift operators
5
Lessons
-
Bitwise right shift operator
Start
-
Bitwise left shift operator
Start
-
Applicability of bitwise shift operators
Start
-
Modifying LED on exercise using bitwise shift operators
Start
-
Start
-
-
Type qualifier 'const'
4
Lessons
-
Start
-
placements of 'const' variables in memory
Start
-
'const' usage and different case studies
Start
-
'const' usage and different case studies contd
Start
-
Pin-read
2
Lessons
-
Start
-
IO pin read exercise implementation
Start
-
Optimization
3
Lessons
-
Compiler optimization and flags
Start
-
Different compiler optimization levels
Start
-
Analyzing pin read exercise disassembly with O0 and O2
Preview
-
'volatile' type qualifier
6
Lessons
-
volatile and effect of optimization
Preview
-
When to use volatile qualifier ?
Preview
-
Using volatile to fix issues with the pin-read exercise
Preview
-
Using 'volatile' with ISR Part-1
Start
-
Using 'volatile' with ISR Part-2
Start
-
Usage of const and volatile together
Preview
-
Structures and Bit fields
13
Lessons
-
Introduction to structures
Start
-
Accessing structure member elements
Start
-
Start
-
Aligned and un-aligned data storage
Start
-
Start
-
Calculating structure size manually with and without padding
Start
-
Assembly code analysis of packed and non packed structure
Start
-
Start
-
Start
-
Start
-
Structure exercise implementation
Start
-
Start
-
Structure and bit fields contd.
Start
-
-
Usage of bit-fields in embedded code
5
Lessons
-
Bit-field exercise : Creating bit-field structure for peripheral registers
Start
-
Bit-field structure for RCC_AHB1ENR
Start
-
Bit-field structure for GPIOx_ODR
Start
-
Modifying led toggle exercise with structures and bit fields
Start
-
Start
-
Keypad interfacing
6
Lessons
-
Start
-
Start
-
Detecting key press event
Start
-
Flow chart for implementation
Start
-
Keypad key read code implementation
Start
-
Start
-
Arrays
5
Lessons
-
Start
-
Read-Write operation on an array
Start
-
Passing array to a function
Start
-
Start
-
Swapping of arrays contd.
Start
-
-
Pre-Processor directives in 'C'
4
Lessons
-
Pre-Processor directives in 'C'
Start
-
Conditional compilation directives
Start
-
Start
-
Modifying led toggle exercise with macros
Start