WAVE6000编译的问题(这算是优化吗?)

[复制链接]
4347|12
 楼主| 虾军师 发表于 2009-8-6 15:27 | 显示全部楼层 |阅读模式
情况说明:
一直以来用的wave6000编译程序
编译成功后单步
发现有些程序语句前有蓝色小圆点
有些句子是没有的
并且单步执行是直接跳过没有蓝圆点的那些句子
老师说那是伟福编译器优化的
我晕 这是优化吗
这是草菅人命啊

问题:
没有蓝色圆点的句子是不是没有编译到HEX文件里去?
怎么解决啊?

解决目标:
所有的语句前面在单步的时候都有蓝色小圆点?
john_light 发表于 2009-8-6 16:49 | 显示全部楼层
确实是被优化了,而且是Keil C编译器之类的程序干的。

编译链接器连这几脚功夫都没有,那还用出来江湖走动?;P
 楼主| 虾军师 发表于 2009-8-7 09:09 | 显示全部楼层
2# john_light 没有办法了吗····
john_light 发表于 2009-8-7 09:52 | 显示全部楼层
除非编译链接器存在BUG,不然它优化的结果是正确的。

既然结果正确,而且调试也无误,你何必强迫它生成一堆多余的代码而目的仅仅是为了调试时看到几个小点?
 楼主| 虾军师 发表于 2009-8-7 10:15 | 显示全部楼层
4# john_light  我用的是c 看过它反汇编之后的语句 那些没有单步到的语句都是没有地址的 就是确定没有执行到的 烧写到片上 硬件电路也是证明没有执行到的
mcuatmel 发表于 2009-8-7 15:59 | 显示全部楼层
这种可能性不大,要不你把优化去掉试试。将优化等级设为0
 楼主| 虾军师 发表于 2009-8-7 16:07 | 显示全部楼层
6# mcuatmel  优化等级在KEIL中生成.hex文件可以选择 伟福好像没有
ningling_21 发表于 2009-8-7 21:05 | 显示全部楼层
把你的程序贴出来看看,不然怎么知道是什么现象?
 楼主| 虾军师 发表于 2009-8-7 22:00 | 显示全部楼层
我发现出现“优化”的都是那些重复使用的句子。。。。因此我用另外的方式表达愿意 使其形式不一致 再单步就可以执行到了..........按我们老师的话就是“靠...看你这回还能给我优化不····”
auzxj 发表于 2009-8-7 22:08 | 显示全部楼层
伟福的东西不敢恭维,有段时间我用汇编写代码,单步调试的时候,竟然提示我这行没代码,明明有的,重启几遍软件或电脑就又好了。。。。。。。。。。用C写就更没治了
 楼主| 虾军师 发表于 2009-8-8 09:01 | 显示全部楼层
10# auzxj   那些显示没有代码的 都是单步时没带圆点
mcuatmel 发表于 2009-8-8 09:17 | 显示全部楼层
你用伟福的仿真器,外挂Keil C编译连接器,是吧?
你在你的头文件中第一行加上宏指令就行了,这个参照Keil C手册。
例:#pragma  debug code symbols large optimize(4,speed) oe
 楼主| 虾军师 发表于 2009-8-8 09:54 | 显示全部楼层
12# mcuatmel   试试看去 多谢指教~~:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

48

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部