注意IAR的关键字,这个可以简化程序

一、类型属性:

1、存储器属性:

__data16 int 16;

__regvar 定义一个变量在工作寄存器中。例:__regvar int variable_name @R4

2、一般类型属性:

(1)、函数类型属性:__interrupt,__monitor和__task

__interrupt void TA0_ISR (void) 定义中断函数

__monitor 函数执行过程中禁止中断

__task: 不对特殊功能寄存器进行压栈保护

(2)、数据类型属性:const,volatile

const 常量

volatile 易失性变量,编译器遇到由volatile修饰的变量就不对其优化,从而每次都从内存中读取该变量的值。

二、对象属性:

1、用于变量:__no_init

__no_int 定义变量但不初始化

2、用于函数和变量:location,@和__root

__root 保证一个函数或一个变量不管使用与否都产生目标代码。

用于变量的绝对地址定位

3、用于函数:__intrinsic, __noreturn,__raw, __save_reg20和 vector

三、asm, __asm 插入汇编代码

推荐用法

·变量定位

__no_init int a@0x200;(注意偶地址,因为这里的aint型的)

变量a就定义在RAM0x200单元,注意被定位的变量不能初始化。

__no_init char b[10]@0x207;

数组b[10]定义在0x207(0x207+9)的地址范围内

·常量定位(无须__no_init,并且可以初始化)

const unsigned int c[4]@0x1000={1,2,3,4};(这个数组在FLASH内)

·函数定位

void Fuction(void)@"My_seg"

My_seg需要在XCL文件内定义,否则编译出错。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值