首页 理论教育 AVR单片机附注与扩充-ICCAVR

AVR单片机附注与扩充-ICCAVR

时间:2023-11-20 理论教育 版权反馈
【摘要】:#pragma;这个编译器接受以下附注:#pragma interrupt_handler...这个附注必须在函数之前定义。它说明函数func1、func2是中断操作函数。这个附注指定了函数不生成挥发寄存器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。这个附注改变代码段名称,使其与命令行选项相适应。这个附注结束绝对定位,使目标程序使用正常浮动定位。C++ 注释如果选择了编译扩充,可以在源代码中使用C++的//类型的注释。

AVR单片机附注与扩充-ICCAVR

#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")函数来指定在线汇编代码。读者可参考在线汇编。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