打印

MDK编译环境下的问题困扰好久了……

[复制链接]
2027|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxmzzr|  楼主 | 2013-6-6 20:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


上图中的level 0选项是什么意思?
我选level 0的时候,执行while(1){ GPIOA->BRR=0x0001; GPIO->BSRR=0x0001;} 得到的脉冲频率是3Mhz左右,选择level 3的时候,执行同样的语句,得出来的脉冲频率是8Mhz左右,到底是怎么回事?我刚开始学这个。这问题困扰我好久了。
沙发
jxmzzr|  楼主 | 2013-6-6 20:09 | 只看该作者
补充,我的编译环境是MDK,编写STM32程序

使用特权

评论回复
板凳
mmuuss586| | 2013-6-6 20:24 | 只看该作者
?????
自己看看,哪里被优化了。

使用特权

评论回复
地板
王小毛wxm| | 2013-6-6 20:28 | 只看该作者
jxmzzr 发表于 2013-6-6 20:09
补充,我的编译环境是MDK,编写STM32程序

编译器优化级别 https://bbs.21ic.com/icview-135273-1-1.html  你在论坛里搜搜 好多讨论这个的
级别选的不同,会影响得到的代码,有些编程不严谨的逻辑,优化后执行的并不是原来设想的逻辑。这个我说不清楚,你在坛子里搜搜吧

使用特权

评论回复
5
江枫渔火| | 2013-6-7 09:31 | 只看该作者
选了优化之后,你要在循环变量前加 volatile

使用特权

评论回复
6
figo20042005| | 2013-6-7 10:03 | 只看该作者
你这个死循环被优化了,试试用IF这样的语句在主程序重新写下

使用特权

评论回复
7
tianli1980| | 2013-6-7 10:56 | 只看该作者
也正在学习STM32开发板,对KEIL MDK也不熟悉!!!

使用特权

评论回复
8
香水城| | 2013-6-7 11:50 | 只看该作者
编译优化选项不同,代码的运行当然效果不同。

对于翻GPIO这么简单的操作,看看编译出来的汇编就可知差异在哪里

使用特权

评论回复
9
sgj245609615| | 2013-6-8 08:47 | 只看该作者
了解一下

使用特权

评论回复
10
jxmzzr|  楼主 | 2013-6-11 15:23 | 只看该作者
  代码做优化?代码的执行效率更高?  那这和芯片运行的速率有影响么?

使用特权

评论回复
11
trumpxp| | 2013-6-11 20:02 | 只看该作者
所谓代码优化   是指编译器将一些他认为没有用的代码去除了   所以我们的程序看上去没有问题  实质上确实有问题的

使用特权

评论回复
12
拿起书本| | 2013-6-11 21:15 | 只看该作者
代码优化掉了 可以看反汇编 汇编语言是否和自己要求的功能一致

使用特权

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

本版积分规则

460

主题

2188

帖子

12

粉丝