紧急呼叫! Gorgon Meducer 傻孩子------还是程序绝对地址定位
1、project->options->target->device 已经选定MEGA322、使用的是ICCAVR6.31A
“首先,把绝对定位去掉。然后编译。成功以后,用AVR Studio仿真(软件仿真就可以),
进入仿真界面以后,切换到汇编视图,找一个空白的地方,记录下地址…… ”
用上述方法可以看到,从0x2000-0x3800都是空白,这一点从ICC的Map文件也可以证实,但是放在这里还是报错。
#pragma abs_address: 0x3000
const unsigned char S1 = {0x00,0x33,0x55,0xAA};
const unsigned char S2 = {0x10,0x13,0x15,0x1A};
#pragma end_abs_address
编译后提示:
iccavr -o M32 -LC:\icc\lib\ -g -ucrtatmega.o -bfunc_lit:0x54.0x7800 -dram_end:0x85f -bdata:0x60.0x85f -dhwstk_size:32 -beeprom:1.1024 -fihx_coff -bmyarea:0x3C00.0x3FFF -S2 @M32.lk -llpatmega -lcatmega
!E KD325G021.o(4250): Code address 0x3000 already contains a value
!E KD325G021.o(4250): Code address 0x3001 already contains a value
!E KD325G021.o(4250): Code address 0x3002 already contains a value
!E KD325G021.o(4250): Code address 0x3003 already contains a value
!E KD325G021.o(4252): Code address 0x3004 already contains a value
!E KD325G021.o(4252): Code address 0x3005 already contains a value
!E KD325G021.o(4252): Code address 0x3006 already contains a value
!E KD325G021.o(4252): Code address 0x3007 already contains a value
C:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1
MEGA32的最大地址0-3FFF,试了一下,只有放在空间以外,比如0X4000才不报错,但是不会产生目标码。
急急急!帮忙分析一下。先谢了!!!!!
页:
[1]