我有一个 XDS220 (PN 516300-0001、串行 X2D_1401037)、我通过尝试在 OSX 上执行固件更新而成功锁定。 此主题中所示的症状相同、但我似乎无法让 CCS (在 Linux 或 Windows 上)通过 XDS100v2与它连接。 我已经连接(并验证) TDI、TDO、TMS、TCK、RTCK、 TRST、GND 和3.3V、但当我使用 CCS 测试连接时、系统提示检测到远端中断。 如果我使用 OpenOCD、它实际上会进行连接、我可以停止/步进/等等 处理器似乎不起作用、但将 fw1009.bin 加载到位置0x80010000并尝试在相同地址继续执行。
"看起来不工作"我的意思是处理器好像在运行、但我没有看到 USB 设备出现、如果我停止处理器、它似乎与我第一次连接时的无限循环指令相同。 我也玩过 TCK 时钟速度、使用 RTCK 或忽略它… 似乎没有任何帮助。
> reset halt JTAG tap: omapl138.jrc tap/device found: 0x1b7d102f (mfg: 0x017 (Texas Instruments), part: 0xb7d1, ver: 0x1) JTAG tap: omapl138.etb enabled JTAG tap: omapl138.arm enabled target halted in ARM state due to debug-request, current mode: System cpsr: 0xa00000df pc: 0x800016c8 MMU: disabled, D-Cache: disabled, I-Cache: disabled NOTE! DCC downloads have not been enabled, defaulting to slow memory writes. Type 'help dcc'. > omapl138.arm curstate halted > reg ===== ARM registers (0) r0 (/32): 0xa00000df (dirty) (1) r1 (/32): 0xe1500001 (dirty) (2) r2 (/32): 0xdafffffc (dirty) (3) r3 (/32): 0xe59f0044 (dirty) (4) r4 (/32): 0xe59f1044 (dirty) (5) r5 (/32): 0xe2400c05 (dirty) (6) r6 (/32): 0xe321f0d3 (dirty) (7) r7 (/32): 0xe1a0d000 (dirty) (8) r8 (/32): 0xe2400008 (dirty) (9) r9 (/32): 0xe321f0df (dirty) (10) r10 (/32): 0xe1a0d000 (dirty) (11) r11 (/32): 0xe59f0054 (dirty) (12) r12 (/32): 0xe59f1054 (dirty) (13) sp_usr (/32): 0xe3a02000 (dirty) (14) lr_usr (/32): 0xe4802004 (dirty) (15) pc (/32): 0x800016c8 (dirty) (16) r8_fiq (/32) (17) r9_fiq (/32) (18) r10_fiq (/32) (19) r11_fiq (/32) (20) r12_fiq (/32) (21) sp_fiq (/32) (22) lr_fiq (/32) (23) sp_irq (/32) (24) lr_irq (/32) (25) sp_svc (/32) (26) lr_svc (/32) (27) sp_abt (/32) (28) lr_abt (/32) (29) sp_und (/32) (30) lr_und (/32) (31) cpsr (/32): 0xa00000df (32) spsr_fiq (/32) (33) spsr_irq (/32) (34) spsr_svc (/32) (35) spsr_abt (/32) (36) spsr_und (/32) (37) sp (/32) (38) lr (/32) ===== EmbeddedICE registers ===== etm registers ===== etb registers > load_image /home/andrew/ti/ccs1230/ccs/ccs_base/common/uscif/xds2xx/xds220_firload_image /home/andrew/ti/ccs1230/ccs/ccs_base/common/uscif/xds2xx/xds220_firmware_v1009.bin 0x80010000 bin 92814 bytes written at address 0x80010000 downloaded 92814 bytes in 2.201913s (41.164 KiB/s) > mdw 0x80010000 0x20 0x80010000: ea000004 40000000 4000033c 4000033c 40016a90 4004c3c8 e59f0098 e321f0db 0x80010020: e1a0d000 e2400008 e321f0d7 e1a0d000 e2400008 e321f0d1 e1a0d000 e2400008 0x80010040: e321f0d2 e1a0d000 e2400c05 e321f0d3 e1a0d000 e2400008 e321f0df e1a0d000 0x80010060: e59f0054 e59f1054 e3a02000 e4802004 e1500001 dafffffc e59f0044 e59f1044 > resume 0x80010000 ... wait, nothing showing up on USB ... > halt target halted in ARM state due to debug-request, current mode: System cpsr: 0xa00000df pc: 0x800015fc MMU: disabled, D-Cache: disabled, I-Cache: disabled > reg ===== ARM registers (0) r0 (/32): 0xffffffff (dirty) (1) r1 (/32): 0x00000004 (2) r2 (/32): 0xffffffff (3) r3 (/32): 0xffffffff (4) r4 (/32): 0x80000000 (5) r5 (/32): 0xe2400c05 (6) r6 (/32): 0xe321f0d3 (7) r7 (/32): 0x00000000 (8) r8 (/32): 0xe2400008 (9) r9 (/32): 0xe321f0df (10) r10 (/32): 0x80000aa0 (11) r11 (/32): 0x80003100 (12) r12 (/32): 0x00000001 (13) sp_usr (/32): 0x800030ec (14) lr_usr (/32): 0x8000157c (15) pc (/32): 0x800015fc (dirty) (16) r8_fiq (/32) (17) r9_fiq (/32) (18) r10_fiq (/32) (19) r11_fiq (/32) (20) r12_fiq (/32) (21) sp_fiq (/32) (22) lr_fiq (/32) (23) sp_irq (/32) (24) lr_irq (/32) (25) sp_svc (/32) (26) lr_svc (/32) (27) sp_abt (/32) (28) lr_abt (/32) (29) sp_und (/32) (30) lr_und (/32) (31) cpsr (/32): 0xa00000df (32) spsr_fiq (/32) (33) spsr_irq (/32) (34) spsr_svc (/32) (35) spsr_abt (/32) (36) spsr_und (/32) (37) sp (/32) (38) lr (/32) ===== EmbeddedICE registers ===== etm registers ===== etb registers
我也尝试了分别手动设置 PC 和 SP 为0x80010018和0x40000000并恢复这种方式、但结果相同。
我非常确信、如果我只能通过 AM1802执行已加载的代码、我就能够恢复这种情况。 我有两个问题:
1) 1)如何对 CCS 中的"SC_ERR_CTL_CBL_Break_far"(-183)错误进行故障排除/解决? 网上没有太多的信息、有什么是通用的。 我知道连接良好、因为 OpenOCD 可以与器件通信。
2) 2)我缺少什么使我无法通过 OpenOCD 完成所需的操作?