This article is to highlight some important tips for Embedded system development.
If you are inclined towards hardware oriented job , you can manage with Assembly language basics as well. Firmware specific job will require target specific Assembly and Embedded C. If you are planning to be Embedded Software developer , then you must have expertise in Embedded C and data structure.
If you are learning Embedded just to create some foundation for advance computing or AI career, then you need to get expertise in C++ as well. In addition to these , Python can also be an added advantage in long term.
Please note both C /C++ requires significant efforts and time , so plan sufficient time for these two. Avoid any code generator in the beginning. You must start from scratch and write your own baremetal driver.
I recommend to use Eclipse IDE to understand C better. However you can kick start your C learning with online compiler as well .
Once you decide the MCU , you can use other tools such as Keil , MPLAB, Code composer, MCUExpress , Codewarrior etc.
If you are targeting career in Embedded software development , then you must learn Operating Concepts. Each embedded system is a microcomputer and is supposed to complete the task given by user in efficient manner. With increase amount of program and data memory, It is now possible to plan for RTOS or generic OS in embedded hardware platform.
In case you are working on Kernel development, then OS aware tool can be helpful for you.
If you are developing firmware , device driver and low level software stack , You must be able to understand the schematic. In small scale MCU design , many embedded professionals design both hardware and software . I have seen this even in Network device based system design as well such as router. In such case, one person can manage upto certain level if system is identical to some reference design.
For hardware specific career goals, you must be aware of some good PCB design tools e.g. Altium , Allegro, Easyeda . You must have strong digital and Analog design knowledge. You may start with single layer as well but later work on double & at least upto four layer PCB. You must be able to understand layout and mechanical design aspects as well. Knowledge of hardware design terminology and PCB design rules will be an added advantage.
You should learn various simulation/Validation tools for high speed circuit design such as SerDes , DDR , PCIe etc. You must be familiar with various soldering techniques and related issues. Working experience of Oscilloscope , Logical analyzer etc. will help in debugging hardware related issues.
This skill depends on practical experience of software and hardware development. This is the most important skill for meeting time to market.
It depends on the career path you are targeting and will be in addition to the common foundation of software and hardware skills. Major segments are Automotive , Consumer and Industrial . Networking is used in all the segments. If you are targeting Automotive domain then you will need LIN, CAN , AUTOSAR etc. In case of Consumer , you may have to work on Audio/Video codecs, streaming, UI etc. In case of Networking , you need to work on Ethernet, Wireless , PCIe etc.
Embedkari Developer Kit
We have designed this combo course suitable for both beginners and experienced embedded professionals. If you have worked on well known platforms such as Arduino and Raspberry Pi but couldn’t understand the computer architecture used properly , This course can help.
This course is build to develop firmware programming skills irrespective of any particular semiconductor company. You will find examples of ST, TI , NxP etc. It includes 80C51 based learning material to start from scratch. It also includes Ethernet controller of high end Network Processor , MATLAB , RTOS , OS concepts, Yocto , Linux device driver etc.
FREE DEMO CLASS (8051 specific) for students at 8PM IST on 2nd October 2021 It will appear at https://embedkari.com/jobs/
FREE subscription for important information related to Industry, Job and Technology