How to Master the Development of Real-Time and Embedded Applications
Embedded software development requires an approach unlike what is needed for developing general or non-embedded software. An understanding of how micro-controllers work is key to effective embedded software development.
Ironically, an embedded developer is expected to be a proverbial ‘renaissance man’. He is expected to know different aspects of software engineering, electrical engineering, cyber security, digital signal processing and other related disciplines. Sadly, while striving to learn all this, many tend to ignore the workings of the micro controller. They begin to view all MCUs as identical, the only difference being the register details.
This view may suffice for general software engineering, but in embedded applications, the incomplete knowledge can lead to the development of bloated, inefficient, power guzzling firmware that don’t meet expectations. To escape from it, an embedded developer must do three things.
First, he/she must understand the specific processor’s architecture. Second, he/she must develop test codes for a test bench, so that he/she can go deeper into the architectural similarities and differences between different MCUs. Finally, to understand how microcontrollers work, the embedded developer must attend courses on ARM Cortex-M processors. Please note that mastering the details of a MCU is not the only goal. You must know the practical application of what you have studied with some example codes.