搜索
bottom↓
回复: 25

发现IAR6.40.3中多任务函数中有的局部变量显示无效!

[复制链接]

出0入0汤圆

发表于 2012-9-18 16:04:08 | 显示全部楼层 |阅读模式
本帖最后由 electrlife 于 2012-9-19 13:21 编辑

今天换上了最新的IAR6.40.3,但是在调试时发现时有的局部变量显示无效。
使用了UCOS,在任务中定义的局部变量,在LOCAL的变量窗口中显示无效的。
不知什么原因?
比如定义局部变量OS_ERR os_err;这个变量在LOCAL窗口也有显示,
但是就是显示无效?

各位有没有发现这个问题啊!注设置优休等级为none!
补个图:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-9-18 16:13:22 | 显示全部楼层
加 volatile 试试

出0入0汤圆

 楼主| 发表于 2012-9-18 16:41:31 | 显示全部楼层
usingavr 发表于 2012-9-18 16:13
加 volatile 试试

问题是这个变量在LOCAL中有显示,只是显示无效!

这个局部变量已经使用,个人觉得无需volatile!
不知道它是如何优化的,我的编译器选项的优化设置已为None!!

已补上图!请看图中代码的写法!

出0入0汤圆

 楼主| 发表于 2012-9-18 16:43:20 | 显示全部楼层
usingavr 发表于 2012-9-18 16:13
加 volatile 试试

还有其它任务中的有些变量,也是这样!

出0入0汤圆

发表于 2012-9-18 17:01:06 | 显示全部楼层
Location R4 ,R5是指通用寄存器吗?不是应该在栈里吗?是否设置问题或者IAR本身问题?

出0入0汤圆

 楼主| 发表于 2012-9-18 17:18:21 来自手机 | 显示全部楼层
usingavr 发表于 2012-9-18 17:01  Location R4 ,R5是指通用寄存器吗?不是应该在栈里吗?是否设置问题或者IAR本身问题?  ...

是通用寄存器。
也没优化!
程序运行没问题!只是程序调试不方便,很多局部变量看不到!

出0入0汤圆

 楼主| 发表于 2012-9-18 19:04:59 来自手机 | 显示全部楼层
大家有没有注意到的啊!
路过的帮忙顶顶,谢谢!

出0入0汤圆

 楼主| 发表于 2012-9-19 08:25:01 来自手机 | 显示全部楼层
再顶顶啊!各位帮忙看看,谢谢!

出0入31汤圆

发表于 2012-9-19 08:40:48 | 显示全部楼层
MDK下优化时会遇到这个问题,IAR下你既然没优化不应该出现这样的问题啊,单步多走几步看看

出0入0汤圆

 楼主| 发表于 2012-9-19 09:17:15 来自手机 | 显示全部楼层
zchong 发表于 2012-9-19 08:40  MDK下优化时会遇到这个问题,IAR下你既然没优化不应该出现这样的问题啊,单步多走几步看看 ...

单步试了,程序运行没问题。
通过汇编代码,这几个局部变量分配了地址,
且在这个任务的堆栈,是正确的。可就是调试时不显示。
我想知道大家是不是也有这种情况?

出0入0汤圆

 楼主| 发表于 2012-9-19 09:18:08 来自手机 | 显示全部楼层
zchong 发表于 2012-9-19 08:40  MDK下优化时会遇到这个问题,IAR下你既然没优化不应该出现这样的问题啊,单步多走几步看看 ...

单步试了,程序运行没问题。
通过汇编代码,这几个局部变量分配了地址,
且在这个任务的堆栈,是正确的。可就是调试时不显示。
我想知道大家是不是也有这种情况?

出0入0汤圆

 楼主| 发表于 2012-9-19 12:13:57 | 显示全部楼层
难道各位没有遇到这样的情况吗??

出0入0汤圆

发表于 2012-9-19 12:42:04 | 显示全部楼层
把工程发上来看看

出0入0汤圆

 楼主| 发表于 2012-9-19 12:47:37 | 显示全部楼层
