打印

STM32 JTAG/SWJ 编程

[复制链接]
7671|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Simon21ic|  楼主 | 2009-10-21 00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Simon21ic 于 2009-10-21 02:43 编辑

上次看到mcuisp的那个工具支持了STM32的JTAG/SWJ编程。虽然Versaloon目前没有销售(原来准备在国内销售的那10套,卖给一个国外公司做样机了),但咱也8能落后太多,于是乎,马上加了上去(一些代码参考了OpenOCD,但Flash_Loader优化了一些,虽然JTAG驱动使用更慢的HL接口,但速度仍旧是OpenOCD的3倍多,大概单下载33+KB/s,OpenOCD下4.5M时,速度为10.8KB/s)。SWJ接口will follow。之后会在OpenOCD中,加入SWJ的支持。

不确定是否是新片的问题,目前测试用的芯片的JTAG速度可以支持到很高,目前使用4.5M的速度(难道碰到极品芯片?)。
JTAG速度增加到9M的时候,仍旧可以正常编程,但是速度没有提升。
JTAG速度增加到18M的时候,JTAG访问会出错(DP通信的时候出错,应答不到ACK)。

VSProg debug version (Oct 19 2009) MSVC express 2008 SP1:0000
CopyRight(c) 2008-2009 by SimonQian

URL: http://www.SimonQian.com/en/Versaloon
mail: __N/A__

Info:   Versaloon(0x13)by Simon(compiled on Oct 19 2009)
Warning:5 is invalid for hex type, current line ignored!!
Warning:debug port not defined, use JTAG by default.
Info:   VSLLink_20080905 by Simon(compiled on Oct 19 2009)
Info:   JTAG_ID: 0x3BA00477.
Info:   AHB-AP_ID: 0x14770011
Info:   ROM_ADDRESS: 0xE00FF003
Info:   CFG: 0x00000000, Small-endian
Info:   CORTEX-M3 processor detected
Info:   CPUID: 0x411FC231
Info:   STM32 MCU_ID: 0x20016410
Info:   STM32 revision: Z
Info:   STM32 type: medium-density device
Info:   STM32 flash_size: 32K Bytes
Info:   STM32 sram_size: 6K Bytes
Info:   Target halted.
Info:   erasing chip
erasing chip |========================================%100| 0.03s used
Info:   chip erased
Info:   Target halted.
Info:   programming flash_loader
writing flash |========================================%100| 0.00s used
Info:   flash_loader programmed for 120bytes
Info:   verifying flash_loader
writing flash |========================================%100| 0.02s used
Info:   flash_loader verified for 120bytes
Info:   Target running.
Info:   programming flash
writing flash |========================================%100| 0.45s used
Info:   flash programmed for 15456bytes
Info:   verifying flash
reading flash |========================================%100| 0.14s used
Info:   flash verified for 15456bytes
沙发
mcuisp| | 2009-10-21 10:22 | 只看该作者
呵呵,好!
眼红老兄的仿真代码。要能port到我的EP868就好了。

使用特权

评论回复
板凳
Simon21ic|  楼主 | 2009-10-21 13:21 | 只看该作者
仿真部分如果自己做的话,也就是控制几个DCB里的寄存器而已。
反而和调试软件接口部分会需要更多的代码。

使用特权

评论回复
地板
mcuisp| | 2009-10-21 14:26 | 只看该作者
主要工作就在软件接口,呵呵。
GDB不知难不难。

使用特权

评论回复
5
Simon21ic|  楼主 | 2009-10-21 14:51 | 只看该作者
呵呵,估计不是难不难的问题了,目前公开的只有GDB接口了吧?
只是RVMDK不支持GDB接口,在OpenOCD开发者的眼中,RVMDK是一个close的系统

使用特权

评论回复
6
mcuisp| | 2009-10-21 22:06 | 只看该作者
有机会再向钱兄讨教,可能有合作机会,呵呵。

使用特权

评论回复
7
Simon21ic|  楼主 | 2009-10-22 14:47 | 只看该作者
好啊,Versaloon的JTAG调试支持是比较早就加上的,可能有一家巨大的欧洲公司会用。
STM32的SWJ到时挺麻烦的,底层有一些时序和ARM官方推荐的不同,为了保证稳定性,可能会去弄个J-Link分析一下底层时序。

使用特权

评论回复
8
无冕之王| | 2009-10-22 21:37 | 只看该作者
好帖。。。

使用特权

评论回复
9
txcy| | 2009-10-22 21:40 | 只看该作者
这段代码写的不错

使用特权

评论回复
10
Simon21ic|  楼主 | 2009-10-24 08:23 | 只看该作者
SWJ接口以前没有用过,代码主要考虑安全,而不是速度,速度以后慢慢优化:
VSProg debug version (Oct 22 2009) MSVC express 2008 SP1:0000
CopyRight(c) 2008-2009 by SimonQian

URL: http://www.SimonQian.com/en/Versaloon
mail: __N/A__

Info:   Versaloon(0x13)by Simon(compiled on Oct 24 2009)
Warning:5 is invalid for hex type, current line ignored!!
Info:   VSLLink_20080905 by Simon(compiled on Oct 24 2009)
Info:   SWJ_ID read is 0x1BA01477.              <<<<<<<<++++++++ SWJ_ID和JTAG_ID不同,其他操作完全一致 ++++++++>>>>>>>>
Info:   AHB-AP_ID: 0x14770011
Info:   ROM_ADDRESS: 0xE00FF003
Info:   CFG: 0x00000000, Small-endian
Info:   CORTEX-M3 processor detected
Info:   CPUID: 0x411FC231
Info:   STM32 MCU_ID: 0x20016410
Info:   STM32 revision: Z
Info:   STM32 type: medium-density device
Info:   STM32 flash_size: 32K Bytes
Info:   STM32 sram_size: 6K Bytes
Info:   Target halted.
Info:   erasing chip
erasing chip |========================================%100| 0.03s used
Info:   chip erased
Info:   Target halted.
Info:   programming flash_loader
writing flash_loader |========================================%100| 0.00s used
Info:   flash_loader programmed for 120bytes
Info:   verifying flash_loader
reading flash_loader |========================================%100| 0.00s used
Info:   flash_loader verified for 120bytes
Info:   Target running.
Info:   programming flash
writing flash |========================================%100| 0.52s used
Info:   flash programmed for 15456bytes
Info:   verifying flash
reading flash |========================================%100| 0.36s used
Info:   flash verified for 15456bytes

使用特权

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

本版积分规则

266

主题

2597

帖子

104

粉丝