【摘要】:#pragma;这个编译器接受以下附注:#pragma interrupt_handler::...这个附注必须在函数之前定义。它说明函数func1、func2是中断操作函数。这个附注指定了函数不生成挥发寄存器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。这个附注改变代码段名称,使其与命令行选项相适应。这个附注结束绝对定位,使目标程序使用正常浮动定位。C++ 注释如果选择了编译扩充,可以在源代码中使用C++的//类型的注释。
#pragma(编译附注);这个编译器接受以下附注:
#pragma interrupt_handler<func1>:<vector number><func2>:<vector>...
这个附注必须在函数之前定义。它说明函数func1、func2是中断操作函数。所以编译器在中断操作函数中生成中断返回指令reti来代替普通返回指令ret,并且保存和恢复函数所使用的全部寄存器,同样编译器根据中断向量号vector number生成中断向量地址。
这个附注指定了函数不生成挥发寄存器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。
这个附注改变代码段名称,使其与命令行选项相适应。
这个附注改变数据段名称,使其与命令行选项相适应。这个附注在分配全局变量至EE- PROM中时必须被使用,读者可参考访问EEPROM的例子。
这个附注表示函数与全局数据不使用浮动定位(重定位),而是从<address>开始分配绝对地址。这在访问中断向量和其他硬件项目时特别有用。
这个附注结束绝对定位,使目标程序使用正常浮动定位。(www.xing528.com)
C++ 注释
如果选择了编译扩充(Project->Options->Compiler),可以在源代码中使用C++的//类型的注释。
二进制常数
如果选择了编译扩充(Project->Options->Compiler),可以使用0b<1|0>*来指定二进制常数。例如,0b10101等于十进制数21。
在线汇编
可以使用asm("string")函数来指定在线汇编代码。读者可参考在线汇编。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。