cyr_hongfeng 发表于 2012-9-19 12:42
把工程发上来看看

相关的代码已贴上图了。
公司的项目不方便贴上整个工程,请见谅!

出0入0汤圆

 楼主| 发表于 2012-9-19 12:57:04 | 显示全部楼层
难道,大家在使用UCOS类似的操作系统时,调试没有此问题吗?

出0入0汤圆

 楼主| 发表于 2012-9-19 13:17:46 | 显示全部楼层
cyr_hongfeng 发表于 2012-9-19 12:42
把工程发上来看看

临时制作了一个工程,仿真的调试,
可以直接使用IAR6.4运行,查看Locals窗口就会发现os_err 显示无效!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

发表于 2012-9-19 13:46:05 | 显示全部楼层
楼主,能否给个6403的和谐文件。。。

谢谢~

出0入0汤圆

 楼主| 发表于 2012-9-19 16:45:00 | 显示全部楼层
jingwaner 发表于 2012-9-19 13:46
楼主,能否给个6403的和谐文件。。。

谢谢~

和以前的各谐文件一样,我用的是以前的5.4的,只要装过IAR,直接装就可以!
明天上班给你传!

不过劝你还是别装了,所谓的增强的编辑器功能,真的很鸡肋,
工程大了以后,goto define什么的都无法使用,唉!!
不当小白鼠了,准备卸载了!!

出0入0汤圆

发表于 2012-9-20 09:52:37 | 显示全部楼层
electrlife 发表于 2012-9-19 16:45
和以前的各谐文件一样,我用的是以前的5.4的,只要装过IAR,直接装就可以!
明天上班给你传!

代码编辑功能还是很鸡肋的  如你所述 代码定义 变量定义等功能不能使用 很不方便 我也准备卸载

出0入0汤圆

 楼主| 发表于 2012-10-19 15:42:43 | 显示全部楼层
6.40.5老样子!在调试时还是不能显示一些局部变量。

出0入0汤圆

发表于 2012-10-24 13:39:17 | 显示全部楼层
用IAR4.41时也是出现过跑工程也出现这种问题,感觉还是编译器自动代码优化的问题,真想看得话建议还是弄个全局的变量给它再赋值吧。麻烦点 就看反汇编那边的寄存器的值。

出0入0汤圆

 楼主| 发表于 2012-10-25 12:12:46 | 显示全部楼层
jknew2008 发表于 2012-10-24 13:39
用IAR4.41时也是出现过跑工程也出现这种问题,感觉还是编译器自动代码优化的问题,真想看得话建议还是弄个 ...

呵呵,这个问题确定是IAR 的编译器的问题。不仅如此,现在的6.4版本,如果工程大了
go to defintion of xx的都无法使用了,连f()的函数显示功能也不行了!总是提醒:
Unknown version browser information!

出0入0汤圆

发表于 2012-10-25 13:33:26 | 显示全部楼层
electrlife 发表于 2012-10-25 12:12
呵呵,这个问题确定是IAR 的编译器的问题。不仅如此,现在的6.4版本,如果工程大了
go to defintion of x ...

工程我都是Source insight看得。iar 的代码编辑区就打断点的时候用下。

出0入0汤圆

发表于 2013-3-6 16:43:26 | 显示全部楼层
大家好,请问下,这个有和谐文件吗?哪位有,能否传下,谢谢。QQ:360302388.

出0入0汤圆

发表于 2013-6-11 23:31:33 | 显示全部楼层
我测试了一下, 6.30.7没有这个问题

出0入0汤圆

 楼主| 发表于 2013-6-12 00:11:38 | 显示全部楼层
szcs 发表于 2013-6-11 23:31
我测试了一下, 6.30.7没有这个问题

6.4以前的都无此问题,新版的才有,主要是在使用OS时,会用这样while(1){}这样的方式建立任务时
就会出现以上问题,现改成如下方式,问题得以解决!
const volatile int const_ture = 1;
while(const_ture){}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 00:23

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

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