Embedded Systems Programming
Added to favorite list
Updated On 02 Feb, 19
Getting Started - Counting - Flow of Control - Variables and Pointers - Blinking the LED - Preprocessor and volatile - Bit-wise operators in C - Arrays and Pointer Arithmetic - Functions and the Stack - Modules, Recursion, AAPCS - Stack Overflow and Other Pitfalls of Functions - stdint.h and mixing types - structures and CMSIS - startup code part - interrupts
4.1 ( 11 )
Embedded Systems Programming Lesson-5 shows how to make the code more readable by using the C preprocessor. You also learn about the volatile keyword and how to use it to write programs that run correctly at any level of optimization.
The lesson starts with showing you how to define macros and explains how the C pre-processor substitutes the macros before the actual compilation.
Next, you define macros for all registers used in the "blinky" program and you test the code.
Next, you learn about the vendor-provided header file that conveniently defines all the registers for you.
You notice that the header file defines the registers as "volatile" and you learn what that means.
You also learn that "volatile" can be useful not just for the registers, but also for the "normal" variables like the delay-loop counter.
You increase the level of optimization to "high" and see for yourself that the compiler optimizes the delay loops "away".
You fix the problem by making the loop counter "volatile".
Finally, in the last step of the lesson, you learn how to actually include the "lm4f120h5qr.h" header file into your code and how to recognize the interesting registers in the header file.
In the next lesson you will learn how to use the bitwise OR and AND operators to blink the other colors of the composite LED and you will also learn about more advanced features of the GPIO registers. Stay tuned...
Article "Place volatile accurately" by Dan Saks
Article "Volatile as a promise" by Dan Saks
YouTube playlist of the course
Sep 12, 2018
Excellent course helped me understand topic that i couldn't while attendinfg my college.
March 29, 2019
Great course. Thank you very much.