打印
[开发工具]

IAR是否能够锁定FLASH中的程序禁止JTAG?

[复制链接]
5971|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
colaring|  楼主 | 2008-7-3 08:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在遇到了个棘手的问题,发现我3块板子+1块开发板都不能烧写FLASH了,具体表现是:
当JTAG时 DOWNLOADING  FILES和PROGRAMING FLASH都通过,然后有3种可能的表现

1 仿真时走了第一句程序就显示堆栈指针配置超出范围。。堆栈溢出
2 在C程序中根本不出那个指示当前运行语句的绿色箭头,只有反汇编界面有
3 JTAG烧录完刚进去时我什么都没按就在全速运行,手动停止后随即停在那里

三种表现拔掉板子电源后再上电全是一个结果:我刚才烧写的程序没有运行,运行的还是我出故障前烧写的代码。我昨天问的新添语句在JTAG时不能运行就是这个原因,原帖:
https://bbs.21ic.com/club/bbs/list.asp?boardid=49&page=1&t=3019664&tp=%u9999%u6C34%u8BF7%u8FDB%uFF0C%u53C8%u51FA%u6BDB%u75C5%u4E86

现在拿到别人案例烧他的程序出现的问题一样,最郁闷的是我用万利用开发板下载他的例程都不行了。。。很怀疑是我在IAR中配置错了什么东西,然后烧写进去的程序锁定了FLASH再也不能下载程序了
沙发
香水城| | 2008-7-3 09:15 | 只看该作者

是否可以在RAM中调试?如果可以表示JTAG通道没问题

如果怀疑程序没有烧进Flash,可以用调试器的Memory窗口看看Flash中的内容。

使用特权

评论回复
板凳
colaring|  楼主 | 2008-7-3 09:40 | 只看该作者

刚换了个CPU 用STlink能烧例程了 可是烧完我的程序又出故障

这是校验时发现的 无论FALSH还是RAM都出错
下面是FLASH的错误

Thu Jul 03 09:34:14 2008: DLL version: V3.72a, compiled Jun 18 2007 18:58:11
Thu Jul 03 09:34:14 2008: Firmware: J-Link ARM V6 compiled Jun 14 2007 14:33:17
Thu Jul 03 09:34:14 2008: JTAG speed is initially set to: 32 kHz
Thu Jul 03 09:34:15 2008: Found Cortex-M3, Little endian.
Thu Jul 03 09:34:15 2008: TPIU fitted.
Thu Jul 03 09:34:15 2008:   FPUnit: 6 code (BP) slots and 2 literal slots
Thu Jul 03 09:34:15 2008: Software reset was performed
Thu Jul 03 09:34:15 2008: Initial reset was performed
Thu Jul 03 09:34:15 2008: J-Link found 2 JTAG devices. ARM core Id: 3BA00477(Cortex M3), ARM core Id: 00000000(ARM9)
Thu Jul 03 09:34:15 2008: Device at TAP0 selected
Thu Jul 03 09:34:16 2008: 3518 bytes downloaded and verified (3.05 Kbytes/sec)
Thu Jul 03 09:34:16 2008: Warning: 
Verify error at address 0x20000058, target byte: 0x02, byte in file: 0x11
Thu Jul 03 09:34:16 2008: Warning: 
Verify error at address 0x20000059, target byte: 0x08, byte in file: 0x00
Thu Jul 03 09:34:16 2008: Warning: 
Verify error at address 0x2000005A, target byte: 0x06, byte in file: 0x00
Thu Jul 03 09:34:16 2008: Warning: 
Verify error at address 0x2000005B, target byte: 0x08, byte in file: 0x20
Thu Jul 03 09:34:16 2008: There were warnings during download of FLASH loader, see Log Window
Thu Jul 03 09:34:17 2008: Failed to load flash loader: C:Program FilesIAR SystemsEmbedded Workbench 4.0 KickstartarmconfigflashloaderST
FlashSTM32F10x.d79

使用特权

评论回复
地板
colaring|  楼主 | 2008-7-3 09:48 | 只看该作者

。。

换完CPU能下例程用的是STlink
现在下完例程用Jlink就不行了,出现上面的错误,用STlink或者Jlinlk都不行了  不可能我的程序有毒吧  把CPU都搞坏了

使用特权

评论回复
5
vigia| | 2008-7-3 10:02 | 只看该作者

你烧进去的代码用到了哪些外设?

你可以把板子的BOOT跳线选到从RAM启动,然后重新上电,试试看烧录有没有问题。

使用特权

评论回复
6
香水城| | 2008-7-3 10:09 | 只看该作者

查了一下旧帖,发现上次已经帮你解决了这个问题

首先我在2楼建议你在RAM中试试,请做一下,这是一个很好的方法。

其次,我查了一下旧帖,发现上次已经帮你解决了这个问题,请看:香水救命啊,Jlink和ST Link都遇到的下载问题,尤其是13楼以后的讨论。希望你再次确认“在你的项目中是否开启了DMA、看门狗、定时器中断等功能?

使用特权

评论回复
7
colaring|  楼主 | 2008-7-3 10:36 | 只看该作者

RAM我试了

RAM我试了,跟FLASH一样下载了没反应,不过我现在的感觉是IAR会篡改lnkarm_flash.xcl这个文件,我现在找来2个全新的lnkarm_flash.xcl和ram.xcl调成只读放在桌面就没问题了。。。。
真晕死

请问调成boot全是1在ram是什么原理?

使用特权

评论回复
8
香水城| | 2008-7-3 10:43 | 只看该作者

BOOT引脚在Reset时会把某个存储区映像到地址0x0000 0000

内置SRAM的真实地址是0x2000 0000,内置Flash的真实地址是0x0800 0000,BOOT引脚在Reset时会把上述地址映像0x0000 0000。Cortex-M3的内核是从地址0x0000 0000启动的。

使用特权

评论回复
9
adamdo001| | 2011-7-26 20:44 | 只看该作者
6# 香水城
我也遇到这个问题。
香水救命啊,Jlink和ST Link都遇到的下载问题,这个链接打不开了。麻烦再发一次。

使用特权

评论回复
10
火箭球迷| | 2011-7-27 14:40 | 只看该作者
香主给的链接貌似打不开

使用特权

评论回复
11
adamdo001| | 2011-7-28 13:03 | 只看该作者
是的,打不开。

使用特权

评论回复
12
adamdo001| | 2011-8-1 13:36 | 只看该作者
希望再发一次。

使用特权

评论回复
13
teet| | 2011-8-1 21:50 | 只看该作者
对呀 在发一次可以不

使用特权

评论回复
14
teet| | 2011-8-1 21:50 | 只看该作者
期待期待

使用特权

评论回复
15
teet| | 2011-8-1 21:50 | 只看该作者
:handshake

使用特权

评论回复
16
陈永宾0| | 2011-8-1 22:34 | 只看该作者
以前的很多链接都打不开 说不存在 郁闷

使用特权

评论回复
17
ml0943| | 2013-5-10 15:04 | 只看该作者
colaring 发表于 2008-7-3 10:36
RAM我试了,跟FLASH一样下载了没反应,不过我现在的感觉是IAR会篡改lnkarm_flash.xcl这个文件,我现在找来2 ...

怎么弄得?我现在也无法下载了

使用特权

评论回复
18
cjhk| | 2013-5-10 18:52 | 只看该作者
不是很了解啊   楼主   帮你顶一个   看看有没有高手能够解决这个问题   呵呵

使用特权

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

本版积分规则

44

主题

156

帖子

1

粉丝