STM32 JTAG/SWJ 编程

[复制链接]
8290|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不知难不难。
 楼主| Simon21ic 发表于 2009-10-21 14:51 | 显示全部楼层
呵呵,估计不是难不难的问题了,目前公开的只有GDB接口了吧?
只是RVMDK不支持GDB接口,在OpenOCD开发者的眼中,RVMDK是一个close的系统
mcuisp 发表于 2009-10-21 22:06 | 显示全部楼层
有机会再向钱兄讨教,可能有合作机会,呵呵。
 楼主| Simon21ic 发表于 2009-10-22 14:47 | 显示全部楼层
好啊,Versaloon的JTAG调试支持是比较早就加上的,可能有一家巨大的欧洲公司会用。
STM32的SWJ到时挺麻烦的,底层有一些时序和ARM官方推荐的不同,为了保证稳定性,可能会去弄个J-Link分析一下底层时序。
无冕之王 发表于 2009-10-22 21:37 | 显示全部楼层
好帖。。。
txcy 发表于 2009-10-22 21:40 | 显示全部楼层
这段代码写的不错
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部