Embedded Software

What is Embedded Software ?

Embedded System software development can be divided into different levels . One can select a particular level based on foundation skills.

Level1 : Firmware Development

Firmware journey starts from basic electronics. You should be able to understand schematic. It is not necessary to do PCB design for that. We have online material for PCB design as well. Little bit assembly can help to understand processor better. We provide this for 8051, ARM and x86. I have developed full Assembly based projects in past so I am comfortable with that. This is one of the key requirement in all domains. Knowledge of C programming is must for firmware development. We have ARM bare-metal online course for this. ARM is the widely used architecture and it helps students to get job. I teach Cortex M based MCU for bare-metal programming.

Level2 : Firmware Application Development

All semiconductor companies provides code generating tools , Bare-metal driver libraries and examples . For example ST provides HAL (Hardware Abstraction Layer) for low-level libraries. Arduino based platforms also provide libraries for various peripherals and devices. Firmware Application developer can develop application based on those libraries. This level requires most of the skills of Level1 but not expertise in register level driver development. This level also requires knowledge of various on-board or off-board communication protocols. This level requires knowledge of C, C++ and RTOS as well. RTOS is one of the key requirement for time critical applications.

Level3 : Embedded Software Developer

If someone is not comfortable with Electronics , this can be a good start for software development journey in core sector. This level requires knowledge of Computer architecture , Operating System and Networking. We are providing a combination of required courses along with Linux Application development for this. This level requires programming skills in C and C++ along with DSA. One must go beyond linked list for a successful career in this level. Networking is widely used in all domains. I teach Ethernet controller and IoT concepts for that.

Level 4: Kernel and Device driver Development

This is one of the key requirement in advance embedded system platforms. One must have all the skills of Level 3 mentioned above. This level requires in-depth knowledge of Computer architecture , Operating system and Networking. This requires knowledge of memory management , multiprocessing , multi-core etc. One must be familiar with BSP(Board Support Package) specific tools such as Yocto, Linaro etc.

How to learn all above for Embedded Software journey?

Step 1: Follow me for various pointers related to software development :

Follow on LinkedIn

Step 2: Join me through live sessions

7:

Embedded system is vast so learning continues unless you start working on any specific domain .

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top

Discover more from

Subscribe now to keep reading and get access to the full archive.

Continue reading