OpenOCD调试AT32F421记录

自己做的AT32F421最小系统,在OpenOCD下用FT2232H系列的Adapter烧录时总是报错:

  • 使用 program 指令时报错 
    embedded:startup.tcl:1194: Error: ** Unable to reset target **
    in procedure 'program'
    in procedure 'program_error' called at file "embedded:startup.tcl", line 1231
    at file "embedded:startup.tcl", line 1194
    SWD DPIDR 0x2ba01477
  • 使用 flash write_image 时报错
    >This is target at32f421xx algorithm
    >flash size: 0x10000 byte
    >flash sector num : 0x40
    >flash sector size : 0x400
    >flash bank size : 0x10000
    >at32f421xx
    Write offset: 0x0
    Write count: 0xaa4
    SWD DPIDR 0x2ba01477
    Error setting register xPSR
    SWD DPIDR 0x2ba01477
    Error setting register pc
    SWD DPIDR 0x2ba01477
    Error setting register r4
    SWD DPIDR 0x2ba01477
    Error setting register r3
    SWD DPIDR 0x2ba01477
    Error setting register r2
    SWD DPIDR 0x2ba01477
    Error setting register r1
    SWD DPIDR 0x2ba01477
    Error setting register r0
    SWD DPIDR 0x2ba01477
    timeout waiting for algorithm, a target reset is recommended
    flash write failed at address 0x8000000
    error writing to flash at address 0x08000000 at offset 0x00000000
    embedded:startup.tcl:1194: Error:
    in procedure 'program'
    in procedure 'program_error' called at file "embedded:startup.tcl", line 1231
    at file "embedded:startup.tcl", line 1194
    Polling target at32f421xx.cpu failed, trying to reexamine

遂开始逐个排查问题。

检查过程

  1. 检查原理图,PCB,硬件连接;

  2. 检查寄存器。

。。。

结论

可能是AT官方在github上开源的OpenOCD的branch代码本身问题。

AT官方的另一个OpenOCD的xpack发行版(截止当前的最新版是v2.0.2)则没有问题。但是这个版本阉割了一些功能(不能使用FT2232系列的Adapter,而这正是本人需要的。)

下面是运行openocd.exe的结果:

  1. OpenOCD master 发行版:
    Open On-Chip Debugger 0.11.0 (2021-06-25) [https://github.com/sysprogs/openocd]
    Licensed under GNU GPL v2
    libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3
    For bug reports, read
            http://openocd.org/doc/doxygen/bugs.html
    embedded:startup.tcl:26: Error: Can't find openocd.cfg
    in procedure 'script'
    at file "embedded:startup.tcl", line 26
    Info : Listening on port 6666 for tcl connections
    Info : Listening on port 4444 for telnet connections
    Error: Debug Adapter has to be specified, see "adapter driver" command
    embedded:startup.tcl:26: Error:
    in procedure 'script'
    at file "embedded:startup.tcl", line 26
  2. 自己使用Mingw64编译的适配FT器件的AT官方openocd branch:
    Open On-Chip Debugger 0.11.0+dev-00781-gbbdd75e08 (2022-08-21-22:47)
    Licensed under GNU GPL v2
    For bug reports, read
            http://openocd.org/doc/doxygen/bugs.html
    embedded:startup.tcl:28: Error: Can't find openocd.cfg
    in procedure 'script'
    at file "embedded:startup.tcl", line 28
    Info : Listening on port 6666 for tcl connections
    Info : Listening on port 4444 for telnet connections
    Error: Debug Adapter has to be specified, see "adapter driver" command
    embedded:startup.tcl:28: Error:
    in procedure 'script'
    at file "embedded:startup.tcl", line 28
  3. AT官方使用xpack编译的仅适配JLink和CMSIS Dap的openocd:
    Open On-Chip Debugger 0.11.0+dev-snapshot (2022-05-19-16:31)
    Licensed under GNU GPL v2
    For bug reports, read
            http://openocd.org/doc/doxygen/bugs.html
    embedded:startup.tcl:26: Error: Can't find openocd.cfg
    in procedure 'script'
    at file "embedded:startup.tcl", line 26
    Info : Listening on port 6666 for tcl connections
    Info : Listening on port 4444 for telnet connections
    Error: Debug Adapter has to be specified, see "adapter driver" command
    embedded:startup.tcl:26: Error:
    in procedure 'script'
    at file "embedded:startup.tcl", line 26

 解决办法

最终无奈,在不习惯用keil和iar的情况下只好弄了一只ATLink,用官方编译好的OpenOCD去调试了。具体见另一篇文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值