pyOCD - это пакет Python с открытым исходным кодом для программирования и отладки микроконтроллеров Arm Cortex-M с использованием нескольких поддерживаемых типов USB-отладчиков. # Установка ``` pip install -U pyocd ``` # Основы работы Список подкоманд: * gdbserver: удаленный сервер GDB позволяет выполнять отладку с помощью gdb, либо через консоль. * flash: программные файлы различных форматов во флэш-памяти. * erase: стирание части или всей флэш-памяти микроконтроллера. * pack: Управление пакетами семейства устройств CMSIS, обеспечивающими дополнительную поддержку целевых устройств. * commander: интерактивный контроль REPL и инспекция MCU. * list: показать подключенные устройства. # Target support When pyOCD connects to a target, it needs to know what type of target it is controlling. To see the available target types you can run: ``` pyocd list --targets ``` # Programming The flash programming may be the most frequently used option of Pitya-Link. pyOCD offers a variety of commands for programming with different options. You can get additional help by running: ``` pyocd erase --help pyocd flash --help ``` The following commands demonstrate how to flash/erase an nRF52840-based target: To erase all of the target flash: ``` pyocd erase -t nrf52840 --chip ``` To flash the target with .hex-format firmware: ``` pyocd flash -t nrf52840 Sample.hex ``` To flash the target with a plain binary: ``` pyocd flash -t nrf52840 --base-address 0x1000 Sample.bin ``` !!! note The --base-address option is used for setting the address where to flash a binary. Defaults to start of flash. # Debugging pyOCD содержит удаленный сервер GDB запускаем его в одном окне терминала ``` pyocd gdbserver -t nrf52840 ``` Во втором окне терминала подключитесь к серверу GDB ``` $ arm-none-eabi-gdb (gdb) cd /Users/nick/projects/iot/nrf52840-mdk-lessons/lesson1-blinky/_build (gdb) file nrf52840_xxaa.out (gdb) target remote localhost:3333 (gdb) set endian little (gdb) monitor reset (gdb) monitor halt (gdb) monitor arm semihosting enable (gdb) load (gdb) break main (gdb) continue (gdb) info breakpoints ``` Отладка: Для отладки вы можете использовать команды, такие как step, next, print, info, и т. д., чтобы узнать состояние программы и выполнить дополнительные действия в процессе отладки.