OpenEdv-开源电子网

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

仿真是正确的,但设备的执行结果却不对,十万火急,哪位高手帮忙想一下什么原因呐?是不是编译器把代码给优化掉了,用的KEIL4,万分感激呐!

[复制链接]

58

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2015-5-26
在线时间
31 小时
发表于 2015-8-24 19:09:42 | 显示全部楼层 |阅读模式
5金钱
各位高手,帮忙看一下吧?
这个是我执行的函数:
int ret=0;    //两个ASCII码数组是否相同的标志位
int ss_strcmp(const char *src,const char *dst)
{
   int i=0;
   for(i=0;i<16;i++)
   {
      if(*(dst+i)!=*(src+i))
        {
           return ret = 1;   //不相等
         }
   }
    return ret=0;            //相等
}
这个执行的到是对了。
然后,下面这个代码根据ret的值,判断是否让ERRORNUM等于4.
if(ret==1)
  {
    ERRORNUM = 4;
   }
仿真的时候程序都执行的没有问题,标志位ret为0,但是不知道为什么,屏目就显示了ERRORNUM = 4了。整个程序里面就这个地方有这句。真是奇了怪了。

最佳答案

查看完整内容[请看2#楼]

回复【2楼】腾飞: --------------------------------- 谢谢,已经解决了。不是优化的问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2015-5-26
在线时间
31 小时
 楼主| 发表于 2015-8-24 19:09:43 | 显示全部楼层
回复【2楼】腾飞:
---------------------------------
谢谢,已经解决了。不是优化的问题。
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2014-8-3
在线时间
0 小时
发表于 2015-8-25 09:41:11 | 显示全部楼层
如果你怀疑是优化的问题,那你可以改优化级别呀~  我被坑过几次,的确优化级别有时会有影响。
ERRORNUM 一开始有没有初始化?
电子技能就是我行走江湖时手中的利剑。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 03:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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