I discussed about Embedded Systems and How to learn Register Level Programming ? in my earlier posts.
Q: Is register level programming sufficient for embedded career ?
Ans: No, That is the first step towards embedded system journey. Assembly language programmers do register level programming by default.
Technology keep changing in every 10yr but basic skills will help always to learn these cutting-edge technologies. Let me give some pointers about my journey with computing engine so far :
- 1990 – 8085 Microprocessor as part of CSE curriculum. First introduction to ALU.
- 1992 – 8051 core based devices 80c31/80c32 . Practical with EPROM , Latch etc
- 1994 – Additional 8051 based devices like 80c48, 80c35, 87c51, 89c51
- 1996-98 – MCUs from Zilog, ST, Samsung etc . Practical experience with OTP. Tried PCB design and designed double transformer based Inverter. It was successfully deployed at multiple places in NCR.
- 1999 – MC68EN360 . C++ use case with TCP/IP stack for Milan(Italy) based automation project.
- 2000 – 2018
- PowerPC MPC860, MPC8260
- Motorola QUICC (Quad Integrated Communications Controller) family PQ1,PQ2,PQ3
- Also tried 8bit/16bit devices, MCore. Coldfire, Starcore etc
- Freescale PowerPC with QUICC Engine i.e. PowerQUICC devices MPC8323, MPC8360 etc
- You can find information about these devices at this link.
- Power architecture based family P1,P2,P3,P4 . Host processors like MPC7410.
- QorIQ based 64 bit multi-core devices of P and T series. You can get some idea from this link
- ARM based Layerscape family devices given at this link .
- 2019 Rebooted again to low end devices suitable for education. Shared some pics in this album.
- This includes devices from ST, TI, Nuvoton, Nordic , Microchip etc
Why such variety of devices ?
This was due to my role in development , Application Engineering, Managing Tools support and dedicated support to MNC clients
What were common skills used in these platforms ?
Computer architecture, Assembly, C, C++, Linux, eMMC, PCIe, SDRAM, DDR, UART, USB, Ethernet, HDLC , ATM etc.
The mandatory skills for such job is CCC i.e. Computer Architecture , C and Common sense -)
Main learning ,from various board bring-up exercises, was debugging skill. One can’t get debugging skills without work experience. Both C and Assembly are helpful in debugging. One can’t fully enjoy this without Computer architecture learned during engineering .
About Author
Sanjay Adhikari : A Computer Engineering graduate who got stuck in Microcomputer
•More than 30 years intensive experience in designing, developing and supporting various embedded designs in Telecom access networks.
*Implementation of embedded technical support, Hiring & Mentoring of embedded engineers.
•Over 10 yrs experience in handling an embedded-system support team as a Team Lead.
•Expertise in Design and Development of Linux Device drivers and Bare Board Device Drivers for various telecom/networking devices. Technical knowledge of interfaces like DDR, PCIe, SerDes, Ethernet, I2C etc
•Hands-on experience in Board Support Packages (BSPs) for PowerPC, ARM SoCs from Freescale.
•Enabled Trans-national(Cisco, Alcatel-Lucent, Juniper etc ) and Indian (TATA, C-DOT, DRDO) clients to implement Freescale Networking SOCs.
•Supported all Major Networking (Cisco, Juniper, Aricent) clients in hardware and software troubleshooting on custom hardware. Help customers in porting Freescale device drivers to customer specific Operating Systems such as IOS , JUNOS, FreeBSD etc.
•Provided training to design engineers in using Freescale’s CodeWarrior and Linux BSP.
•Conducted training and demonstration of Freescale technologies in various public events such as Freescale Technology Forum, Design with Freescale etc.