打印
[开发工具]

在使用IAR调试STM32F103中遇到的奇怪问题

[复制链接]
5431|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cqshenzhen|  楼主 | 2007-12-24 17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  我使用的是STM32F103,调试是用JLINK的方式,用IAR环境;同一个文件,在选不同的调试方式:1:选ProjectOptionDebuggerSetupDriverJ-Link/J-Trace; 2:选ProjectOptionDebuggerSetupDriverSimulator; 其它的选项都完全一样的情况下,分别编译同一个文件,在第2种情况下编译正确;而在第一种情况下,编译有错,这是为什么?个人认为1,2两种情况的变化不应影响代码的编译,谁能解释这个现象?现附上整个工程文件,以及在1,2两种情况下,用DEBUG将程序通过JLINK下载到目标板后,在汇编窗中看见的汇编码,图1,2是第一种情况下的截图,图3,4是第二种情况下的截图,图1,3是同一段代码;图2,4是同一段代码;

请大侠们不吝赐教!
相关链接:https://bbs.21ic.com/upfiles/img/200712/20071224165925709.rar
沙发
cqshenzhen|  楼主 | 2007-12-24 17:12 | 只看该作者

调试截图1

使用特权

评论回复
板凳
cqshenzhen|  楼主 | 2007-12-24 17:13 | 只看该作者

调试截图2.jpg

使用特权

评论回复
地板
cqshenzhen|  楼主 | 2007-12-24 17:14 | 只看该作者

调试截图3

使用特权

评论回复
5
cqshenzhen|  楼主 | 2007-12-24 17:15 | 只看该作者

调试截图4.jpg

使用特权

评论回复
6
cqshenzhen|  楼主 | 2007-12-24 17:16 | 只看该作者

library.rar

使用特权

评论回复
7
cqshenzhen|  楼主 | 2007-12-24 17:17 | 只看该作者

project.rar

使用特权

评论回复
8
香水城| | 2007-12-24 22:28 | 只看该作者

这个要请IAR的工程师来回答了

顺便问问,你用的是哪个版本的?

使用特权

评论回复
9
grant_jx| | 2007-12-24 23:14 | 只看该作者

是否可以帮我问问

我的客户,使用IAR 4 .42A 30day限制版。我用4.41A加ST之前给我的补丁,32KS 版,通用也是这样的现象。

使用特权

评论回复
10
jessemok| | 2007-12-25 10:41 | 只看该作者

用第1种调试方式编译通过

把你的工程下下来了,直接编译通过!看了一下设置,是第一种。

使用特权

评论回复
11
jessemok| | 2007-12-25 10:47 | 只看该作者

个人认为1,2两种情况的变化不应影响代码的编译

这两种调试编译起来应该会有一点影响吧,用Simulator的话要增加一些软件模拟函数进行编译。

使用特权

评论回复
12
jessemok| | 2007-12-25 10:50 | 只看该作者

在1,2两种情况下,用DEBUG将程序通过JLINK下载到目标板后

用Simulator还能下载到目标板上么?好像是不能的吧

使用特权

评论回复
13
bmr| | 2007-12-25 14:27 | 只看该作者

在使用IAR调试STM32F103中遇到的奇怪问题

你好!

麻烦你说明你使用的软件版本,方便测试!

使用特权

评论回复
14
cqshenzhen|  楼主 | 2007-12-25 15:40 | 只看该作者

谢谢大家的帮助,问题已解决!

使用特权

评论回复
15
bmr| | 2007-12-25 16:02 | 只看该作者

在使用IAR调试STM32F103中遇到的奇怪问题

这个问题理论上不应该这样.客户选择软仿真还是硬仿真,对编译本身是没有影响的.

使用特权

评论回复
16
makesoft| | 2007-12-25 23:01 | 只看该作者

解决了也和大家说说,都关心着呢

使用特权

评论回复
17
grant_jx| | 2007-12-26 00:08 | 只看该作者

我也认为1,2两种情况

IAR的版本上面已经说了。现在的解决方法是使用ST提供的工程裁剪后做模版编译的。变通的做法,我想是否还是项目的编译或Linker的设置有问题?


使用Simulator模式并不会下到到目标板上,但是在这个模式下你可以模拟看到实际的代码执行过程。因为发现在使用JLink下到Flash时,汇编部分本因该是赋值的语句,结果汇编显示的指令却是跳转指令,不得启解。当时也是考虑是否是因为Debug模式中,IDE在目标代码中加入了用于调试的信息导致的,因此使用仿真模式想对比是否两种方式,产生的汇编会有不同? 

使用特权

评论回复
18
makesoft| | 2007-12-26 13:31 | 只看该作者

确实是有可能显示调试信息做的跳转

使用特权

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

本版积分规则

1

主题

8

帖子

0

粉丝