One of the least used but potentially
most useful C preprocessor directives is #error.
Here's a look at a couple of clever uses for #error that have proven
invaluable in embedded software development.
#error is an ANSI-specified
feature of the C preprocessor (cpp). Its syntax is very straightforward:
With all the automation available
today, it's easy for programmers to overlook costly overhead introduced into machine code by the compiler. Interrupt handlers are one key area worthy of a closer inspection.
If ever there was a piece of embedded software ripe for
reuse it's the memory test. This article shows how to test for
the most common memory problems with a set of three efficient,
portable, public-domain memory test functions.
This article is intended to give engineers a brief overview of the SAE J1939 protocol and how J1939 networks operate. For additional information, including source code, CPU benchmarks, and a presentation on J1939, visit the J1939 Software webpage.
Metaphors and analogies can be valuable tools for learning new software
concepts and tapping subject matter expertise during embedded software
development.
What is the Design by Contract programming philosophy, what can it do
for you, and why should all embedded software developers care?
If you were to single out just one most effective programming technique
for delivering high-quality code, what would you choose? Object-oriented
programming? Generic programming? Design patterns? Software
components? Frameworks? UML? CASE tools?
An object-oriented framework can be used to create safe, testable and
tunable motion control systems.
Writing the software to handle motion control is a critical job on
any real-time system design project. Safety is of the utmost
importance. And, of course, it is also important that the code work
precisely and allow for testing and performance tuning. An
object-oriented framework can be used to create safe, testable and
tunable motion control systems.
This next installment of enforceable coding standards for
embedded systems offers bug-killing rules for using certain C keywords and
naming global variables.