How to Start Embedded Systems Programming

Click For Summary
To start in embedded systems programming, leveraging existing skills in assembly and C is beneficial, particularly for projects involving embedded Linux. An Arduino kit is a practical way to gain hands-on experience and showcase projects online, despite concerns about its perceived seriousness in the industry. Familiarity with specific protocols related to your area of interest, such as SATA for storage devices, can enhance your expertise. While ARM processors are common in embedded applications, actual assembly work is minimal in most roles, making extensive investment in ARM development tools less practical. Understanding job requirements from potential employers can guide your learning and project focus effectively.
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:
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

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