打印

keil527编译器编译优先选项的锅?

[复制链接]
951|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lvben5d|  楼主 | 2020-7-14 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lvben5d 于 2020-7-14 14:00 编辑

最近用GD32F130R8T6做了一个板卡,使用keil5.27 conplier verison编译器(**到3X年)  默认-o2编译优先级,编译出的代码,运行完全不正常,定时器时间完全不对,  仅仅修改编译优先 default  运行正常。   我原来以为**到期了,其实不是,初步分析原因是工程里面有的断点不存在但是 仿真结束的时候,说找不到环境变量。估计是因此引起的,同编译优先等级无关。  大家注意有时候工程的断点 你明明在C代码里【没看到】红色,但在汇编代码里 可能会有! 因此造成一些异常, 需要清掉断点所在! C语言跟汇编要一致,才应该是正常的位置。PS:  删除找不到位置的断点后(看汇编找到,C代码发现不了),退出仿真也不会提示环境变量出问题,编译优先等级设置-02 也没事。

使用特权

评论回复
沙发
xdqfc| | 2020-7-14 16:08 | 只看该作者
没有明白什么意思,是不是有的变量被编译器和谐掉了啊,仿真的时候直接认为代码不存在????

使用特权

评论回复
板凳
baiyunfei.k.f| | 2020-7-31 17:11 | 只看该作者
BKPT 0XAB 和这个有关吗

使用特权

评论回复
地板
lvben5d|  楼主 | 2020-8-3 12:59 | 只看该作者
baiyunfei.k.f 发表于 2020-7-31 17:11
BKPT 0XAB 和这个有关吗

有1个工程  硬件仿真的时候  如果存在断点,DEBUG关闭的时候就会卡死! 但是其他工程不会。  我发现会卡死的这个工程 必须把断点都去掉, DEBUG关闭的时候就正常,否则必卡死。 (这个工程我是COPY文件添加进新project的 好奇怪 连go to definition 都不行)  其他工程无此毛病。

使用特权

评论回复
5
pptpptppt| | 2020-10-23 17:30 | 只看该作者
lvben5d 发表于 2020-8-3 12:59
有1个工程  硬件仿真的时候  如果存在断点,DEBUG关闭的时候就会卡死! 但是其他工程不会。  我发现会卡 ...

老哥,这是MDK的问题,我去年拿STM32F103VE也碰到过这个事情,但是重新找一个正常的工程编译再debug就什么事情都没有,把正常工程的所有文件都移除再添加卡死的工程里所有的源文件和头文件重新编译,就没有问题

使用特权

评论回复
6
有何不可0365| | 2020-10-31 23:33 | 只看该作者
会卡死的吧?

使用特权

评论回复
7
有何不可0365| | 2020-10-31 23:34 | 只看该作者
工程编译不对,所以频频出错,这到底是道德的沦丧还是???请听楼下怎么说?

使用特权

评论回复
8
有何不可0365| | 2020-10-31 23:35 | 只看该作者

使用特权

评论回复
9
lvben5d|  楼主 | 2020-11-4 13:29 | 只看该作者

最傻就是你啊  哈哈

使用特权

评论回复
10
yangxiaor520| | 2020-11-4 18:09 | 只看该作者
个人还是喜欢用IAR

使用特权

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

本版积分规则

95

主题

746

帖子

12

粉丝