What are you going to learn in this course?
Within this course you will get to know different compilation stages that result in generation of the final executable binary, which get loaded later into your embedded device (microcontroller or any kind of embedded device).
What are you going to learn in this course?
Within this course you will get to know different compilation stages that result in generation of the final executable binary, which get loaded later into your embedded device (microcontroller or any kind of embedded device).
When it comes to embedded Systems and to be more precise embedded C programming, a lot of problems and issues are hidden within the flow that translate your high level C code into low level executable file containing the machine code (binary code) to be executed by the processor. In Most of the cases when you create your embedded C project using some some abstracted IDEs like VSCode, IDE like eclipse , Keil-mdk, …, you don't know what is going in background to go from C level sources to final Executable binary file (.elf, .bin, .hex to be loaded into the device, the whole flow is kind of transparent in such way it become quiet hard to question if the issue/problem you are facing is coming from that flow or from you C level based code.
This is not always about figuring out issues, you may need to do some extra preprocessing or postprocessing on the intermediate generated files out of those build stages, so knowing what is going on really and what are those intermediate files will helps you to identify the steps to be done for those pre/post processing extra steps.
In this Course , you will see in pretty close and low level way those different compilation stages, what are the different intermediate files that can be generation out of those stages, how the final binary get linked , what pre/post processing additional stages that can be inserted, all of this using some basic low level written makefile to get control over all those steps without the need to have abstracted fancy IDE for such build procedure.
Which make you motivated to get involved in this Course?
The way it is written and who wrote this course is one of the key motivation to engage yourself in this Course.
Wassim Dhokar was working in embedded systems field for more than decade now , and he was at some point exactly like you as a beginner confused and not knowing what is going within the background of the build procedure triggered by one of the front-end IDEs like eclipse, he knows exactly the frustration you may feel when this whole flow is hidden from you or when a colleague/instructor start asking question about this process or to check some of generated intermediate files out of compilation, therefore he will try to guide you in easy way through :
The different Compilation Stages concepts
The need of compiler
The functionality and what is expected from each compilation stages
The key features of each stage
Give you an example about existing Toolchain compiler to be used (armgcc toolchain for ARM cortex-M Micro-processors)
Provide a makefile template project to be used to invoke the different toolchain tools needed for compilation stages
Will guide you through different makefile rules and show you how to update the make file to add or remove one of those stages
Provide multiple Examples as prove of concepts for the theoretical parts
Show you how to manipulate the final binary using the different toolchain helper tools like: objdump, objcopy ...
The makefile you get here can be used as template and starting point for your Embedded C project, which will sav e you plenty of time to setups everything from scratch.
So welcome to this Course and let's start our Trip here.
Please find attached makefile projects used to build and compile our embedded C project as well as installation readme pointing to different tools and packages required to build your project
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.