Thank you for sending your enquiry! One of our team member will contact you shortly.
Thank you for sending your booking! One of our team member 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)
Testimonials
I really liked that there were a lot of practical exercises in which you could put the learned immediately into action.
Daniel Bubla
The atmosphere was very nice, much more relaxed conversation than classic teaching style. Also, several of the techniques, especially those I doubt would hold up or be worth it (effort-gain-wise) under “real world” work conditions (as mentioned above) made me reflect on my coding style, and why I do or don't do some things (both on topics presented int he course and related ones), which I don't do that often (needed the impetus) but is really useful, even if I come to the conclusion that my style already suits my needs well.
Greentube Internet Entertainment Solutions GmbH
Related Courses
Java Advanced
28 hours
Java Advanced - one day
7 hours
Java Fundamentals for Android
14 hours
Java fundamentals with Maven
28 hours
Java Intermediate - one day
7 hours
Java Persistence with Hibernate
14 hours
Introduction to Programming
35 hours
Clean Code
14 hours
Linux Network Programming
14 hours
Advanced C Programming
28 hours
Programming in C
21 hours
Agile and TDD with C
21 hours
Standard Java Security
14 hours
Unit Testing with JUnit
21 hours
Unit Testing with C
35 hours