Course Outline
C Basic data types
- Integer types
- Floating point types
- Pointers (pointer arithmetic, pointer derefencing)
- Arrays
- The relationship between arrays and pointers
- Enums
Programming constructs
- if - else statements
- switch statements
- while loops and do - while loops
- for loops
- goto statements
- Functions in C
- Function prototypes
- Understanding C's call by value mechanism for passing arguments
- Implementing functions
- Calling functions
- Using pointers to pass values by reference
- Passing arrays to functions
- Understanding C's return value mechanism
- Using pointers to return values by reference
Data Structures
- Defining data structures
- Accessing and manipulating the elements of a data structure
- Pointers to data structures
- The arrow (->) operator
- Using a pointer to traverse an array of data structures
Advanced topics
- Pointers to pointers
- Function pointers
- Const and static keywords - their meanings and uses
- Casts and casting Using void * pointers
- Data structures containing pointers to data structures
- Data structures containing function pointers
- Function pointers and table driven programming
- Bit fields in data structures
- Unions
- Using arrays to implement circular buffers and stacks
- Modules as data structures and interfaces
- Dynamic data structures and their uses
- Singly linked lists
- Doubly linked lists
Overview of the C standard library
- putc, putchar, getc, getchar
- printf, scanf
- String manipulation functions (strcpy, strcat, ...) Embedded System Oriented Topics
- Setting up port addresses
- Defining bit oriented data structures
- Compiler specific features
- #pragmas
- Non ANSII C extensions
- Accessing and manipulating special function registers
- Implementing interrupt handlers
- Calling assembly code from C
- Calling C from assembly code
- Linkers and linker scripts
- Understanding target peripheral device libraries and their uses
- Implementing your own device libraries
- Timers and their uses
- Hardware timers
- Software timers
Basics of event driven programming
- Port I/O - flashing LEDs
- Software delays
- Keypad scanning
- Basic RS232
- Basic data acquisition and sensor interfacing
- Working with EEPROM (on chip and SPI/I2C)
Testimonials (7)
the exercises and the methodology
Javier MIllan Rios - si
Course - Advanced C Programming
The exercises whit which we were able to familiarise with the TDD
Csongor Benedek - ACCENTURE
Course - Agile and TDD with C
I was able to learn tbe basics of C programming and have something to build upon.
Patrick Hensley - Roush Industries
Course - Programming in C
The teacher addressed many relevant topics for clean coding with practical examples.
Ben van Oeveren - Movella
Course - Clean Code
A large amount of practical knowledge shown in real-life examples.
Kamil - Streamsoft Kraków
Course - Java Advanced
Machine Translated
Pushing changes on an ongoing basis, when on the 3rd day I started to get more lost than before and it was harder to spot the error quickly, I was quickly able to check out the latest changes and stay up to date with the material
Paulina
Course - Advanced Java Security
Machine Translated
Very good knowledge and character.