AXD里,JlinkRDI的jtag时钟设置为固定的1000KHz,flash编程没有使能,软件断点使能,“Allow instruction set simulation”钩上了,小端,“Hardware, halt after reset(normal)”,复位后延迟为0ms。
smartarm2200的板子,跳线设为bank0-ram,bank1-flash。 同样的代码(就是光盘自带的led流水灯例程),用EasyJtag + AXD调试正常,但是用Jlink + AXD调试,断点有效,但是查看0x80000000开始的空间全是0xFF(AXD根本没能把数据加载到ram里)。
用Jlink的命令行测试如下(还是写不到ram里):
VTarget = 3.261V Info: TotalIRLen = 4, IRPrint = 0x01 JTAG speed: 30 kHz Found 1 JTAG device, Total IRLen = 4: Id of device #0: 0x4F1F0F0F Found ARM with core Id 0x4F1F0F0F (ARM7) ETM V1.2: 1 pairs addr.comp, 0 data comp, 4 MM decs, 1 counters J-Link>mem 0x80000000,4 80000000 = FF FF FF FF J-Link>w4 0x80000000,0x12345678 “写32位数据到0x80000000” Halting CPU in order to write memory... Writing 12345678 -> 80000000 J-Link>mem 0x80000000,4 “再读出来,还是空的” 80000000 = FF FF FF FF J-Link>st VTarget=3.261V ITarget=0mA TCK=1 TDI=0 TDO=0 TMS=0 TRES=1 TRST=1 Supported JTAG speeds: - 48 MHz/n, (n>=4). => 12000kHz, 9600kHz, 8000kHz, ... - Adaptive clocking
Jlink软件版本为378c。
是我的设置/方法有问题,还是Jlink的问题,还是smartarm2200或者AXD不支持这么调试? |