huangxuejia-292 发表于 2018-3-29 21:17:58

zhao.zhao 发表于 2018-3-29 10:48
这个具体讲不清,只能这么说,程序要写得尽可能符合ANSI C的规范,警告尽量消除掉,当然有时警告也不碍事, ...

多谢指点,警告确实是个问题。我的代码确实有些警告没清理,回头清理完了在研究研究这个问题。

ztin0501 发表于 2018-3-30 09:51:18

感謝~~

gh.huang 发表于 2018-4-23 13:34:11

优化等级高了在线调试是个问题。

wwwheihei 发表于 2018-7-12 09:55:55

优化等级到底该怎么选,怎么选稳定呢

wt13568089592 发表于 2018-9-10 12:20:03

支持,看看能不能甩

motianlun1111 发表于 2019-5-18 23:03:38

不知道楼主找到问题根源没有?我是stm32f103rct6也是遇到类似的问题了,
adc,同步触发采样,采集电机的电流,我不接电机的情况下,采集底噪在设置不同的优化等级下不一样,比较诡异的是:
比如我现在设置的0级优化,底噪感觉正常的,但是我加了一些代码之后,还是0级优化就不正常了,
然后我就不断的改优化等级,可能是3级优化正常,然后我又改点和这个adc无关的代码,可能这时候原来正常的优化等级又不正常了,
这时候又要试一遍,可能遇到优化等级2又是正常的,
adc的底噪是正常的时候大约在10lsb以内,不正常的就是有很大的跳变,如图:
底噪正常的:试到优化等级1正常

底噪异常的:优化等级0,2,3异常

意思就是说每次我增加了一点代码,或者删除了一点代码,当然是和adc无关的代码,我需要不断的调优化等级,可能找到一种优化等级保证adc的噪声是正常的

plj213 发表于 2020-5-21 11:26:24

XinLiYF 发表于 2018-3-29 08:57



谢谢分享,学习学习。。。

mikecai 发表于 2020-5-21 15:31:49

个人觉得很像内存 有问题,不一定是优化:
理由:1)去掉某部分,相当于排除了部分内存,造成内存有多余。
         2)加 volatile 定义 的变量不会被优化掉。有客观保护该变量的意思,
          3) ADC单独封一个函数,也相当于 ADC 结果变量 被保护了。
内存泄漏或分配乱指向 都比较像造成某个值异常。

huangxuejia-292 发表于 2020-5-31 08:17:46

好久了,我记得好像解决了,问题是要处理ADC的出错,也就是说,当ADC转换出错的时候,要根据出错流程处理,否则后面的转换会一直是错的。

有空我再看看。
页: 1 [2]
查看完整版本: MDK优化等级问题--基于STM32F407