A frequent question which I am asked in person or by other means is “Where can I learn about embedded software?” Although this can come from young people looking for a career [in which case their choice of college course is probably the way forward], most such inquiries come from “normal” software engineers [i.e. folks who a used to programming desktop computers etc.] or hardware developers.
There are lots of possible answers to the question – beyond “it depends” …
I suppose there are three key sources of information:
- magazine and websites
- technical papers
I wrote a book, which was published back in 1986. I claim it to be the first book that considered embedded software. It was called “Programming Dedicated Microprocessors” and is long out of print and would have little relevance today. Note that the title did not used the word “embedded” – it was a few years later that the term first found common usage. Nowadays a search on Amazon for “embedded software” turns up a fair amount of useful material.
Obviously, I have to suggest my own, more recent book: “Embedded Software: The Works, 2nd Edition”, which is available from Amazon or direct from the publisher, Elsevier. A couple of other books are worthy of mention:
A recent, very comprehensive book, which I briefly reviewed, is: “Software Engineering for Embedded Systems” by Robert Oshana and Mark Kraeling. A more detailed look at this book is long overdue …
Another, older, but still relevant book is: “The Firmware Handbook” by Jack Ganssle. Jack is a very well known and knowledgeable writer and speaker, who always gets my attention.
Magazine and Websites
For many years Embedded Systems Programming Magazine was required reading for developers and I used to eagerly look forward to my airmailed copy. Then a European edition was launched. I was actually offered the job of editor, but turned it down for various reasons; this was a good thing, as it did not exist for very long and I would have been out of a job. Sadly, the US paper magazine was axed a couple of years ago.
The good news is that there are countless websites providing information to embedded developers. I guess my favorite is embedded.com, where all the well-known writers in the field tend to contribute. I have a “column” in which I frequently cover embedded software topics; recent ones are here and here.
An often overlooked source of valuable information to developers are technical papers published by numerous vendors of embedded software development tools, silicon, boards etc. A “white paper” is traditionally a marketing document with a substantial technical content. Sadly, some vendors rather over-do the marketing hype and devalue their publications, but most are worth a look. Mentor Embedded publishes a wide range of papers on numerous topics. Two recent examples cover the selection of an embedded operating system and Internet of Things software development.