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, и т. д., чтобы узнать состояние программы и выполнить дополнительные действия в процессе отладки.