Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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)
14 Hours
Testimonials (3)
The fact that I have learnt a new approach for writing unit tests is the part I liked most about the training. I also liked the free talk we had, the fact that we debated certain topics, I liked the team work we had, it made us analyse from a different perspective the requirements of user stories and I also appreciated the intervention of the trainer that suggested us different solutions when we were stuck on taking some decisions.
Crina-Maria Rosu - ACCENTURE
Course - Agile and TDD with C
An interesting and broad scope
Maciej Perkowski - Nordic Semiconductor
Course - Advanced C Programming
Great concepts with knowledge of practical applications