打印
[AVR单片机]

求高手给个IAR4.21生成EEP的例子.

[复制链接]
2586|5
手机看帖
扫描二维码
随时随地手机跟帖
沙发
janeslee| | 2007-10-8 10:26 | 只看该作者

很简单啊

只需在变量名前加__eeprom限定符即可。
__eeprom unsigned char str[]="EEPROM Test!";
编译后结果中会显示如下:
 149 bytes of CODE  memory (+ 8 bytes shared) 
  41 bytes of DATA  memory (+ 6 bytes shared) 
  13 bytes of XDATA memory 
其中XDATA就是EEPROM占用情况,LINK后IAR自动生成三个HEX文件,其中xxx_eeprom.hex就是EEPROM文件。

使用特权

评论回复
板凳
ATmega16|  楼主 | 2007-10-8 12:14 | 只看该作者

详细说明下怎么连接生成xxx_eeprom.hex

详细说明下链接怎么生成xxx_eeprom.hex

使用特权

评论回复
地板
janeslee| | 2007-10-8 13:31 | 只看该作者

你自己试过没有

要多详细啊?把你的编译和Link输出的Message 贴出来看看,看看问题出在哪

使用特权

评论回复
5
hotpower| | 2007-10-8 23:57 | 只看该作者

在*.XCL文件加入-Ointel-extended,(XDATA)=.eep

/*-----------------------------------------------
IAR的变量定位很不错。
#pragma location = 0x00
__eeprom unsigned char DataTbl0[] = {1, 2};
#pragma location = 0x10
__eeprom unsigned char DataTbl1[] = {2, 3};

__flash unsigned char DataTbl2[] @ 0x1ff = {2, 3};

__no_init unsigned char test[10] @ 0x8ff;
-----------------------------------------------*/

/*------------------------------------------
在*.XCL文件尾部加入以下3句(M48为iom48.xcl)
// Output
-Ointel-extended,(CODE)=.hex//输出hex文件
-Ointel-extended,(XDATA)=.eep//输出eep文件
-------------------------------------------*/

相关链接:http://www.**/blog/hotpower/42438/message.aspx

使用特权

评论回复
6
dadodo| | 2008-4-26 14:59 | 只看该作者

这个错误怎么解决?

初次使用IAR,xcl文件中加入了

// Output
-Ointel-extended,(CODE)=.hex//输出hex文件
-Ointel-extended,(XDATA)=.eep//输出eep文件

编译出现如下信息:
Error[e133]: The output format intel-extended cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

229

帖子

0

粉丝