Interface編集部
2024年11月号特集「ゼロから作るマルチコアOS」特設ページ
ダウンロード・データ
関連ファイル(Try Kernelソースコード+アプリケーション)一式
第1部 Appendix 1 tasks.json,launch.json
記事内のコマンドライン・URL
第1部 Appendix 1 マルチコアOSの開発環境
● 各種開発ツールのインストール
Node.js https://nodejs.org/en
xpm https://xpack.github.io/xpm/
The xPack GNU Arm Embedded GCC
https://xpack.github.io/dev-tools/arm-none-eabi-gcc/
The xPack Windows Build Tools
https://xpack.github.io/dev-tools/windows-build-tools/
The xPack OpenOCD
https://xpack.github.io/dev-tools/openocd/
注:xPackのツールをインストールした後にはxpacks\.binにPATHを通してください.参考:https://xpack-dev-tools.github.io/arm-none-eabi-gcc-xpack/docs/install/ のInstall into the project→PATH setup
● インストールの確認
arm-none-eabi-gcc --version make --version arm-none-eabi-gdb --version openocd --version
● CMSIS-SVDファイルの入手
https://github.com/raspberrypi/pico-sdk/blob/master/src/rp2040/hardware_regs/RP2040.svd
● VSCode
https://code.visualstudio.com/download
● Eclipse
https://www.eclipse.org/downloads/packages/
● プログラムのデバッグ
[Config option] -f interface/cmsis-dap.cfg -target/rp2040.cfg
第6部 第1章 Pico SDKと連携するハイブリッド・システム
Pico SDK 1.5.1のWindowsへの手動インストール
Raspberry Pi Pico Project Generator
表1 インストールされる各種開発ツール
第6部 第3章 製作(2)…Wi-Fi経由で操作するリモート・マイコン・カー
記事の補足
(1) 第1部 Appendex 1 マルチコアOSの開発環境
環境によってはVSCodeからビルドを行うときに下記のようなメッセージが出てビルドができないことがあります(makeで実行すべきコマンドがそのまま画面に出力されている).
'Building file: ../boot/boot2.c'; arm-none-eabi-gcc -mcpu=cortex-m0plus -mthumb -ffreestanding -std=c99 -O0 -g3 -I"../include" -MMD -MP -MF"boot/boot2.d" -MT"boot/boot2.o" -c -o "boot/boot2.o" "../boot/boot2.c"; echo 'Finished building: ../boot/boot2.c'; echo ' ' (中略) * ターミナル プロセス "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command make all" が終了コード 1 で終了しました。
Makefileの先頭で下記のようにsh.exeを呼び出すよう設定するとビルドできます.
SHELL := sh
記事の訂正
(1) 第1部 Appendex 1 マルチコアOSの開発環境
「リスト2 Try Kernel 2.0(シングルコア版)のsources.mk」に,以下のように3ファイル(interrupt.c, gpio.c, messagebuf.c)を追加してください.第1部のmakefileとしては問題ありませんが,第2部以降の記事やメッセージ・バッファが含まれる場合にビルドできないことがあります.
------------------------------------------------------ CSRCS = \ (一部省略) kernel/interrupt.c \ kernel/gpio.c \ kernel/messagebuf.c \ (一部省略) application/usermain.c ------------------------------------------------------
(2) 第2部第3章 割り込み機能を使ってみる
(2-1) 「リスト1 ECHO信号の割り込みハンドラ」を以下のように訂正します(ウェブで配布しているプログラムは修正済みです)
(誤) /* ECHO割り込みエッジH */ #define INTNO_ECHO_EDGE_HIGT 19 /* ECHO割り込みエッジL */ #define INTNO_ECHO_EDGE_LOW 18
(正) /* ECHO割り込みエッジH */ #define INTNO_ECHO_EDGE_HIGT 21 /* ECHO割り込みエッジL */ #define INTNO_ECHO_EDGE_LOW 20
(2-2) 本文を以下のように訂正します
(誤) ECHO端子からの信号による立ち上がりエッジの割り込みはINTR1レジスタのビット19,立ち下がりエッジの割り込みは同じレジスタのビット18にセットされます.
(正) ECHO端子からの信号による立ち上がりエッジの割り込みはINTR1レジスタのビット21,立ち下がりエッジの割り込みは同じレジスタのビット20にセットされます.
(2-3) 「リスト2 センサ制御タスク」を以下のように訂正します(ウェブで配布しているプログラムは修正済みです)
(誤) tim_val = tim1 – tim0;
(正) tim_val = tim2 – tim1;