2024年11月号特集「ゼロから作るマルチコアOS」特設ページ

ダウンロード・データ

関連ファイル(Try Kernelソースコード+アプリケーション)一式

第1部 Appendix 1 tasks.json,launch.json

Try Kernelを配布しているGitHub

 

記事内のコマンドライン・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 setup for Windows

Pico SDK 1.5.1のWindowsへの手動インストール

VSCode機能拡張 Raspberry Pi Pico

Raspberry Pi Pico Project Generator

表1 インストールされる各種開発ツール

Arm GNU Toolchain

CMake

Ninja

Python

Git

OpenOCD

Visual Studio Code

 

第6部 第3章 製作(2)…Wi-Fi経由で操作するリモート・マイコン・カー

buildozer

 

記事の補足

 (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;