Blogs

An Introduction to Embedded Development

Peter JohanssonJune 14, 20133 comments
This blog is a series to provide an introduction to embedded development for the aspiring embedded developer. No prior embedded development experience will be assumed, but you should have a reasonable understanding of the C language and knowledge of basic electronics. It will focus on the TI MSP430, but present topics in a generic way that can be easily translated to other processors.

Welcome!

Hello, and welcome to my blog! This blog will be somewhat different from most of the other blogs on EmbeddedRelated.com. For starters, I will not be assuming any knowledge or experience in embedded development. Secondly, it will be serial in nature with each article building on those that precede it. While each entry will be self-contained, the novice should read each article through in order.

I imagine the primary audience to be those with a fair bit of software development experience, particularly in the C language, and only the most basic knowledge of electronics. There are plenty of excellent resources to get the complete novice up to speed in these areas and I see no reason to re-invent the wheel. Instead, I will concentrate on areas where existing materials are lacking, unclear, or where I see many new embedded developers stumbling.

While I have chosen to focus on the Texas Instruments MSP430, this will not be simply a tutorial on writing programs for the MSP430. My goal is to teach the fundamentals of embedded development that can be applied to any micro-controller.

I have a rough outline for this course but nothing is fixed in stone. Reader input is strongly encouraged, particularly if something is unclear or presented with insufficient background. To an extent future content will be driven by the comments I receive. If you like the way things are going, be sure to say so!

I should make it clear that my embedded knowledge is far more limited than many of this site, so please feel free to correct me if I get something wrong. It is also worth noting here that many of the initial articles may prove to be quite useful to experienced developers wishing to get up to speed quickly with the MSP430.

Short Term Road-map

  1. This introduction. Overview and suggested background material.
  2. What is a micro-controller? Why are they so cool? A brief history of micro-controllers and the current state of the micro-controller landscape.
  3. Why the MSP430? What's to like. What is not to like. (And why not Arduino?)
  4. A rundown of development tools for the MSP430. The importance of selecting the proper development tools. Obtaining and installing your development tools.
  5. An overview of the TI MSP430 LaunchPad. Why it is one of the best development tools on the market. A list of the "gotchas" that seem to trip up most users.
  6. Resources for MSP430 developers.
  7. Writing your first program.

As you can see, it will be a little while before we touch any hardware, so go ahead and order your MSP430 Launchpad now. It is only $9.99, and TI provides free shipping to many countries world-wide. Up until a few months ago the MSP430 LaunchPad was only $4.30, and I would have said, "This thing is less that a cup of coffee from some large Seattle-based coffee chain, how can you not buy one? Heck, why not just get two, or even three?" but alas, that is no longer the case. It is still a great deal at ten bucks, and I do recommend having two just in case you think you may have fried one. For the record, I happen to have a dozen and I am hardly alone in this regard. I have yet to fry any.

While you are on the TI website, you may wish to order some samples so you have a few extra chips to play with. Like every other vendor, TI has cut back on their free sample program as a result of abuse, but you should still have no difficulties (or guilt) ordering a few free samples. All you will need is an email address from something other than gmail, yahoo, etc. I suggest sampling two MSP430G2553IN20 and two MSP430G2452IN20 parts.

Getting up to Speed for this Series

In my opinion, most computer books are not worth the paper they are printed on. However, the following three books are all very good and worth every penny. The first two are outstanding.

I am a strong believer that the very first book written on the C language is still the best. This is The C Programming Language by Brian Kernighan and Dennis Ritchie. The latter is the developer of the C language. This is known as "The White Book" (because of its white cover) or "K&R" (for the authors). Be sure to get the second edition which covers ANSI C.

If you are not a strong C programmer or if your introduction to C was via C++ you will find this to be an invaluable refresher. At the same time, this is still a very good introduction to programming for the non-programmer.

If you are not familiar with binary numbers, binary arithmetic, digital logic, or basic computer architecture, CODE: The Hidden Language of Computer Hardware and Software by Charles Petzold is an excellent introduction.

The above two books will provide almost all of the knowledge required to follow the computer-related aspects of this series.

There is only one book I can recommend specific to the MSP430, MSP430 Microcontroller Basics by John H. Davies. Although this book is only five years old, much has changed in the MSP430 landscape in those five years and many new users have difficulty working with this book. However, most of the issues have to deal with toolchains and development hardware, and as these are the issues that I will be covering early in this series they will effectively be rendered non-issues. The discussion relating to the architecture of the MSP430 (the bulk of the book) is still valid, and experienced embedded developers will find this a very quick route to getting up to speed with the MSP430.

Most books on electrical engineering tend to be of much better quality than those on computer topics, but most tend to be either too advanced or too basic. One that really stands out for the beginner is Electrical Engineering 101: Everything You Should Have Learned in School...but Probably Didn'tby Darren Ashby.

There are also a number of on-line resources that are quite good.

All About Circuits is a community effort that has been a work-in-progress for a number of years now. Certain areas are much better than others, and there are still a few notable holes but it is still an excellent resource. I suggest that you work through the first four volumes. At the very least, work through the first volume.

There are also two good video presentations, both of which are very recent and still under development:

For those looking to get started in electronics it may be very helpful to work through all three of these on-line resources in parallel. If you are having difficulty understanding a topic, one of the three authors is quite likely to explain it in a way that you can understand.

Closing

Stay tuned for future articles in this series! If you found this article helpful, please feel free to share it with your friends.



[ - ]
Comment by kishan jJune 15, 2013
Great start, Peter.
Looking forward to the next installment.
[ - ]
Comment by stephanebJune 16, 2013
Nice first blog Peter. You have probably noticed by now, but I took the liberty to promote your article to Reddit:
http://www.reddit.com/r/ECE/comments/1gg8cz/an_introduction_to_embedded_development/
[ - ]
Comment by rdlanerJuly 18, 2013
Hi Peter, great read, looking forward to the rest! Are they coming soon?

To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Registering will allow you to participate to the forums on ALL the related sites and give you access to all pdf downloads.

Sign up

I agree with the terms of use and privacy policy.

Try our occasional but popular newsletter. VERY easy to unsubscribe.
or Sign in