您的位置:首页 > 其它

关于CC2530的IAR工程编译器相关

2012-11-20 13:16 543 查看
一、EEPROM 区域数据存储:

__eeprom unsigned char a; //定义一个变量存放在EEPROM空间

__eeprom unsigned char a @ 0x8; //定义一个变量存放在EEPROM空间0X08单元

__eeprom unsigned char p[] @ 0x22 //定义一个数组存放在EEPROM空间,开始地址为0X22单元

__eeprom unsigned char a @ 0x08=9; //定义一个常数存放在EEPROM空间0X08单元

__eeprom unsigned char p[] @0x22={1,2,3,4,5,6,7,8};

二、FLASH 区域数据存储:

用关键字 __flash 控制来存放, __ flash 关键字写在数据类型前后效果一样

__flash unsigned char a @ 0x8; //定义变量存放在flash 空间0X08单元__flash

unsigned char p[] @ 0x22 //定义数组存放在flash 空间,开始地址为0X22单元

__flash unsigned char a @ 0x08=9; //定义常数存放在flash 空间0X08单元

__flash unsigned char p[] @ 0x22={1,2,3,4,5,6,7,8};

unsigned int __flash * p; //定义个指向flash 空间地址的指针,16位。

unsigned int __farflash * p; //定义指向flash 空间地址的指针,24位。

__flash unsigned char * p; //定义指向SARMM空间地址的指针,指针本身存放在flash 中。

flash 操作宏函数:在相关intrinsics.h头文件里有详细说明

三、extra options

1、GP-system-Data stack :0xff //堆栈大小设置

2、C/C++-Preprocessor:$PROJ_DIR$\headers\ //头文件定位

C/C++-extra Option: --string_literals_in_flash //定义字符串在flash空间

3、Linker-Extra Option:

-Ointel-extended,(XDATA)=.eep

-Ointel-extended,(CODE)=.A90

-Ointel-extended,(CODE)=.hex

四、与ICC编译器兼容宏定义

#ifndef __ICCAVR__

#define __ICCAVR__

#endif

#ifndef BIT

#define BIT(x) (1 << (x))

#endif

#define NOP() __no_operation() //asm("nop")

#define CLI() __disable_interrupt() //asm("cli")

#define SEI() __enable_interrupt() //asm("sei")

#pragma language=extended

#ifndef ENABLE_BIT_DEFINITIONS

#define ENABLE_BIT_DEFINITIONS

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: