原创 [转载]IAR扩展关键字

2011-5-26 11:34 2597 9 9 分类: MCU/ 嵌入式

1. 用于控制数据和指针的扩展关键字:

__eeprom 用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放

__tinyflash, __flash, __farflash, __hugeflash 用于flash 存储空间, 控制数据存放,控制指针类型和存放

__ext_io, __io 用于I/O存储空间, 控制数据存放,控制指针类型和存放

__regvar 放置一个变量在工作寄存器中

2. 函数扩展关键字:

__nearfunc __farfunc 用于控制数据存放,这组关键字必须在函数声明和定义的时候指定

__interrupt. 关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定

__root. 关键字仅仅控制有定义的函数

3. 其它特别的关键字:

@ 用于变量的绝对地址定位。也可以用#pragma location 命令

#pragma vector 提供中断函数的入口地址

__root 保证没有使用的函数或者变量也能够包含在目标代码中

__no_init 禁止系统启动的时候初始化变量

asm, __asm 插入汇编代码

特别说明一下,IAR中定义中断函数的格式是:

#pragma vector="中断向量"

__interrupt void 中断服务程序(void)
{
//中断处理程序
}

    其中,interrupt放在一个非主函数的前面就表示这个函数是一个中断服务程序,人为的调用它是不行的(除非是自己写的软件中断)。值得注意的是中断服务程序,其函数类型必须是VOID型,传输参数也是VOID。

中断的初始化要另外加入代码,可在主程序内加入。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条