-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Embedded Syllabus #27
Comments
3 types of Embedded Software Engineer Job roles:1. Board Bring Up Engineer (Needs BSP knowledge ) |
Step 1) Get computer systems understanding Resource: Computer Systems : Application programmers perspective(book) is all you will need for this. Step 2) Get understanding of how Operating Systems work (Process, Management, File Management, Memory management) Resource:Operating System Concepts (book) by Galvin and others Step 3) i) 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 ii) Get good at Embedded C Step 4) Linux Programming Resource: Linux Programming interface(book) Step 5) 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. Step 6) Pick a sensor interface it with your reference platform. Resource: Sensor Datasheet, google, stackoverflow and forums. Step 7) 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). Step 8) If you are able to reach here, well you will be a pretty darn good Embedded System Developer. |
Programming Language: Embedded C, CAPL script |
1. Embedded C, ARM Assembly
2. MCU ( Ardunio Uno, STM32F4XXX )
3. OS Concept
4. One CPUSS architecture ( ARM or RISC-V) [ As you are doing all the stuff for the cpu computation only ]
5. One Firmware (ATF)
6. Debugger ( On-board STM32 debugger, JTAG debugger ) [ Here debugging approach is importent ]
7. Linux Kernel development side ( Bottom Halves, Interrupt Handling, Process Sync, mm, rootfs side)
8. Linux Device Driver development side [ Here development approach needs the understanding of the HW for which we are wring the driver ]
9. On-chip peripherals protocol SPI,I2C, UART, CAN
10. Bootloader like UEFI, uboot
11. RTOS
12 Single Board computer experiments (BeagleBone -Black, RasberryPi)
The text was updated successfully, but these errors were encountered: