打印

IAR FOR ARM 6.40

[复制链接]
8077|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kalay|  楼主 | 2012-10-15 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在官网下了一个评估版IAR FOR ARM 6.40试用,项目试用UCOS-II运行,发现任务函数中的局部变量(local窗口中查看,RAM中的数组)全部显示unavailable,但是程序运行正常,查看RAM区数据均正常,原先该项目在5.41中运行十分正常,不知何原因,请高手不吝赐教

相关帖子

沙发
阿南| | 2012-10-15 11:44 | 只看该作者
局部变量只在作用域范围内才有效的,而你是全速运行,unavailable是正常现象。

使用特权

评论回复
板凳
kalay|  楼主 | 2012-10-15 16:36 | 只看该作者
非全速运行,是单步执行的

使用特权

评论回复
地板
阿南| | 2012-10-15 17:38 | 只看该作者
如果是单步执行,PC需要指向局部变量的作用域范围内,也就是该局部变量定义的所在函数内。

使用特权

评论回复
5
kalay|  楼主 | 2012-10-16 09:29 | 只看该作者
呵呵!多谢你,查看局部变量当然是在作用域范围内,相同条件下载5.41中就是正常的,我现在怀疑是否是软件设置问题,更改许多选项忍不能奏效,所以在此才向各位高手请教的

使用特权

评论回复
6
阿南| | 2012-10-16 09:37 | 只看该作者
你可以自己定义一个局部变量,测试一下是否有问题。

使用特权

评论回复
7
wlq_9| | 2012-10-16 18:48 | 只看该作者
无用的局部变量优化掉了。
放最低优先级试试。

使用特权

评论回复
8
kalay|  楼主 | 2012-10-17 14:03 | 只看该作者
多谢各位!你们提的意见我之前都试过了,都不能解决。今天特地做了测试,发现IAR6.40在,函数中定义的RAM变量若其后为死循环且判断值为一常数时(我用的是do循环,操作系统任务函数),调试时RAM变量均显示unavailable,只要对循环加一条件永远不成立的循环判断变量就可以了,至于啥原因,我估计是被优化了,由于开发任务紧迫,没有时间深层次查找原因,也咨询过IAR中国技术支持,说没碰到过该现象,无法解决,很是郁闷,敬请哪位高手知道原因,请顶贴!!!本人不胜感激

使用特权

评论回复
9
阿南| | 2012-10-17 14:35 | 只看该作者
问题解决就好,呵呵。

使用特权

评论回复
10
clingos| | 2012-10-24 13:24 | 只看该作者
是的,IAR6.4中,我也遇到同样的问题,多任务的程序中,各个任务函数的局部变量在调试时是显示无效,但是使用通过汇编发现,其分配了内存。但就是调试是示显示。
不知这算不算是一个BUG!

使用特权

评论回复
11
clingos| | 2012-10-24 13:29 | 只看该作者
http://www.amobbs.com/thread-5497678-1-1.html

请看上面的帖子,给出了相关的源码示例,在仿真调试时可以观察到现象!

使用特权

评论回复
12
anvy178| | 2012-12-14 10:11 | 只看该作者
来顶贴

使用特权

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

本版积分规则

2

主题

10

帖子

0

粉丝