How to Start Embedded Systems Programming

Click For Summary
SUMMARY

To start a career in embedded systems programming, individuals should leverage their existing programming skills in assembly and C. Utilizing an Arduino kit for hands-on projects is a practical approach to build a portfolio, despite perceptions of its seriousness. Knowledge of specific protocols, such as SATA, is beneficial for targeted embedded programming roles. Familiarity with operating systems like Linux is essential, as many advanced embedded devices utilize them.

PREREQUISITES
  • Programming experience in assembly and C
  • Basic understanding of computer architecture
  • Familiarity with embedded Linux operating systems
  • Knowledge of specific protocols relevant to embedded systems, such as SATA
NEXT STEPS
  • Research Arduino projects and their applications in embedded systems
  • Explore ARM processor architecture and its development tools
  • Investigate job descriptions in embedded systems to identify employer expectations
  • Learn about pre-emptive multi-tasking operating systems used in embedded applications
USEFUL FOR

This discussion is beneficial for aspiring embedded systems programmers, hobbyists interested in Arduino projects, and professionals seeking to understand industry requirements in embedded development.

darkchild
Messages
153
Reaction score
0
I want to learn some embedded systems programming on my own and explore it as a career option. Where should I start? Book recommendations? I have programming experience in assembly, C and higher level languages, and I've taken one computer architecture course. I love my linux, so I'm interested in embedded linux, but I really need sort of an overview of everything that is out there.

I thought that maybe I could get an Arduino kit, cook up some projects, and showcase it online to help me get jobs. Would that be a good idea, or would I just look like an idiot? I know Arduino projects probably aren't considered serious work, but I don't know much about it yet.
 
Technology news on Phys.org
Experience with assembly and C should be enough to get you started. Some experience with something related to the specific type of embedded programming will help, such as knowledge of SATA protocol if you were going to work with hard drives or dvd type devices. Usually these type of devices use some type of pre-emptive multi-tasking operating system, but most of the code written for such devices doesn't have to deal with the multi-tasking aspect much, since the OS handles it. Some of the more complicated embedded devices use linux or something similar for the operating system.

One popular processor for embedded applications is the ARM processor, but the amount of assembly work you would do at a typcial company would be little or none, so knowing ARM assembly language isn't going to help much. The ARM development tools tend to be expensive, so I don't think it would be worth buying a software kit.

It would help to find out what potential employers are looking for, which is usually included in the job descriptions.
 
Last edited:

Similar threads

Replies
10
Views
5K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 6 ·
Replies
6
Views
2K
Replies
3
Views
3K
  • Sticky
  • · Replies 13 ·
Replies
13
Views
8K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 397 ·
14
Replies
397
Views
21K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 16 ·
Replies
16
Views
4K