{"id":6936,"date":"2014-06-09T10:38:23","date_gmt":"2014-06-09T09:38:23","guid":{"rendered":"https:\/\/blogs.mentor.com\/colinwalls\/?p=6936"},"modified":"2026-03-26T16:43:34","modified_gmt":"2026-03-26T20:43:34","slug":"embedded-software-resources-a-reading-list-for-engineers","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2014\/06\/09\/embedded-software-resources-a-reading-list-for-engineers\/","title":{"rendered":"Embedded software resources: a reading list for engineers"},"content":{"rendered":"<p>A frequent question which I am asked in person or by other means is &#8220;Where can I learn about embedded software?&#8221; 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 &#8220;normal&#8221; software engineers [i.e. folks who a used to programming desktop computers etc.] or hardware developers.<\/p>\n<p>There are lots of possible answers to the question &#8211; beyond &#8220;it depends&#8221; &#8230;<!--more--><\/p>\n<p>I suppose there are three key sources of information:<\/p>\n<ul>\n<li>books<\/li>\n<li>magazine and websites<\/li>\n<li>technical papers<\/li>\n<\/ul>\n<h3>Books<\/h3>\n<p><a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2014\/06\/book.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-6938\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2014\/06\/book-520x676.png\" alt=\"book\" width=\"300\" height=\"390\" \/><\/a>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 &#8220;Programming Dedicated Microprocessors&#8221; and is long out of print and would have little relevance today. Note that the title did not used the word &#8220;embedded&#8221; &#8211; it was a few years later that the term first found common usage. Nowadays a search on Amazon for &#8220;embedded software&#8221; turns up a fair amount of useful material.<\/p>\n<p>Obviously, I have to suggest my own, more recent book: &#8220;Embedded Software: The Works, 2nd Edition&#8221;, which is available from <a href=\"http:\/\/www.amazon.com\/Embedded-Software-Second-Edition-Works\/dp\/0124158226\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon<\/a> or direct from <a href=\"http:\/\/www.elsevier.com\/books\/embedded-software\/walls\/978-0-12-415822-1\" target=\"_blank\" rel=\"noopener noreferrer\">the publisher, Elsevier<\/a>. A couple of other books are worthy of mention:<\/p>\n<p>A recent, very comprehensive book, which I <a href=\"https:\/\/blogs.mentor.com\/colinwalls\/blog\/2013\/05\/20\/book-review-part-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">briefly reviewed<\/a>, is: &#8220;Software Engineering for Embedded Systems&#8221; by Robert Oshana and Mark Kraeling. A more detailed look at this book is long overdue &#8230;<\/p>\n<p>Another, older, but still relevant book is: &#8220;The Firmware Handbook&#8221; by Jack Ganssle. <a href=\"http:\/\/www.ganssle.com\/%20\" target=\"_blank\" rel=\"noopener noreferrer\">Jack<\/a> is a very well known and knowledgeable writer and speaker, who always gets my attention.<\/p>\n<h3>Magazine and Websites<\/h3>\n<p>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.<\/p>\n<p>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 &#8220;column&#8221; in which I frequently cover embedded software topics; recent ones are <a href=\"http:\/\/www.embedded.com\/design\/programming-languages-and-tools\/4430414\/Function-Parameters\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> and <a href=\"http:\/\/www.embedded.com\/design\/real-world-applications\/4429787\/Electronics-for-the-Sick%20\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<h3>Technical Papers<\/h3>\n<p>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 &#8220;white paper&#8221; 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 <a href=\"http:\/\/www.mentor.com\/embedded-software\/techpubs\" target=\"_blank\" rel=\"noopener noreferrer\">wide range of papers<\/a> on numerous topics. Two recent examples cover <a href=\"http:\/\/www.mentor.com\/embedded-software\/resources\/overview\/selecting-an-operating-system-for-embedded-applications-a98aaf29-c227-4819-a233-bd4061d1df80\" target=\"_blank\" rel=\"noopener noreferrer\">the selection of an embedded operating system<\/a> and <a href=\"http:\/\/www.mentor.com\/embedded-software\/resources\/overview\/internet-of-things-iot-design-considerations-for-embedded-connected-devices-192652cf-d400-4a1f-99a5-b53fe29b2ecf\" target=\"_blank\" rel=\"noopener noreferrer\">Internet of Things software development<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A frequent question which I am asked in person or by other means is &#8220;Where can I learn about embedded&#8230;<\/p>\n","protected":false},"author":71677,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[300,541,542,579,580,309],"industry":[],"product":[],"coauthors":[],"class_list":["post-6936","post","type-post","status-publish","format-standard","hentry","category-news","tag-embedded-software","tag-internet-of-things","tag-iot","tag-operating-systems","tag-os","tag-rtos"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/71677"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=6936"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6936\/revisions"}],"predecessor-version":[{"id":10278,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6936\/revisions\/10278"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=6936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=6936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=6936"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=6936"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=6936"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=6936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}