错误:暂停超时,唤醒GDB

错误:暂停超时,唤醒GDB,gdb,firmware,openocd,Gdb,Firmware,Openocd,我在使用OpenOCD闪存at91sam7s512微控制器上的固件时遇到问题 每当我发送halt命令(通过telnet)时,它都会抛出以下错误: Halt timed out, wake up GDB. timed out while waiting for target halted in procedure 'halt' 董事会是一个 下面是正在使用的配置文件: # Ports telnet_port 4444 gdb_port 3333 # Interface interface bu

我在使用OpenOCD闪存at91sam7s512微控制器上的固件时遇到问题

每当我发送
halt
命令(通过telnet)时,它都会抛出以下错误:

Halt timed out, wake up GDB.
timed out while waiting for target halted
in procedure 'halt'
董事会是一个

下面是正在使用的配置文件:

# Ports
telnet_port 4444
gdb_port 3333

# Interface
interface buspirate
buspirate_port /dev/ttyUSB0
adapter_khz 1000

# Communication speed
buspirate_speed normal # or fast

# Voltage regulator: enabled = 1 or disabled = 0
buspirate_vreg 1

# Pin mode: normal or open-drain
buspirate_mode normal

# Pull-up state: enabled = 1 or disabled = 0
buspirate_pullup 1

# use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only srst_pulls_trst

jtag newtap sam7x cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x3f0f0f0f 

target create sam7x.cpu arm7tdmi -endian little -chain-position sam7x.cpu 

sam7x.cpu configure -event reset-init { 
    soft_reset_halt
    mww 0xfffffd00 0xa5000004   # RSTC_CR: Reset peripherals
    mww 0xfffffd44 0x00008000   # WDT_MR: disable watchdog
    mww 0xfffffd08 0xa5000001   # RSTC_MR enable user reset
    mww 0xfffffc20 0x00005001   # CKGR_MOR : enable the main oscillator
    sleep 10
    mww 0xfffffc2c 0x000b1c02   # CKGR_PLLR: 16MHz * 12/2 = 96MHz
    sleep 10
    mww 0xfffffc30 0x00000007   # PMC_MCKR : MCK = PLL / 2 = 48 MHz
    sleep 10
    mww 0xffffff60 0x00480100   # MC_FMR: flash mode (FWS=1,FMCN=72)
    sleep 100

}

gdb_memory_map enable
#gdb_breakpoint_override hard
#armv4_5 core_state arm

sam7x.cpu configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x10000 -work-area-backup 0
flash bank sam7x512.flash.0 at91sam7 0 0 0 0 sam7x.cpu 0 0 0 0 0 0 0 18432
flash bank sam7x512.flash.1 at91sam7 0 0 0 0 sam7x.cpu 1 0 0 0 0 0 0 18432

可以采取哪些步骤对MISO和MOSI线进行故障排除。对于我的Bus Pirate v3和Proxmark3 Easy,正确的连接是:

TMS <-> CS
TDI <-> MOSI
TDO <-> MISO
TCK <-> CLK
GND <-> GND
+3.3 <-> +3.3
TMS-CS
甲苯二异氰酸酯
时差味噌
TCK CLK
接地
+3.3  +3.3

您可以选择两种方式,JTAG和USB

JTAG 在某些CPU上,JTAG接口在默认情况下是禁用的,并且由于其代码读取保护(CRP),需要手动启用

要做到这一点,您需要在设备开启时通过短接引脚55(擦除)和3.3V来擦除芯片

在此之后,内存将被擦除并关闭保护。然后你可以像平常一样闪烁

来源

Proxmark论坛

官方CPU文件,第4.9.3节

通用串口总线 或者,您可以通过USB尝试该过程

首先检查插入时是否检测到Proxmark

运行watch命令,查看插入时是否发生任何更改

监视ls-l/dev/ttyACM0

按住Proxmark一侧的按钮,然后通过USB连接,检查
watch
的命令输出是否更改。如果确实如此,并且文件变为当前文件,则可以继续执行此操作

确保按下按钮,直到闪烁过程完成

您需要编译在官方回购中找到的Proxmark3源代码,以获得用于闪烁的工具(flash)和闪烁图像(bootrom.elf和fullimage.elf)。如果您已经继续进行闪烁,如果没有,请先执行下面的编译步骤

闪烁

在闪烁过程中不要按Enter键

/client/flasher/dev/ttyACM0-b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf

启动Proxmark客户端并测试是否有效

/client/proxmark3/dev/ttyACM0

汇编

将当前用户添加到拨号组

sudo adduser$USER拨号

注销并重新登录以使更改生效

安装必要的部件

sudo apt get install p7zip git build essential libreadline5 libreadline dev libusb-0.1-4 libusb dev libqt4 dev perl pkg config wget libncurse5 dev gcc arm none eabi libstdc++-arm none eabi newlib

克隆回购

git克隆https://github.com/proxmark/proxmark3.git

cd proxmark3

添加Udev规则

sudo cp-rf驱动程序/77-mm-usb-device-blacklist.rules/etc/udev/rules.d/77-mm usb设备blacklist.rules

sudo udevadm控件--重新加载规则

制造

makeclean&makeall

在tty接口上识别Proxmark3(通常这是ttyACM0,这是我将在Flash中使用的)

dmesg|grep-i usb

继续闪烁步骤


Source(Linux安装)

你解决过这个问题吗?@polymonent我解决了并回答了。