0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RaspberryPi Pico itron系OS+picoSDK trykernelの環境構築 その2

0
Posted at

環境構築のおさらい

前回からだいぶ時間が空きました。
PC新調に伴い、環境再構築して、picoでもまた遊び始めました。

ninjaのインストール

上記の記事でcmakeまでは入っていると思います。
ここから追加の環境構築になります。
記事で紹介されていた方法では、どうしても私の場合安定してコンパイルできませんでした。
そこでmakeではなくninjaを使ってターミナルからコンパイルする方法に切り替えました。

wingetを使います。cmdにて下記を入力してninjaをインストールします。

winget install Ninja-build.Ninja

ninjaとmakeの違い

どちらもビルドコマンドですが、実態は大きく違います。

観点 Make Ninja
設計思想 人間が読む/書くことも想定 機械が生成して実行する前提
入力ファイル Makefile(手書きしがち) build.ninja(基本は自動生成)
速度 中〜高速(状況次第) 高速
依存関係の扱い 仕組みが古く、工夫が必要なことが多い 依存グラフ実行に最適化されている
並列ビルド -jで可能。ただしクセが出やすい 並列前提で安定しやすい
増分ビルド ルール次第でムラが出る 増分ビルドが得意で安定
ログ表示 自由度高いがカオスになりがち 必要最小限で見やすい(設定で詳細も可)

コンパイル方法

  • buildフォルダを作成。中身をからにします
    image.png

  • buildフォルダに移動して、ビルドデータ作成コマンドを実行します

cmake -G "Ninja" ..

意味として、ビルド用に初期化して、1つ上の CMake プロジェクトから Ninja 用の設計図を生成

以降はNinjaジェネレーターを使用してCMakeを実行します
以下のコマンドを使用します

- ビルド	ninja
- クリーン	ninja clean
- 再ビルド	ninja clean && ninja
- 詳細出力	ninja -v

コンパイルが成功すると、elfやUF2が作成されます。

CMSIS-DAP経由でプログラム書き込み

bootを押しながら、USBを接続してUF2書き込みでもOKですが、今回はデバッグプローブを使います

CMSIS-DAPとは?

ARMが定めた デバッグ通信規格 です
正式名称:
Cortex Microcontroller Software Interface Standard - Debug Access Port のイニシャルをとってます
PCからSWD/JTAG経由でマイコンを制御するための通信仕様です

picoのデバッグプローブを使って書き込みます

OpenOCDとは?

Open On-Chip Debuggerのイニシャルです
stm32などを使っていた人には馴染みがあるんじゃないでしょうか?
CMSIS-DAP、ST-Link、J-Link などのデバッガを操作するための仲介ソフトです
これで書き込んだり、デバッグができます

書き込み用のスクリプト

以下のスクリプト flash.batを作成し、build直下に置きます

@echo off
rem === このバッチは build フォルダに置く想定 ===
cd /d "%~dp0"

"C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\openocd\openocd.exe" ^
  -s "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\openocd\scripts" ^
  -f interface/cmsis-dap.cfg ^
  -f target/rp2040.cfg ^
  -c "adapter speed 5000" ^
  -c "program hyb_blink.elf verify reset exit"

PSのターミナルから、以下で書き込みします

.\flash.bat

以上でitron+SDKでの開発環境が整いました。

おまけ:pico w でエラーが出た場合

私の環境ですが、最初にコンパイルした時にlwip関連のファイルがないエラーが発生しました。(wifiを使うプロジェクト)
vscodeのPSのターミナルより、以下を入力してgithubから追加のライブラリ(lwip関連)をダウンロードします。

  • sdkフォルダに移動
cd "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1"
  • 追加ファイルをclone すればコンパイルが通ります
C:\Program Files\Raspberry Pi\Pico SDK v1.5.1> git clone -b sdk-1.5.1 https://github.com/raspberrypi/pico-extras.git

今日はここまで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?