求教NEC-78k0系列扩展RAM空间如何应用?
芯片是78K0893,目前问题是这样的:应用78K0做了个自升级(BOOT)部分同时带有主程序部分(MAIN).
应用到的.DR文件内容如下:merge MeterDat:=IXRAM
在BOOT部分可以用RAM空间,看到BOOT.MAP文件里也用到了0XE000地址.
BOOT定位0XE000地址的语句:#pragma section @@DATA MeterDat AT 0xe000
可是如果在MAIN部分,就不能用:#pragma section @@DATA MeterDat AT 0xe000来定位变量的位置.
编译时候报如下错误:
..\SOURCE\XXX.c(43) : CC78K0 error E0842: Unrecognized pragma SECTION '@@DATA'
..\SOURCE\XXX.c(46) : CC78K0 error E0842: Unrecognized pragma SECTION '@@DATA'
实验过很多种方法,发现在单独不带BOOT部分的程序部分就是MAIN程序的空间可以包含BLOCK0-BLOCK7内容时候,用:#pragma section @@DATA MeterDat AT 0xe000可以做到正确分配;
但是如果MAIN程序空间里面不包括BLOCK0-BLOCK7内容时候不能够用上面方法将变量放到0XE000-0XF800地址处.
也实验过直接定位:__directmap UCHAR aa=0xe500;或者:__directmap UCHAR aa={0xe500};都不能够正确放置.
大侠们有什么高见呢? 自己顶下
希望有经验的大侠帮忙指导下啊 不知道LZ用的什么开发软件,我用的IAR使用扩展RAM的时候我是这样写的
#pragma dataseg = IXRAM//使用扩展的RAM
__no_init int x;
#pragma dataseg = default 用的PM软件,关键是:
:#pragma section @@DATA MeterDat AT 0xe000
在正常程序里面可以用
但是加到自升级的MAIN部分就不能用啊,在BOOT中也是可以用的 回复【2楼】37772166
-----------------------------------------------------------------------
这个IAR软件我没有用过 在UP下 已解决 回复【6楼】feifei1997
-----------------------------------------------------------------------
我也遇到这样的问题,feifei1997如何解决的,请指教。 qq:275817283
页:
[1]