Advanced C Programming

This course covers many advanced concepts of the C programming language for embedded applications. (June 2021)

rate limit

Code not recognized.

About this course

Take your C programming skills to new heights!  The objective of this class is to enable you to use advanced C programming language constructs and techniques to create more structured and portable code.  You will be able to create structures, unions, and bit fields.  You will use advanced pointer concepts to allow very flexible data access and create arrays of pointers, arrays of structures and unions, and pointers to arrays of structures and unions.  You will create nested structures and unions along with flexible ‘typedef’ methods to set up data structures and variables.  Function pointers are an important concept of the C programming language and you will use arrays and structures of function pointers to create portable and flexible state machines.  Dereferenced double pointers are discussed in detail.  This class includes 7 instructor-led hands-on labs that clearly demonstrate each concept.  You will use MPLABX® with the powerful built-in simulator and Microchip's XC32 compiler to analyze the actual effect of coding implementations on variables and to see the interaction of program and data memory values.  You will learn these C language topics from a non-hardware framework so that you can focus on learning the C language instead of the microcontroller architecture.  The techniques taught in this class are universal ANSI-C concepts of the C programming language.  Before attending this class, attendees should be proficient with the fundamentals of C programming and have experience writing embedded C firmware.  

Curriculum206 min

  • Introduction
  • Syllabus
  • Lab Files and Lab Manual
  • Intro and Agenda 8 min
  • Data Structures
  • Structures 14 min
  • Unions 8 min
  • Data Structure Pointers
  • Pointer Review 6 min
  • Pointers to Unions and Structures 10 min
  • Lab 1 (Pointers to Nested Unions and Structures) 17 min
  • Arrays of Pointers 11 min
  • Lab 2 (Arrays of Pointers) 14 min
  • Advanced Data Structure Pointers
  • Arrays of Unions and Structures 10 min
  • Lab 3 (Arrays of Structure Pointers) 16 min
  • Function Pointers 6 min
  • Arrays of Function Pointers 4 min
  • Lab 4 (Arrays of Function Pointers) 10 min
  • State Machines
  • Enumerations 8 min
  • State Machines 11 min
  • Lab 5 (Function Pointers used in State Machines) 13 min
  • Code Portability and Double Pointers
  • Code Portability 7 min
  • Lab 6 (Code Portability) 13 min
  • Double Pointers 5 min
  • Lab 7 (De-referencing Double Pointers) 14 min
  • Your Feedback
  • We need your Feedback

About this course

Take your C programming skills to new heights!  The objective of this class is to enable you to use advanced C programming language constructs and techniques to create more structured and portable code.  You will be able to create structures, unions, and bit fields.  You will use advanced pointer concepts to allow very flexible data access and create arrays of pointers, arrays of structures and unions, and pointers to arrays of structures and unions.  You will create nested structures and unions along with flexible ‘typedef’ methods to set up data structures and variables.  Function pointers are an important concept of the C programming language and you will use arrays and structures of function pointers to create portable and flexible state machines.  Dereferenced double pointers are discussed in detail.  This class includes 7 instructor-led hands-on labs that clearly demonstrate each concept.  You will use MPLABX® with the powerful built-in simulator and Microchip's XC32 compiler to analyze the actual effect of coding implementations on variables and to see the interaction of program and data memory values.  You will learn these C language topics from a non-hardware framework so that you can focus on learning the C language instead of the microcontroller architecture.  The techniques taught in this class are universal ANSI-C concepts of the C programming language.  Before attending this class, attendees should be proficient with the fundamentals of C programming and have experience writing embedded C firmware.  

Curriculum206 min

  • Introduction
  • Syllabus
  • Lab Files and Lab Manual
  • Intro and Agenda 8 min
  • Data Structures
  • Structures 14 min
  • Unions 8 min
  • Data Structure Pointers
  • Pointer Review 6 min
  • Pointers to Unions and Structures 10 min
  • Lab 1 (Pointers to Nested Unions and Structures) 17 min
  • Arrays of Pointers 11 min
  • Lab 2 (Arrays of Pointers) 14 min
  • Advanced Data Structure Pointers
  • Arrays of Unions and Structures 10 min
  • Lab 3 (Arrays of Structure Pointers) 16 min
  • Function Pointers 6 min
  • Arrays of Function Pointers 4 min
  • Lab 4 (Arrays of Function Pointers) 10 min
  • State Machines
  • Enumerations 8 min
  • State Machines 11 min
  • Lab 5 (Function Pointers used in State Machines) 13 min
  • Code Portability and Double Pointers
  • Code Portability 7 min
  • Lab 6 (Code Portability) 13 min
  • Double Pointers 5 min
  • Lab 7 (De-referencing Double Pointers) 14 min
  • Your Feedback
  • We need your Feedback