How to become an Embedded Software Engineer?

How to become an Embedded Software Engineer?

How to become an Embedded Software Engineer?

If you enjoy embedded programming and want to be the member of this industry, congratulations! You are the people who can make a great living doing work they enjoy and you can across the area which the pure software engineer and electronics engineer want to enter. You know the system information from the bottom to the top and you can handle everything of your system.

Here are Steven’s Four Pieces of Advice for newcomer of embedded programming:

Become an expert in C.
Familiar with embedded systems software architectures.
Learn to read microcontroller datasheets.
Practice makes perfect.
1- Become an expert in C
First of all, you should read The C Programming Language book and write the function samples in your own way and compare your implementation with the book. This will improve your programming ability a lot. If you flip over the pages of the book to fragment, you will become an expert in C. Are you kidding? Yes I do. Despite you can be familiar with C language by means of reading through this book for many times, it is just the basic skill of embedded software developer.

2- Familiar with embedded systems software architectures
RTOS, scheduling, interrupt, timer, memory management, these stuff are the fundamental stores of programmer. For example, we know that deadlock caused by the condition that two or more processes form a circular chain where each process is waiting on another resource in the chain. If the resource can use by more than two processes, the deadlock cannot take place. When we dig into, we must exclude preemption, which means one process cannot forcibly remove another process’ resource. If these three conditions listed above met concurrently, it is not the sufficient condition for the deadlock. Why? If the processes holding a resource cannot request new ones, the desire to deadlock disappears.

3- Learn to read microcontroller datasheets
Intel® 64 and IA-32 Architectures Software Developer’s:

Manual above is the best material for learning the knowledge of CPU and microcontroller. You can learn byte order, memory organization, registers and instructions, interrupts and exceptions and so on. All the things you can learn from the datasheet are very useful for the embedded programming since IA-32 architecture is popular in embedded system with the widespread of ATCA. And certainly, if you read datasheets of MIPS or ARM, It is the same.

4- Practice makes perfect
Start with basic interrupt driven/background loop processing, then move up to background schedulers, then real-time operating systems. It’s practice. Challenge yourself to re-write your code more efficiently in terms of speed and memory usage. It’s practice. Don’t use someone else code, just re-invent the wheel when you’re learning. Keep practice! Maybe one day you find yourself becoming the real embedded software developer!


No Comments

Post a Reply