打印
[ZLG-ARM]

keil仿真的怪问题,百思不得其解

[复制链接]
2105|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shark3010|  楼主 | 2008-3-3 18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
近日遇到一怪问题,keil for arm 3.20,ulink2,硬件仿真,如图所示,*pt=0x6402a8c0,赋值给局部变量addr2test(此变量在别处未有操作及定义)结果addr2test的值变为0xcb02a8c0.这是我用keil3年多以来,第一次遇到这样的问题,无法理解,不知道是仿真器的事,还是编译器的事,希望那位大侠能帮忙解决一下,在此多谢了!
注:通过编译的到汇编,看寄存器的值也没有问题)但不知道为什么一赋值就变了。

相关帖子

沙发
shark3010|  楼主 | 2008-3-4 11:34 | 只看该作者

自己顶一下

使用特权

评论回复
板凳
tubie| | 2008-3-4 18:39 | 只看该作者

是不是开了什么优化选项。

使用特权

评论回复
地板
shark3010|  楼主 | 2008-3-4 20:09 | 只看该作者

优化设置

应该没有问题,帮忙看看

使用特权

评论回复
5
shark3010|  楼主 | 2008-3-4 20:45 | 只看该作者

倒了一下汇编代码,得到的规律用pc指针的地方

使用特权

评论回复
6
xwj| | 2008-3-4 20:56 | 只看该作者

建议LZ先去看Keil的帮助,先搞清楚Keil里指针是怎么分配的再

可以说,和你想的根本就不是一回事!
没搞清楚数据结构就随便强制转换类型,不出奇怪问题就怪了...

使用特权

评论回复
7
shark3010|  楼主 | 2008-3-4 21:16 | 只看该作者

这位大侠认为哪里的问题呢?

上面55行道65行是我加的,用来测试用的,本来是addr2test=addr->addr,出现了同样的问题,所以我加了55行道65行的程序

使用特权

评论回复
8
shark3010|  楼主 | 2008-3-5 11:58 | 只看该作者

问题已经解决,多谢zlg的工程师。

多谢周立功的工程师们,多谢你们的提示,问题已经解决,主要是结构体定义的一个packed和unpacked的问题!

使用特权

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

本版积分规则

6

主题

45

帖子

1

粉丝