Zenler Player
Your course is loading. Hang tight.
Microcontroller Embedded C Programming: Absolute Beginners
Back to curriculum
0% Complete
0% Complete
About the instructor
Programming languages for Embedded Systems
History of 'C' and standardization
Downloading IDE
Downloading IDE
Key features of the STM32CubeIDE
Installing STM32CubeIDE
Installing STM32CubeIDE on Linux
Installing compiler (GCC) for host
Installing compiler (GCC) for host (WINDOWS)
Installing compiler (GCC) for host (LINUX)
Installing compiler (GCC) for host (MAC)
Importing course projects in to workspace
Creating a project for the HOST
Creating a project for the Target
FPU warning fix
Hardware/Software Requirements
Meet the embedded target of this course
OnlineGDB web tool
Printf and Hello World
Printf exercise solution
Escape sequences in 'C'
Printf exercise solution
Printf exercise solution
Commenting in 'C'
'C' Integer data types and value ranges
Data types in 'C'
Char data type and variable definition
Variable definition exercise
Range calculation for 'char' data type
Integer data type 'int' and 'long'
Sizeof
Integer data type 'short int' and value range
Variables naming rules and definition vs declaration
Declaration vs definition : An illustration
Variables scope and illustration contd
Variables scope and illustration
Summary of local and global variables
Address of variables
Address of variables contd.
Storage class specifiers in 'C'
Use cases of 'static' with variables
Use cases of 'static' with functions
'Extern' storage class specifier
ASCII codes
Introduction to functions in 'C'
Function prototypes
Returning data from a function
Function exercise
Typecasting in 'C'
Typecasting in 'C' contd
Embedded - 'Hello World'
Testing printf over ARM Cortex M4 ITM+SWO line
Issues with IDE
Testing printf over OpenOCD semihosting
Run Sizeof on Embedded Target
Sizeof testing
Compiler settings on STM32CubeIDE
Embedded project build process
What is a Microcontroller ?
Code memory of the microcontroller
Code and Data of the program using memory browser
Analyzing ELF file using GNU tools
Disassembly
IDE option for Instruction level debugging
Manipulating decimal numbers in 'C'
Single vs double precision
Working with float and double variables
Scanf introduction
Scanf exercise implementation
Scanf exercise implementation contd.
Scanf exercise
Scanf exercise implementation
Scanf and float with scientific notation
Pointers in 'C'
Pointer variables and initialization
Pointer variables and pointer data types
Read and Write operation on pointers
Pointer exercise implementation
Significance of pointer data types
Significance of pointer data types
Importance of stdint.h
Operators in 'C'
Unary operator in 'C'
Unary operators with pointers
Relational operators in 'C'
Logical operators in 'C'
'if' statement
if statement exercise
'if' statement exercise solution
'if' and 'else'
'if' and 'else' exercise implementation part-1
'if' and 'else' exercise implementation part-2
'if' and 'else' exercise implementation part-3
'if -else-if' ladder statements
'if-else-if' ladder exercise
'if-else-if' ladder exercise solution
Conditional operator
switch case statement in 'C'
switch case exercise
switch case exercise solution
switch case exercise solution contd.
Bitwise operators in 'C'
Bitwise AND and bitwise OR
Applicability of bitwise operators : Testing of bits
Finding a number even or odd using testing of bits
Applicability of bitwise operators : Clearing of bits
Applicability of bitwise operators : xor
Applicability of bitwise operators : Setting of bits
Coding to Turn on an LED
Controlling IO pin using software
Processor addressable memory regions
STM32 memory map
Memory mapped peripheral registers and IO access
Procedure to turn ON the LED
Enabling peripheral clock
Calculating peripheral register addresses
LED ON exercise coding
Bitwise right shift operator
Bitwise left shift operator
Applicability of bitwise shift operators
Modifying LED on exercise using bitwise shift operators
Bit Extraction
Looping in 'C'
While loop
while loop exercise
while loop and semicolon
while loop exercise
'do while' loop
'for' loop
'for' loop exercise
'for' loop number pyramid exercise
'for' loop exercise solution
modifying LED on with software delay
LED toggle using software delay
'const' type qualifier
placements of 'const' variables in memory
'const' usage and different case studies
'const' usage and different case studies contd
IO pin read exercise
IO pin read exercise implementation
Compiler optimization and flags
Different compiler optimization levels
Analyzing pin read exercise disassembly with O0 and O2
volatile and effect of optimization
When to use volatile qualifier ?
Using volatile to fix issues with the pin-read exercise
Using 'volatile' with ISR Part-1
Using 'volatile' with ISR Part-2
Usage of const and volatile together
Introduction to structures
Accessing structure member elements
Sizeof of a structure
Aligned and un-aligned data storage
Structure padding
Calculating structure size manually with and without padding
Assembly code analysis of packed and non packed structure
Typedef and structure
Structures and pointers
Structure exercise
Structure exercise implementation
Structure and bit fields
Structure and bit fields contd.
Unions
Applicability of unions
Bit-field exercise : Creating bit-field structure for peripheral registers
Bit-field structure for RCC_AHB1ENR
Bit-field structure for GPIOx_ODR
Modifying led toggle exercise with structures and bit fields
Testing
Keypad interfacing
Why pull-up resistors?
Detecting key press event
Flow chart for implementation
Keypad key read code implementation
Delay analysis
Arrays in 'C'
Read-Write operation on an array
Passing array to a function
Swapping of arrays
Swapping of arrays contd.
Strings in 'C'
String literal
String variable Vs string literal
Inputting a string
Scanf and scanset
Exercise
Pre-Processor directives in 'C'
Conditional compilation directives
'defined' operator
Modifying led toggle exercise with macros
Introduction
About the instructor
Preview
Programming languages for Embedded Systems
Preview
History of 'C' and standardization
Preview
IDE installation
Downloading IDE
Downloading IDE
Key features of the STM32CubeIDE
Installing STM32CubeIDE
Installing STM32CubeIDE on Linux
Installing compiler (GCC) for host
Installing compiler (GCC) for host (WINDOWS)
Installing compiler (GCC) for host (LINUX)
Installing compiler (GCC) for host (MAC)
Importing course projects in to workspace
Creating a project for the HOST
Creating a project for the Target
FPU warning fix
Hardware/Software Requirements
Meet the embedded target of this course
Your first 'C' program
OnlineGDB web tool
Printf and Hello World
Printf exercise solution
Escape sequences in 'C'
Printf exercise solution
Printf exercise solution
Commenting in 'C'
Data types and variables
'C' Integer data types and value ranges
Data types in 'C'
Char data type and variable definition
Variable definition exercise
Range calculation for 'char' data type
Integer data type 'int' and 'long'
Sizeof
Integer data type 'short int' and value range
Variables naming rules and definition vs declaration
Declaration vs definition : An illustration
Variables scope and illustration contd
Variables scope and illustration
Summary of local and global variables
Address of variable
Address of variables
Address of variables contd.
Storage classes
Storage class specifiers in 'C'
Use cases of 'static' with variables
Use cases of 'static' with functions
'Extern' storage class specifier
ASCII codes
functions
Introduction to functions in 'C'
Function prototypes
Returning data from a function
Function exercise
Typecasting in 'C'
Typecasting in 'C' contd
Microcontroller and Hello World
Embedded - 'Hello World'
Testing printf over ARM Cortex M4 ITM+SWO line
Issues with IDE
Testing printf over OpenOCD semihosting
Run Sizeof on Embedded Target
Sizeof testing
Compiler settings on STM32CubeIDE
Build process
Embedded project build process
Analyzing Embedded C code
What is a Microcontroller ?
Code memory of the microcontroller
Code and Data of the program using memory browser
Analyzing ELF file using GNU tools
Disassembly
IDE option for Instruction level debugging
Data types to manipulate floating point data
Manipulating decimal numbers in 'C'
Single vs double precision
Working with float and double variables
Taking input from the user using scanf()
Scanf introduction
Scanf exercise implementation
Scanf exercise implementation contd.
Scanf exercise
Scanf exercise implementation
Scanf and float with scientific notation
Pointers
Pointers in 'C'
Pointer variables and initialization
Pointer variables and pointer data types
Read and Write operation on pointers
Pointer exercise implementation
Significance of pointer data types
Significance of pointer data types
Importance of stdint.h
Importance of stdint.h
Operators
Operators in 'C'
Unary operator in 'C'
Unary operators with pointers
Relational operators in 'C'
Logical operators in 'C'
decision making
'if' statement
if statement exercise
'if' statement exercise solution
'if' and 'else'
'if' and 'else' exercise implementation part-1
'if' and 'else' exercise implementation part-2
'if' and 'else' exercise implementation part-3
'if -else-if' ladder statements
'if-else-if' ladder exercise
'if-else-if' ladder exercise solution
Conditional operator
switch case statement in 'C'
switch case exercise
switch case exercise solution
switch case exercise solution contd.
Bitwise operators
Bitwise operators in 'C'
Bitwise AND and bitwise OR
Applicability of bitwise operators : Testing of bits
Finding a number even or odd using testing of bits
Applicability of bitwise operators : Clearing of bits
Applicability of bitwise operators : xor
Applicability of bitwise operators : Setting of bits
Embedded C coding exercise for LED
Coding to Turn on an LED
Controlling IO pin using software
Processor addressable memory regions
STM32 memory map
Memory mapped peripheral registers and IO access
Procedure to turn ON the LED
Enabling peripheral clock
Calculating peripheral register addresses
LED ON exercise coding
Bitwise shift operators
Bitwise right shift operator
Bitwise left shift operator
Applicability of bitwise shift operators
Modifying LED on exercise using bitwise shift operators
Bit Extraction
Looping
Looping in 'C'
While loop
while loop exercise
while loop and semicolon
while loop exercise
'do while' loop
'for' loop
'for' loop exercise
'for' loop number pyramid exercise
'for' loop exercise solution
modifying LED on with software delay
LED toggle using software delay
Type qualifier 'const'
'const' type qualifier
placements of 'const' variables in memory
'const' usage and different case studies
'const' usage and different case studies contd
Pin-read
IO pin read exercise
IO pin read exercise implementation
Optimization
Compiler optimization and flags
Different compiler optimization levels
Analyzing pin read exercise disassembly with O0 and O2
Preview
'volatile' type qualifier
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
Using 'volatile' with ISR Part-2
Usage of const and volatile together
Preview
Structures and Bit fields
Introduction to structures
Accessing structure member elements
Sizeof of a structure
Aligned and un-aligned data storage
Structure padding
Calculating structure size manually with and without padding
Assembly code analysis of packed and non packed structure
Typedef and structure
Structures and pointers
Structure exercise
Structure exercise implementation
Structure and bit fields
Structure and bit fields contd.
Unions
Unions
Applicability of unions
Usage of bit-fields in embedded code
Bit-field exercise : Creating bit-field structure for peripheral registers
Bit-field structure for RCC_AHB1ENR
Bit-field structure for GPIOx_ODR
Modifying led toggle exercise with structures and bit fields
Testing
Keypad interfacing
Keypad interfacing
Why pull-up resistors?
Detecting key press event
Flow chart for implementation
Keypad key read code implementation
Delay analysis
Arrays
Arrays in 'C'
Read-Write operation on an array
Passing array to a function
Swapping of arrays
Swapping of arrays contd.
Strings
Strings in 'C'
String literal
String variable Vs string literal
Inputting a string
Scanf and scanset
Exercise
Pre-Processor directives in 'C'
Pre-Processor directives in 'C'
Conditional compilation directives
'defined' operator
Modifying led toggle exercise with macros
×
This is an unpublished lesson. This lesson will not be shown for students unless you set it as Public.
Back to Dashboard
No contents are available in this lesson!
No lessons available !
Back to Dashboard
Lesson contents locked
Enroll to unlock this lesson.
Enroll to unlock
Next Lesson