In the comp.arch newsgroup, we've been following a heated discussion about Parallelism. It's focused on the question of designing software to run on multiple cores, either with shared memory or message passing.
We're of the opinion that the compiler can assist the developer in this task. After all, the compiler knows what is (or could be) in memory at any one moment.
There's only so much debugging information an LED or LCD display can report. What's worse, embedding debugging code in the executable can provoke misuse, while stripping it out can cause heisenbugs.
Your C compiler can help manage debugging information for you in a way that doesn't interfere with your product. Here's how:
Just when you think an old misconception is dead...
The "stack/no stack" discussion has arisen again. We've heard renewed
claims that C programs require a hardware stack, and that a software
stack is unacceptably slow. Both ideas are patently false.
C macros are very useful, but a little taxing for both compiler writers and programmers.
C Traps and Pitfalls by Andrew Koenig is an interesting compilation of C-isms: quirks of the C language that can impact the programs you write.
This article gives a plain-language way to read type declarations.
What happens to high-level language programming when computer architecture changes? Walter Banks and Kirk Zurell recount the challenges of accommodating novel interrupt architectures in C for embedded systems.
The eTPU is an event driven processor. This paper looks at the implimentation challenges implimenting execution events on the mainstream embedded systems 8 bit processor comparing HC08/HCS08 architectures and the RS08.
Threads in C require the following:
- A thread declaration, with a dispatch expression.
- A thread function (either a macro, function, or other code).
Programmers just discovering embedded systems usually have lots of C experience, but little or no familiarity with the restrictions and peculiarities of 8-bit computer systems. The lack of amenities such as a console, operating system, or system call interface can leave them wondering where to start.