OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5615|回复: 3

STM32F4的例程经过代码优化选项后,就不能正常使用

[复制链接]

4

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-5-14
在线时间
13 小时
发表于 2015-9-10 09:46:10 | 显示全部楼层 |阅读模式
比方说我中断处理中要用很多计算,不得不进行代码优化,就是Keil C中的Optimization--Level 3。一勾选优化3根本就跑不了了。我删到只剩最简单的外部中断,发现连外部中断都进不了了。


PS:已经解决了,发现不能用在中断中用宏定义写一些语句,比如LED的宏定义来控制亮灭,在优化后这句将不被执行。必须要用GPIO_SetBits这个函数来写。诸如此类
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-9-10 10:50:00 | 显示全部楼层
谨慎选择代码优化,一旦开启了代码优化那么你以前写代码时候的不严谨就会暴露无遗,导致程序无法运行
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2015-9-10 11:30:37 | 显示全部楼层
跟宏定义无关,只能是语句的问题。
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复 支持 反对

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2015-9-10 12:20:55 | 显示全部楼层
现在我所有的工程都采用-o3最高级优化,还勾选了use micro lib,期间出过得不到预期的实验结果,经过修改完全没问题了。
深度优化对编程者的能力要求较高,对c的掌握比较扎实,出错是你自己的语句问题,不够严谨。
我的许多代码经过深度优化,代码量显著减少,运行速度大大提升,推荐有一定能力的人对最后的工程代码做优化。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 05:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表