~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Firmware Update
- October 28, 2013
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in this issue
-- Binary Executable Analysis Techniques for Embedded Systems
-- Top 10 Bug-Killing Coding Standard Rules
-- Reader Q&A - Inter-Module Communication
-- Last Chance to Register for Embedded Security Boot Camp -- Industry News That's Not Boring
Firmware Update is a free newsletter by embedded guru Michael Barr. This issue is Copyright 2013 by Barr Group, but may be reprinted for non-commercial purposes. Please forward it to colleagues who may benefit from the information. |
|
Binary Executable Analysis Techniques for Embedded Systems ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Where do you begin if you think a competitor has infringed your patented and/or copyrighted source code or misappropriated your software trade secrets? Might extracting a binary executable from the Flash/ROM memory at the heart of the competitor's product be a worthwhile investment? What, if anything, can be learned from a binary alone?
Unfortunately, the better known techniques of binary analysis for Windows or Linux programs, such as viruses, are of little to no use when the binary executables are from embedded systems. The complication is that most embedded systems do not use dynamically linked libraries, are each built around microcontrollers from different processor families, interface to custom electronics, and don't reliably contain any operating system at all. |
|
Top 10 Bug-Killing Coding Standard Rules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
![]() It's far cheaper and easier to prevent a bug from creeping into code than it is to find and kill it after it has entered. So follow along to learn ten specific examples of coding rules you can follow when programming in C or C++ to reduce or eliminate certain types of firmware bugs altogether. |
|
Reader Q&A - Inter-Module Communication ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I recently received this question from George H.:
"Section 4.2.c of the Embedded C Coding Standard states the rule "no variable be defined (via extern) in a header file". How, then, do you pass variable info to another module?" Rule 4.2.c.i relates to software architecture more than coding style. It is specifically aimed at increasing modularity and cohesion by eliminating global variables as a means of inter-module communication. There are two architectural alternatives to those globals: 1. Communication via APIs. This is what Object-Oriented Programming is all about. You either operate on data implicitly (i.e., C++'s this) or implicitly by passing the caller's data structure as a parameter. 2. Message Passing. This is the (proper) RTOS style of communication, in which tasks send messages to each other and thereby influence each other's internal state machines. Note this is a very scalable form of modular architecture, in which the recipient of a message need not be even on the same CPU or even on the same PCB. |
|
Last Chance to Register for Embedded Security Boot Camp ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
![]() This week-long training is an immersion into the unique challenges of designing and/or retrofitting security into embedded devices. This comprehensive training is a combination of three of our most popular security short courses and includes hands-on exercises on an ARM board you keep. |
|
Industry News That's Not Boring ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'If it's your decision, it's design; if not, it's a requirement.' -- Alastair Cockburn
The Raspberry Pi Foundation aims to make a Pi for the Internet of Things http://flip.it/W3kjP Intellectual property protections for embedded software: A primer. http://ow.ly/pQnL5 Real-time scheduling: Linux v RTOS http://www.embedded.com/design/operating-systems/4371651/1/Comparing-the-real-time-scheduling-policies-of-the-Linux-kernel-and-an-RTOS- The price of solar sells has dropped 99% in the past 25 years: http://thinkprogress.org/climate/2013/10/06/2717791/cost-pv-cells-solar-power-grid-parity/ How 3-D printing of robots could change space exploration. http://gigaom.com/2013/10/04/how-3d-printing-robots-will-influence-the-future-of-space-exploration/ "Just because you don't agree with something, doesn't mean that what you don't agree with is wrong." -- Neil deGrasse Tyson TrendNET's Net-connected home security video cameras hacked; FTC fines Company for inadequate #embedsys security! http://www.ftc.gov/opa/2013/09/trendnet.shtm (They should've registered their engineers for Embedded Security Boot Camp!) NASA loses "Deep Impact" comet seeker, apparently due to a latent software bug. http://news.nationalgeographic.com/news/2013/09/130920-deep-impact-ends-comet-mission-nasa-jpl/ The object-oriented version of spaghetti code is 'lasagna code'. Too many layers! Doctors disabled wireless in Dick Cheney's pacemaker to thwart hacking. #embedsys #security http://www.dfinews.com/blogs/2013/10/doctors-disabled-wireless-dick-cheneys-pacemaker-thwart-hacking |
|
Quick Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Contact Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
email:
mbarr@barrgroup.com
phone:
866.65.EMBED
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|