Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How to Start Embedded Systems Programming

  1. Sep 5, 2012 #1
    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.
  2. jcsd
  3. Sep 5, 2012 #2


    User Avatar
    Homework Helper

    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: Sep 5, 2012
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook