A significant factor in getting any job done properly is having
the right tools. This is true whether you are building a
kitchen, fixing your car or developing embedded software. Of
course, it is the last of these that I am interested in here. I
have been evangelizing on this topic for years [decades!]. The
problem is that there is a similarity – arguably superficial –
between programming an embedded system and programming a desktop
computer. The same [kind of] languages are used and software
design techniques are fairly universal. However, there are
really some major differences … There are three key areas of
difference between desktop and embedded programming: - The
degree of control required by the embedded developer is much
greater, in order to utilize resources [time and memory]
effectively. - The approaches to verification and debugging and
quite different, as an external connection and/or a selection of
instruments need to be employed. Also, further tools may be
needed to optimize the performance of th