vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2022-05-22 08:27 pm

Инструментарий для Raspberry Pico: софтверная часть

Здесь я покажу, как установить софт, а собственно играться с платой начнём в следующий раз. План такой:
  1. Скачиваем систему программирования Pico SDK, включая примеры
  2. Собираем примеры
  3. Собираем утилиту picotool
  4. Компилируем прошивку для адаптера picoprobe
  5. Собираем интерфейс к отладчику openocd
  6. Устанавливаем расширения для Visual Studio Code

Система программирования Pico SDK

Скачиваем исходные тексты системы программирования Pico SDK, а также примеров. Создаём папку, где будет помещать все компоненты.
mkdir ~/Project/Pico
cd ~/Project/Pico
git clone https://github.com/raspberrypi/pico-sdk
git clone https://github.com/raspberrypi/pico-examples
cd pico-sdk
git submodule update --init
Добавляем пару переменных окружения в .bashrc:
export PICO_SDK_PATH=$HOME/Project/Pico/pico-sdk
export PICO_EXAMPLES_PATH=$HOME/Project/Pico/pico-examples
Установим Си компилятор для ARM. На маке это делается командой:
brew install cmake gcc-arm-embedded
На Линуксе:
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential
Программирование для Pico подробно описано в документе: "Raspberry Pi Pico SDK. Libraries and tools for C/C++ development on RP2040 microcontrollers" (PDF).

Примеры

Скомпилируем пару примеров, чтобы убедиться, что компилятор работает правильно. Первый пример будет мигать светодиодом, второй выводить текстовую строку в серийный порт UART.
cd ~/Project/Pico
cd pico-examples
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -Cblink
make -Chello_world
Как прошивать примеры в плату - я покаже позже.

Picotool: утилита прошивки через бутлоадер

Утилита picotool взаимодействует с бутлоадером, имеющемся на каждой плате Pico, и позволяет прошивать программу, читать-писать память и другие вещи.
cd ~/Project/Pico
git clone https://github.com/raspberrypi/picotool.git
cd picotool
mkdir build
cd build
cmake ..
make
sudo cp picotool /usr/local/bin

Picoprobe: прошивка для адаптера к отладчику

Позже я покажу, как из второго экземпляра Raspberry Pico соорудить USB-adapter для отладки посредством GDB. А пока соберём прошивку для него.
cd ~/Project/Pico
git clone https://github.com/raspberrypi/picoprobe.git
cd picoprobe
git submodule update --init
mkdir build
cd build
cmake ..
make

OpenOCD: интерфейс к отладчику

Чтобы отлаживать программы на плате Pico посредством отладчика GDB, вам понадобятся две вещи: аппаратный USB-адаптер, чтобы подключиться к пинам SWD чипа RP2040, и программный интерфейс OpenOCD. Также OpenOCD позволяет прошивать программу в плату непосредственно через порт отладки. Не нужно жать кнопку BOOTSEL и передёргивать питание.
cd ~/Project/Pico
git clone https://github.com/raspberrypi/openocd.git -b rp2040 --depth=1
cd openocd
./bootstrap
./configure --enable-picoprobe
make
sudo make install

Расширения для Visual Studio Code

Многие пользуются редактором Visual Studio Code. Официальная документация Raspberry Pico содержит много примеров для программирования Pico из среды VS Code. Установить нужные расширения можно из командной строки:
code --install-extension marus25.cortex-debug
code --install-extension ms-vscode.cmake-tools
code --install-extension ms-vscode.cpptools
В следующем посте я покажу, как прошить примеры в плату Pico и подключиться к серийному порту UART.

juan_gandhi: (Default)

[personal profile] juan_gandhi 2022-05-23 03:51 am (UTC)(link)

Красиво. Идея git submodule порадовала меня. Dependency на уровне сорсов, отлично!

beldmit: (Default)

[personal profile] beldmit 2022-05-23 08:30 am (UTC)(link)
Во-во. Или синхронные правки submodule и главного module, например, для тестирования.
juan_gandhi: (Default)

[personal profile] juan_gandhi 2022-05-23 01:03 pm (UTC)(link)

Вообще не слышал даже раньше. В нашей вселенной все git или mvn выдергивает с репо (сорсы там тоже видать).