У меня есть собственный чип nrf52 на печатной плате с открытыми выводами SWD. Я клонировал и установил последнюю версию openocd из https://github.com/ntfreak/openocd. Последняя версия включает в себя все последние пути для чипа nrf52, поэтому нет необходимости вносить какие-либо дополнительные изменения, как это предлагается во многих старых руководствах в Интернете. Я могу подключиться к чипу с помощью ST-LinkV2. при подключении я могу читать и записывать области памяти, используя mdw и mdb. Я также могу запустить некоторые базовые команды openocd, например dump_image e.t.c, что подтверждает, что установка прошла хорошо. Но команды остановки и программы всегда приводят к таким ошибкам, как:
JTAG failure -4
JTAG failure -4
JTAG failure -4
JTAG failure -4
JTAG failure -4
JTAG failure -4
target halted due to debug-request, current mode: Thread
xPSR: 00000000 pc: 00000000 msp: 00000000
jtag status contains invalid mode value - communication failure
Polling target nrf52.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 100ms
Previous state query failed, trying to reconnect
jtag status contains invalid mode value - communication failure
Polling target nrf52.cpu failed, trying to reexamine
если я пытаюсь использовать flash image_write, я получаю сообщение об ошибке,
JTAG failure
Error setting register
error starting target flash write algorithm
Failed to enable read-only operation
Failed to write to nrf52 flash
error writing to flash at address 0x00000000 at offset 0x00000000
in procedure 'dap'
jtag status contains invalid mode value - communication failure
Polling target nrf52.cpu failed, trying to reexamine
Я прочитал различные руководства в Интернете, и одно из возможных решений включает в себя регистр APPPROTECT, который необходимо отключить, чтобы разрешить любую запись во флэш-память.
APP_PROTECT , но команда dap, которая должна помочь нам получить доступ к этому биту,
dap apreg 1 0x04 0x01
возвращает ошибку:
invalid subcommand apreg 1 0x04 0x01
Пожалуйста, я хотел бы знать, имел ли кто-нибудь успех при программировании нового пустого чипа nrf52 с помощью stlink-v2 и необходимых шагов, или если кто-либо сталкивался с подобными проблемами. Благодаря.
Вот мой конфигурационный файл:
#nRF52832 Target
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/nrf52.cfg]
#reset_config srst_nogate connect_assert_srst