Making Rtems Device Drivers using C?
afraiett at bigpond.net.au
Wed Jan 5 04:41:53 UTC 2005
Chris Johns wrote:
> Overhead is not the issue. Joel is making a general point about C++
> and device drivers, and to be more specific drivers with interrupts.
> You need to know more about what is happening to make the code work as
> you expect.
> For example you can not throw exceptions from an ISR and catch them in
> a task, and accessing a STL container in an ISR could result in the
> code trying to lock a mutex, or there could be temporary objects that
> try to use the heap. I suspect there are more conditions.
True to a point, but that is not specific to the language. Eg, you can't
call malloc from an interrupt in C code.
>> Michael Barr, in book cited below, states that C++ is preferable due
>> to its type-safety. Overhead can be controlled by avoiding things
>> such as templates.
>> 1. Barr, M., Programming embedded systems in C and C++. 1999,
>> Sebastopol, Calif.: O'Reilly. xvii, 174.
> Not sure I agree with the last statement about templates.
The main issue I believe is code bloat. Another article is below.
PO Box 859
Hamilton NSW 2303
There are those who seek knowledge for the sake of knowledge - that is CURIOSITY
There are those who seek knowledge to be known by others - that is VANITY
There are those who seek knowledge in order to serve - that is LOVE
Bernard of Clairvaux (1090 - 1153)
More information about the users