首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于Codewarrior6.3的编译

关于Codewarrior6.3的编译

用Codewarrior6.3编译的时候,发现生成的Map文件中的变量地址不按照程序中变量的定义顺序排列,请问这是那里的问题,该怎么样解决?
可能是优化的结果吧。
海纳百川  有容乃大
我已经将优化设置为代码量最大,还是一样的,是不是需要在连接文件里定义一个段,不过觉得这样有点麻烦,还有没有其他简单的方法?
在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中定义顺序相反,请问这是怎么回事?
有没有哪位大哥帮忙解答下?
你可以把这些有顺序要求的变量用struct包在一起
晕啊,我要求所有.BSS变量都按照顺序排列,大概有上千个。难道Codewarrior编译不能按照顺序排列的吗?不会吧
上千个用数组
应该不用这么搞的,Diab编译的就是顺序排列的
返回列表