Welcome to Braun Angepasste Software
This year I gave another talk that somehow touched upon SW-architecture & data-centric programming again. This year my talk was about “Code Building Blocks - A report on an MCU project study based on data-centric programming with configurable System & GUI” and it marked a point at which everthing I thought about – as far as it's related to embedded programming - over the last couple of years was somehow joined together in a rather dialectic way. Because of this I have made a video of the presentation consisting of part I and part II.
The pdf on the same topic is also available, but the I do recommend the video.
I plan to publish shortly a “HowTo” on setting up your own free Eclipse based IDE with toolchain and integrated debugger for ARM Cortex MCUs.
Also the demo project used in the presentation (including source code) will be made available here within the next 2 months (i.e. by 24th of may).
Here is an old article of mine that has been published in the “Embedded Systems Europe” magazine in May 2006. Admittedly, quite old, but it still outlines the basic ideas quite well. And there's a Demo-Project to go with it. A presentation (and a paper) on the same topic has been held at the embedded world conference in Nuremberg in 2007.
In the meantime the system has been ported to Cortex-M3, too. While the ARM7 still needed a little quirky code to realize interrupt nesting the NVIC of the M3 is much better in terms of reaction (and clean code). NVIC stands for Nested Vectored Interrupt Controller. It also supports object oriented programming in C++ now.
Please send be a mail if you are interested in employing the DCOS in your projects (or if you have any other question).
The C++ part of the DCOS also relates to and builds on “C to C++ Migration for Embedded Systems”, another topic at the embedded world conference in 2008. It shows how a C-Module controlling an On-Chip-timer-peripheral can be converted into a C++ class by following 6 well explained steps. Again, here is a presentation, a paper and a bit of source code for each of the six conversion steps.