打印

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

[复制链接]
3282|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,不然它优化的结果是正确的。

既然结果正确,而且调试也无误,你何必强迫它生成一堆多余的代码而目的仅仅是为了调试时看到几个小点?

使用特权

评论回复
5
虾军师|  楼主 | 2009-8-7 10:15 | 只看该作者
4# john_light  我用的是c 看过它反汇编之后的语句 那些没有单步到的语句都是没有地址的 就是确定没有执行到的 烧写到片上 硬件电路也是证明没有执行到的

使用特权

评论回复
6
mcuatmel| | 2009-8-7 15:59 | 只看该作者
这种可能性不大,要不你把优化去掉试试。将优化等级设为0

使用特权

评论回复
7
虾军师|  楼主 | 2009-8-7 16:07 | 只看该作者
6# mcuatmel  优化等级在KEIL中生成.hex文件可以选择 伟福好像没有

使用特权

评论回复
8
ningling_21| | 2009-8-7 21:05 | 只看该作者
把你的程序贴出来看看,不然怎么知道是什么现象?

使用特权

评论回复
9
虾军师|  楼主 | 2009-8-7 22:00 | 只看该作者
我发现出现“优化”的都是那些重复使用的句子。。。。因此我用另外的方式表达愿意 使其形式不一致 再单步就可以执行到了..........按我们老师的话就是“靠...看你这回还能给我优化不····”

使用特权

评论回复
10
auzxj| | 2009-8-7 22:08 | 只看该作者
伟福的东西不敢恭维,有段时间我用汇编写代码,单步调试的时候,竟然提示我这行没代码,明明有的,重启几遍软件或电脑就又好了。。。。。。。。。。用C写就更没治了

使用特权

评论回复
11
虾军师|  楼主 | 2009-8-8 09:01 | 只看该作者
10# auzxj   那些显示没有代码的 都是单步时没带圆点

使用特权

评论回复
12
mcuatmel| | 2009-8-8 09:17 | 只看该作者
你用伟福的仿真器,外挂Keil C编译连接器,是吧?
你在你的头文件中第一行加上宏指令就行了,这个参照Keil C手册。
例:#pragma  debug code symbols large optimize(4,speed) oe

使用特权

评论回复
13
虾军师|  楼主 | 2009-8-8 09:54 | 只看该作者
12# mcuatmel   试试看去 多谢指教~~:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

48

帖子

0

粉丝