To weigh in on this a little. I am one of Canada's representatives on ISO-WG14 (Group responsible for ISO C standards) The C standards for embedded systems basically addresses three common but non standard extensions. 1) Fract and Accum data types to better support embedded applications. dSPIC type applications will probably benefit from these most. 2) Support for multiple address spaces. Most small embedded systems have multiple address spaces. Many embedded systems applications have user defined data spaces. Developers can define support for example for serial RAM located on a software driven I2C port that will be managed by the compilers symbol table. 3) Direct access to the registers including the condition code registers, which should eliminate the need for asm except for cycle specific precise timing. The kind of extension you are suggesting would not need any changes to the language definitions. C99 has an "as if" rule that allows a lot of compiler implementation creativity. "The job of an embedded system compiler is to wiggle the bits at all the right times" w.. William Killian wrote: > There is an ISO committee working on a standard embedded extension for > ISO C > > An extension could be something like 'no_return' as in use entry instead > of no-return for a function that starts off the whole processor for > reboot or any task that can not return - for multi-tasking systems any > of the task entry points. Another extension could be forcing this > 'function' to an absolute address. That embedded committee is putting > in things to allow memory partitioning so that might very well be > enough. > -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist