困扰了我很久STM32的TIM1时钟走慢的问题终于找到原因了
2011-07-29 12:57
253 查看
在使用STM32的过程中,经常发现TIM1定时器莫名奇妙的走慢,以前一句一句的查看代码,怕晶振没起振,拿示波器看,都没有发现问题,但TIM1就是走慢了,后来只能尽量避免使用TIM1,今天再次下定决心要找到原因,最后终于发现是MDK的优化造成的。
如果默认使用Level 2 (-O2)优化级别,勾选Optimize for Time 和One ELF Section per Function ,TIM1就会变慢很多,其他定时器都正常。
使用Level 0 (-O0)优化级别,勾选Optimize for Time 和One ELF Section per Function
或者使用Level 2 (-O2)优化级别,只勾选One ELF Section per Function ,则TIM1能正常工作,目前虽然能解决问题了,但是还没有仔细研究不同的优化之间的区别,到底编译器把哪部分代码给优化掉了,才造成TIM1定时器走慢呢,这个还有待进一步研究,现在要忙手头上的项目,暂且先放一放吧。
如果默认使用Level 2 (-O2)优化级别,勾选Optimize for Time 和One ELF Section per Function ,TIM1就会变慢很多,其他定时器都正常。
使用Level 0 (-O0)优化级别,勾选Optimize for Time 和One ELF Section per Function
或者使用Level 2 (-O2)优化级别,只勾选One ELF Section per Function ,则TIM1能正常工作,目前虽然能解决问题了,但是还没有仔细研究不同的优化之间的区别,到底编译器把哪部分代码给优化掉了,才造成TIM1定时器走慢呢,这个还有待进一步研究,现在要忙手头上的项目,暂且先放一放吧。
相关文章推荐
- 一个困扰很久的问题:Client.RemoteEndPoint与REMOTE_ADDR显示不同IP的原因
- 纠结了很久,不知道为什么除了什么原因,用任何方查都查不到根源,后来ArrayList存放了Bitmap,结果出错了,终于找到了事情的根源,一阵无语,不能存放竟静态的,为什么不提示呢, 害我以为是那些自
- b2_velocityThreshold 一个困扰了我很久的问题终于解决了
- mysql 短连接压测遇到的问题及查找解决思路[终于找到原因了]
- jsp在mysql下实现中文的输入(困扰了很久的问题,终于解决了)
- 困扰很久的opencv打不开视频问题终于解决了
- 分享困扰了我很久的问题关于boot.ini的修改
- eclipse插件安装失败的列表如何清除-一个困扰很久的问题
- 终于找到程序员无休止加班的原因了
- STM32工程编译后TIM1时钟变慢的解决
- 关于gridview控件,困扰我已久的问题终于解决了
- 一个困扰很久的问题得到解决,ubuntu下面怎样让nautilus忘记曾经记住的密码
- 终于找到问题所在,javabean引用问题
- gns3 protocol is down的一个问题终于找到解决对策了
- stm32定时器时钟问题
- 在火狐浏览器下,脚本被拖死的原因终于找到了!
- eclipse中某工程的断点进不去问题,折腾了N个小时才找到原因,郁闷
- stm32时钟问题简单介绍
- 我终于找到为何我的Lenovo ThinkPad R60e无法使用宽带拔号[PPPOE]上网的原因了!
- Cuda 6.0安装失败,终于找到原因了~