搜索
bottom↓
回复: 11

MDK开最高优化Level3 会不会出现大小判断错误的情况

[复制链接]

出0入0汤圆

发表于 2016-12-14 02:52:27 | 显示全部楼层 |阅读模式
本帖最后由 tragedy 于 2016-12-14 03:19 编辑

程序是这样的,
int16_t a,b;
if(a > b)
{
        发送 a,b;
}
居然发现a 是= 0x122,b = 0x1E1,是随机的,不是每次都这样!

不知道是优化的问题,还是程序除了啥问题。

========================================
b在发送前被重新赋值了,b发上来居然是0,b是个全局变量,不知道加volatile 能不能解决

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-12-14 04:02:52 来自手机 | 显示全部楼层
bcopy=b;acopy=a;if(acopy>bcopy){发送 acopy和bcopy}

出0入442汤圆

发表于 2016-12-14 08:24:45 来自手机 | 显示全部楼层
os是最高优化,适用于aom较少且缓存小的地方。经过测试甚至比o2还快。o3印象中比os在mcu上要差不少。

出0入0汤圆

发表于 2016-12-14 08:25:55 | 显示全部楼层
a,b是局部变量,没设初值吧

出0入8汤圆

发表于 2016-12-14 08:44:04 | 显示全部楼层
基本上都是程序写的不严谨。

出0入50汤圆

发表于 2016-12-14 08:53:59 来自手机 | 显示全部楼层
优化级数越高,对你的程序书写规范要求也越高,如果低级别优化正常,而高级优化有问题,多半是自身问题,尤其是大牌的编译器,基本不用怀疑。

出0入0汤圆

发表于 2016-12-14 12:17:58 | 显示全部楼层
o2优化会大量使用r4-r12寄存器,而o1或者以下则基本上使用ram和低位寄存器,两者性能差别那是必须的,写代码时有意优化代码的话效果就更加明显了,o3优化会调整汇编代码和c代码的顺序,性能更好但是调试时反汇编对应关系就很差了

出0入0汤圆

发表于 2016-12-14 12:36:10 | 显示全部楼层
说优化有问题的,都是自己程序的问题。
如延时变量不加volatile。

出0入0汤圆

发表于 2016-12-15 08:32:41 | 显示全部楼层
优化等级越高,对代码的要求也越高

出0入0汤圆

发表于 2016-12-15 10:58:09 来自手机 | 显示全部楼层
局部变量定义

出0入0汤圆

 楼主| 发表于 2016-12-24 08:59:01 | 显示全部楼层
gliet_su 发表于 2016-12-14 12:36
说优化有问题的,都是自己程序的问题。
如延时变量不加volatile。

最后居然是由于一个数组使用溢出了,不知道为啥编译的时候没查出来。当然确定是编译了好几次
接着点开定义数组的那个c文件,溢出的是有红色波浪线提示的,再编译就出现error了.
程序确实不严谨,老是删改

出0入0汤圆

发表于 2016-12-24 09:11:45 | 显示全部楼层
tragedy 发表于 2016-12-24 08:59
最后居然是由于一个数组使用溢出了,不知道为啥编译的时候没查出来。当然确定是编译了好几次
接着点开定 ...

除非明确的有数组溢出,否则一般的编译器是不会检测数组的边界的,我说的明确的数组溢出,是指比如:a,这个b是一个具体值,而且大于定义的,如果只是个变量,那么就无法检测了!!!!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 14:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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