目前Cortex M3的两种MCU主要有STM32和LM3S系列. 它们都可以在IAR环境下用C++编写程序,但略有差异. 由于Cortex M3的中断函数和其他MCU/ARM/DSP不同,它实际是一个普通函数. 它们在IAR环境下的中断向量表用C的数组表示很有特点,不像以往都是用汇编. 正因为中断函数是普通的函数,那么对于C++中类的成员函数作为普通的中断函数将会比其他容易的多. 这样C++在MCU上的编程就更合理和完美了~~~ 虽然STM32在stm32f10x_vector.c中定义了中断向量表并在stm32f10x_it.c内 构造了所有的中断空函数.
再一个问题就是包含C++头文件的问题. 在LM中C++头文件<string>,<cstdlib>等可以放如一个公共头文件中大家引用. 而在STM32中这些C++头文件只能放入各自的CPP文件的头部引用,否则将编译出错!!!
为什么要用C++呢???起码string会很方便的~~~ |