打印

香水救命啊,Jlink和ST Link都遇到的下载问题

[复制链接]
5388|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
colaring|  楼主 | 2008-6-24 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编译OK
用J Link下载 DOWNLOADING  FILES通过,然后PROGRAMING FLASH就永远不会出来了,IAR就死在这里了
用 ST Link相同情况

J Link偶尔会报错,说写入CPU的 不是MSP就是MPS寄存器错误

这是昨天新建工程遇到的问题,后来我把原来能下载的工程所有自己建立的.c和.h文件全部删除,再把新建工程的.c和。h+进去.编译完了就能下载了,可是下载几次弄的我原来能下载和现在不能下载的工程统统不能下载了。。。晕死

最最奇怪的是软件硬件都没动,睡一觉起来就不能下载了。。。硬件肯定是没问题,我拿去别人那里就能下他的程序。很是怀疑是IAR什么隐蔽的地方我没配置好
沙发
香水城| | 2008-6-24 18:59 | 只看该作者

估计见鬼了

用的什么软件?软件版本?JLink版本?关于下载这一块是如何设置的?

使用特权

评论回复
板凳
colaring|  楼主 | 2008-6-24 22:14 | 只看该作者

....

用的IAR 4.42A,现在更郁闷了。。。。必须每烧一次再开才能用,用的STLink,这东西我得拱着了。。。弄不好今晚一合眼明天又不行了

感觉问题是这样的,我每次成功烧写完成后再次烧写, DOWNLOADING  FILES通过,然后IAR就死了,得强行关掉IAR重启才能出现PROGRAMING FLASH,之前我改写的C和H文件有所保存,但是IAR的设置全没了,一编译还得手动找LnkARMFLASH.xcl(我工程移动过,在IAR的link的Config中有这个的设置,还有我上次在这个工程中仿真调试时Add To Watch中加的值 还有什么Quick Watch的位置全和上次用的不同,说明IAR根本没有保存WorkSpeceSpace的信息)
我的文件没有写保护。。。。真是郁闷,可能幸好IAR没有保存workspace,弄不好保存了就又下载不了了

还有,想知道MDK能不能支持ST Link2和Jlink仿真调试CortexM3(现在用的是103vbtb),快被IAR搞疯了

使用特权

评论回复
地板
vigia| | 2008-6-25 09:42 | 只看该作者

什么叫‘必须每烧一次再开才能用’

请具体点说说,包括上下电次序。

另外如果你没有手动保存workspace,IAR是在正常退出时帮你保存的,你强行关掉了,他自然不保存了。

你确信你的板子在别人那里可以随便烧录?我有点怀疑是你板子的问题。

使用特权

评论回复
5
colaring|  楼主 | 2008-6-25 11:07 | 只看该作者

。。。

我现在能烧
但是必须是这个顺序:

第1步
   编译 然后DeBug 出现DOWNLOADING  FILES(有时DOWNLOADING  FILES能通过 然后死,有时死在DOWNLOADING  FILES的尾部) 然后IAR就死了
第2步
   强行关闭IAR 再次开启 Debug 出现DOWNLOADING  FILES然后出现PROGRAMING FLASH 终于OK,进入仿真环境可以正常调试了,调试中遇到问题修改代码 make  然后就返回第1步了

    我的板子现在只有这样才能烧。。。。既然能烧应该就不是板子的问题了,难道强行关闭IAR,在开启会影响我板子上的什么东西?
   其实系统做大了之后一直有小毛病,以前可以随便烧录,但是不能在Bebug中RESET仿真环境,一但RESET仿真环境就跳进了ST的硬件故障中断中,也就是说我可以JTAG,但是如果不重新烧写不能复位JTAG环境。

  麻烦香水了,天天来烦你

使用特权

评论回复
6
香水城| | 2008-6-25 11:12 | 只看该作者

你的程序有多大?请确认Flash和RAM使用量

IAR EWARM 4.42A是通过什么途径买的?

5楼描述的问题是JLink还是ST-Link2,如果通过正规途径买的IAR软件,你应该使用的是JLink;如果使用的是ST-Link2,说明你用的是IAR EWARM评估版,它限制代码长度为32K以内,超过了有问题。

使用特权

评论回复
7
香水城| | 2008-6-25 11:14 | 只看该作者

还有,请确认DLL的版本号

就是ST-Link2使用的DLL版本号

使用特权

评论回复
8
colaring|  楼主 | 2008-6-25 11:32 | 只看该作者

。。。

用的是 ST Link DLL 1.1.9.4 文件版本1.1B
通 JLink和STLink现象一模一样  Jlink上写个version6.0 07年24周生产 
IAR用的是32K限制版
既然让我编译应该就说明ROM和RAM都没超过限制,系统大是相对而言,以前调小程序就没有问题

