标题:
关于Codewarrior6.3的编译
[打印本页]
作者:
hitmissile
时间:
2007-6-1 10:07
标题:
关于Codewarrior6.3的编译
用Codewarrior6.3编译的时候,发现生成的Map文件中的变量地址不按照程序中变量的定义顺序排列,请问这是那里的问题,该怎么样解决?
作者:
strongchen
时间:
2007-6-1 10:11
可能是优化的结果吧。
作者:
hitmissile
时间:
2007-6-1 10:20
我已经将优化设置为代码量最大,还是一样的,是不是需要在连接文件里定义一个段,不过觉得这样有点麻烦,还有没有其他简单的方法?
作者:
hitmissile
时间:
2007-6-1 14:11
在LCF文件中加了个Section,在主程序中定义如下:
#pragma define_section sramcode ".sramcode"
#pragma section sramcode begin
uint8 actionPer10ms;
uint8 actionPer40ms;
uint8 actionPer500ms;
uint8 mod1_disp1;
uint8 mod1_disp2;
uint8 mod6_disp0;
uint8 mod1_disp0;
uint16 dtcd;
#pragma section sramcode end
但是在Map文件中生成如下:
# .sram_bss
20006000 00000002 .sramcode dtcd (main.c)
20006002 00000001 .sramcode mod1_disp0 (main.c)
20006003 00000001 .sramcode mod6_disp0 (main.c)
20006004 00000001 .sramcode mod1_disp2 (main.c)
20006005 00000001 .sramcode mod1_disp1 (main.c)
20006006 00000001 .sramcode actionPer500ms (main.c)
20006007 00000001 .sramcode actionPer40ms (main.c)
20006008 00000001 .sramcode actionPer10ms (main.c)
次序刚好与Main中定义顺序相反,请问这是怎么回事?
作者:
hitmissile
时间:
2007-6-3 11:55
有没有哪位大哥帮忙解答下?
作者:
saserking
时间:
2007-6-3 12:02
你可以把这些有顺序要求的变量用struct包在一起
作者:
hitmissile
时间:
2007-6-3 21:41
晕啊,我要求所有.BSS变量都按照顺序排列,大概有上千个。难道Codewarrior编译不能按照顺序排列的吗?不会吧
作者:
saserking
时间:
2007-6-3 23:00
上千个用数组
作者:
hitmissile
时间:
2007-6-4 09:09
应该不用这么搞的,Diab编译的就是顺序排列的
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0