硬汉嵌入式论坛

 找回密码
 立即注册
查看: 659|回复: 10
收起左侧

[MDK] MDK for 循环不判断问题

[复制链接]

7

主题

21

回帖

42

积分

新手上路

积分
42
发表于 2023-9-6 02:17:01 | 显示全部楼层 |阅读模式

软件之前执行OK, 最近突然发现FOR 循环不判断, 编译版本是V6.19,其他配置如图所示

下载 (3).png


下载 (4).png



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-9-6 10:06:18 | 显示全部楼层
把这个int i 在函数开头提前定义好,加前缀__IO试试,看看能解决不
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2023-9-6 12:40:54 | 显示全部楼层
没有用,  写了三个 for (int i = 0; i < 6; i++)  最后一个循环不执行,  删掉一个,  后面那个还是同样的问题, 删除的剩最后一个,最后一个也有问题,将三个变量名字换了也不行, 刚加了__IO也不行, 我用的系统是CMSIS OS, 在一个任务里面的循环.
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2023-9-6 13:05:51 | 显示全部楼层
附件中有图片
1111111.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-9-6 15:26:18 | 显示全部楼层
AC6的for循环,我只遇到过这种问题。

在MDK AC6的高等级优化下,for循环延迟执行异常了
https://www.armbbs.cn/forum.php?mod=viewthread&tid=98478
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2023-9-6 16:39:45 | 显示全部楼层
搞不定,  各种测试,又搞了一天, 两个相同的任务, 结构一样, 其中一个for 有问题, 另一个没有问题, 谢谢, 后续出问题再回帖
回复

使用道具 举报

4

主题

160

回帖

172

积分

初级会员

积分
172
发表于 2023-9-6 16:53:36 | 显示全部楼层
rtos出问题,首先判断是不是栈溢出
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2023-9-6 19:50:37 | 显示全部楼层
fyyxxm 发表于 2023-9-6 16:53
rtos出问题,首先判断是不是栈溢出

也没有溢出, 任务分配的都够, 感觉是循环嵌套太深了,
回复

使用道具 举报

75

主题

685

回帖

910

积分

金牌会员

积分
910
发表于 2023-9-6 21:23:53 | 显示全部楼层
barryzxy 发表于 2023-9-6 19:50
也没有溢出, 任务分配的都够, 感觉是循环嵌套太深了,

应该定义的i被优化掉了,在最前面定义一个i,所有循环都使用这个i试试
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2023-9-7 09:10:26 | 显示全部楼层
换一个字母表示试试,你这个栈里面有两个i
回复

使用道具 举报

0

主题

124

回帖

124

积分

初级会员

积分
124
发表于 2023-9-11 20:46:33 | 显示全部楼层
我觉得问题出在sizeof(all_t), all_t如果是extern定义的, 那sizeof(all_t)会是0, AC6碰到这样的情况就会把  if (..>sizeof(all_t)这么一段切底的移除。所以才有你认为它不循环
验证这个很用容, 你把sizeof(all_t)用个常量代替,再跑试试

AC6编译是很高效,所以有的时候它编译出来的代码可能跟码农原先的代码思路完全不一样,这时候最好你是有看懂汇编的能力,从汇编的窗口对照它把你的代码改成什么个样,否则很难查错。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 01:04 , Processed in 0.245932 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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