使用特权

评论回复
9
colaring|  楼主 | 2008-6-25 11:34 | 只看该作者

。。

IAR没动过,也没**

使用特权

评论回复
10
vigia| | 2008-6-25 11:40 | 只看该作者

你的问题真有趣

把你的MAP文件最后几行贴出来看看吧,还有堆栈大小也请一并说下。

使用特权

评论回复
11
colaring|  楼主 | 2008-6-25 12:24 | 只看该作者

。。

堆栈4K

SEGMENT              SPACE    START ADDRESS   END ADDRESS     SIZE  TYPE  ALIGN
=======              =====    =============   ===========     ====  ====  =====
INTVEC                             08000000 - 080000EB          EC   rel    2
ICODE                              080000EC - 0800014F          64   rel    2
DIFUNCT                                 08000150                     rel    2
CODE                               08000150 - 080024C1        2372   rel    2
INITTAB                            080024C4 - 080024DB          18   rel    2
DATA_ID                                 080024DC                     dse    0
DATA_I                                  20000000                     dse    0
DATA_Z                             20000000 - 20000043          44   rel    2
CSTACK                             20000044 - 20000443         400   rel    2

                ****************************************
                *                                      *
                *        END OF CROSS REFERENCE        *
                *                                      *
                ****************************************

 9 410 bytes of CODE  memory
 1 092 bytes of DATA  memory
    24 bytes of CONST memory

Errors: none
Warnings: none

使用特权

评论回复
12
colaring|  楼主 | 2008-6-25 12:28 | 只看该作者

。。

堆栈错了 
stack align是4byte  至于在那里设置堆栈我还没找到,,,,

使用特权

评论回复
13
香水城| | 2008-6-25 12:32 | 只看该作者

在你的项目中是否开启了DMA、看门狗、定时器中断等功能?

请描述一下你使用了哪些功能?包括DMA、看门狗、定时中断、ADC扫描等自动运行的功能,如果下载程序时这些功能没有被停掉,可能会造成下载失败的情况。

前几天好像有人碰到过这个问题。如果果真如此,你可以试试先在RAM中调试,反正你的程序不大。


另外,你说使用了4K堆栈,但从贴出的map片断看,应该只用了1K。

使用特权

评论回复
14
colaring|  楼主 | 2008-6-25 12:39 | 只看该作者

系统资源

我这项目是交流采样
TIM3定时产生TRGO触发双AD规则采样,结果使用DMA传送到RAM中
SPI外扩中文和ASCII显示字库
另外只开启了一个中断服务程序 TIM3的溢出中断
没开狗和RTC

使用特权

评论回复
15
香水城| | 2008-6-25 12:58 | 只看该作者

“TIM3定时产生TRGO触发双AD规则采样”

这个过程是无限循环还是短期动作,在你停止Debug时,设定的循环次数做完了吗?如果没有完,估计这就是你的问题所在。

据个简单的例子:假定你设置了100次循环,然后调试每一次循环,在还未完成100次循环,你中止了调试并推出了调试状态,这种情况下则可能出现你描述的问题。

使用特权

评论回复
16
colaring|  楼主 | 2008-6-25 13:04 | 只看该作者

真的么?

我的TIM3 TRGO触发AD是无限循环,你的意思只要不停TIM就无法再烧入,你的意思是不是如果CPU没有停下,比如DMA TIM WDG什么的在运转,就无法再次烧入

情况确实和你说的很相符,我自从开启TIM触发AD采样就老出这样奇怪的事情

使用特权

评论回复
17
香水城| | 2008-6-25 17:20 | 只看该作者

请在退出调试状态前,执行一个停止TIM3的操作


好的习惯是在main()函数的开始对你要用的外设执行DeInit()的动作,当你要退出调试状态之前,先执行一下这些DeInit()操作,这样可以停止所有外设的操作,尤其是那些自动运行的设备,这样可以回避你碰到的问题。
 

关于这个问题的详细原因,请看另一个帖子的讨论:JLink下载程序是通过在RAM中执行烧录程序实现 

使用特权

评论回复
18
colaring|  楼主 | 2008-6-25 21:08 | 只看该作者

谢谢

多谢帮忙

使用特权

评论回复
19
haha01| | 2008-6-26 10:01 | 只看该作者

CPU的 不是MSP就是MPS寄存器错误

说写入CPU的 不是MSP就是MPS寄存器错误



我也遇到了这个问题,但是在RAM里调试就没有,在Flash里就有!!晕死了!

使用特权

评论回复
20
香水城| | 2008-6-26 10:14 | 只看该作者

请贴一个屏幕截图

19楼的朋友可以按照上述讨论看看你是不是有相同或类似的情况。

使用特权

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

本版积分规则

44

主题

156

帖子

1

粉丝