-
bare metal:
- real time os
- sensors
- I2C SPI UART I2S USB PCI modbus
- bluetooth
- RAM RAID
- MCU MPU SoC
-
Kernel-space development:
- understanding Linux startup
- bootloader
- kernel
- root file system
- man dtc DTB dev tree
- kernel module development BSP conf build use
- build kernel for ur laptop~
- linux system calls
- LFS
- yocto
- QT GTK+
- opencl openmp CUDA (paralel)
- understanding Linux startup
-
Users-space development:
- gcc gdb makefile autoconf lauterbach
- linux system administration tools ans utils
- Clang rust python
- multimedia
- Get computer systems understanding
- Resource: Computer Systems : Application programmers perspective(book) is all you will need for this.
- Get understanding of how Operating Systems work (Process, Management, File Management, Memory management)
- Resource:Operating System Concepts (book) by Galvin and others
- C
- Get really good at C programming. (Function, Pointers, Arrays, Structures, Bit-wise operations should be your best friends)
- Resource: C in Depth by Srivastava and The C Programming Language by K & R
- Get good at Embedded C
- Get really good at C programming. (Function, Pointers, Arrays, Structures, Bit-wise operations should be your best friends)
- Linux Programming
- Resource: Linux Programming interface(book)
- Embedded Linux and porting (Get a reference platform(raspberry pi or beaglebone black) and start experimenting what you have learnt.
- Resource: Embedded Linux Primer(book). Also both RPi and BBB have excellent documentation, support and forums.
- Pick a sensor interface it with your reference platform.
- Resource: Sensor Datasheet, google, stackoverflow and forums.
- Learn about interfaces and drivers (Video, audio, I2C, SPI etc)
- Resource: Some sensor datasheet have good explanation of the interfaces, google, stackoverflow and forums. For Device Drivers, LDD (book) and Essentials Linux Device Drivers(book).
- If you are able to reach here, well you will be a pretty darn good Embedded System Developer.
- Many will/may argue about some of the steps mentioned above and their relevance, but I would suggest you check each one of them.