オープンソースカンファレンス2023
TOPPERSプロジェクト基礎１，２，３
通信教材と新教材について

ＴＯＰＰＥＲＳプロジェクト教育ＷＧ 主査

竹内良輔
2023/05/20

オープンソースカンファレンス2023

1•••••

1.教育WGの活動について
2.基礎１，２，３通信講座開講
3.RASPBERRY PI PICO(W)を使った新教材
4.TOPPERS BASE PLATFORM V1.4.4
5.まとめ

教育WG活動報告2023/05/20

オープンソースカンファレンス2023

2

教育WGの活動について
TOPPERSプロジェクト教育教材MAP
新規の組込み技術
LINUX

TOPPERS BASE
PLATFORM(CV/RP) 2019年～

技術#$%

マルチCPU

上級１ 上級WIFI リファレンス

プロトコルスタック

TOPPERS BASE
PLATFORM(ST/RV)
2021年

基礎１

上級３

2022年

システム

新基礎３
基礎２

基礎HW
ETロボコン 2012年

新基礎1.5
2019年

組込み規模
小規模

中規模

大規模

アーキテクチャ設計
実装設計
開発環境

2023/05/20

オープンソースカンファレンス2023• ５つの TOPPERSBASE
PLATFORMを基点にした新基礎、上級コースの策定• 基礎HWを再作成、上級WIFIを新規作成• 教材を通信教材化する• RASPBERRY PI
PICO(W)をコアとした上級教材の開発
3

•
•
•
•
•

1.教育WGの活動について
2.基礎１，２，３通信講座開講
3.RASPBERRY PI PICO(W)を使った新教材
4.TOPPERS BASE PLATFORM V1.4.4
5.まとめ

教育WG活動報告2023/05/20

オープンソースカンファレンス2023

4基礎実装セミナー通信講座••

2021年、コロナ禍のセミナー開発不可能に対応として、通信講座の開講（2022年4月）
自分のWindowsパソコンを開発環境化するコンテンツ– TOPPERS BASE PLATFORM開発環境構築– ３つのテストプログラム•

基礎１，２，３セミナーの動画を撮影と公開– コンテンツID– セミナー動画、メール対応、認証制度•ボードセット– STM32F401 nucleo-64/TEB001/TEB002/部品セット
座学

2023/05/20

演習講座

オープンソースカンファレンス2023

動作ビデオ

5

TOPPERSセミナー講座• セミナー型教材として開発を⾏った– 実習中⼼で、ソフトウェアの開発作業を通して、組込みソフトウェア教育を⾏う– オープン・ソースの開発環境を⽤いて、実習環境を構築する• 基礎から上級まで、シームレスな教育教材をめざした– 上級コースは教材レベルが⾼い、開発環境の説明になる• C⾔語開発スキルが必要

2023/05/20

講座

概要

基礎1

ハードウェア、開発環境とベアメタル開発

基礎2

リアルタイムカーネルの解説、使い方実習

新基礎3

組込みプラットフォームの説明とミドルウェア実習

基礎HW

ブレッド・ボードを使ったハードウェア実装

上級１

マルチコアCPU、プロトコルスタック、USBミドルウェア

基礎1.5

ベアメタルのBLEデバイス開発

オープンソースカンファレンス2023

6基礎１、２、３実装講座とは• 基礎１実装セミナー– ベアメタル開発のためのセミナー– ハードウェア、ソフトウェア開発環境の解説– GPIO,TIMER,UARTドライバの作成実習• 基礎２実装セミナー– μITRON仕様リアルタイムカーネルの解説– タスク、周期ハンドラ、割込み、セマフォ、イベントフラグ、データキュー実装実習• 新基礎３実装セミナー– 組込みプラットフォーム解説(このコンテンツ⽤にTOPPERS BASEPLATFORMを作った)– ADC,SPIドライバの実装– SPIを使った、グラフィックLCD、SDカードとファイルシステムの実習

2023/05/20

オープンソースカンファレンス2023

7

募集要項
• C⾔語でプログラミングができる⽅• ワンチップ・ボードを使って、実習で組込みプログラムを⾏います• Windows10以降のパソコンをお持ちの⽅で、以下の開発環
境をパソコン上にインストールして、組込みプログラミングを⾏います。構築した環境は、他のボードでも使⽤可能です。
– MSYS2︓POSIX互換ターミナル– GCC-ARM︓ARMクロスコンパイラ– ST-LINK Utility︓フラッシュROM書込みツール– Tera Term︓COMポートターミナル• 基礎1,2⽤のプロトタイピング・シールド（TEB001）の実装は受講者が⾏います（半⽥付け不要）

2023/05/20

オープンソースカンファレンス2023

8申し込み方法• 受講の申し込み（ボードセットの購⼊）TOPPERS事務局に連絡をお願いします– 受付開始⽇時︓2022年4⽉12⽇– 連絡先︓03-6275-2981– 申し込みメール︓secretariat@toppers.jp– TOPPERS事務局住所︓• 〒104-0042 中央区⼊船１丁⽬5-11 弘報ビル 5F JASA内• 2022年4月12日に開講– すでに２０件の申し込みあり（2023年5月11日時点）– ３名の方が全講座修了、２名が基礎１終了– 2022年6月に、受講者からの問い合わせ、回答２件

2023/05/20

オープンソースカンファレンス20239

通信教材：ボードセット• 受講するためにボードセットの購⼊が必要– ２万円（管理費、教育費こみ）• ボードセットの購⼊により、専⽤Webサイトのアクセスが可能になります
ボード、部品

2023/05/20

メーカー

内容

STM32F401 Nucleo-64 STMicroelectoronix社

メインボードTEB001ボード

フラットーク株式会社

プロトタイピング・シールド

TEB002ボード

飯島委員LCD/SDカード/ジョイスティック
シールド

TEBセットアップパーツ

⽵内主査

ケーブル、SDカード、TEB001実装⽤部品等

オープンソースカンファレンス2023

10受講前の作業• 専⽤Webサイトから、「base123-mmnnyy-S.zip」をダウンロード– インストールを含め、すべて受講に必要なデータやプログラムが、この中にあります。（ボードセット中のSDカード中にも同じデータがあります）• base123-mmnnyy-S.zip 中のドキュメント「TOPPERSBASE PLATFORM開発環境構築」を参考に、パソコンへの開発環境構築とプロトタイピング・シールドへの部品実装を⾏う• 開発環境構築– ４つのツールのインストール、エディターの準備• ボード実装– ボードセット中の「TEBセットアップパーツ」の部品をブレッド・ボードに組み込む– テストプログラムにて、正しく実装できたかの確認が可能
2023/05/20

オープンソースカンファレンス2023

11

TOPPERS BASE PLATFORM開発環境構築• ツールのインストール⼿順、TEB001への実装⽅法を詳しく解説

ツールのインストール方法の解説ページ

2023/05/20

シールドへの実装方法解説ページオープンソースカンファレンス2023

12

受講の流れ• 受講者が、受講申し込みを⾏った後、以下の流れて受講が進みます• 受講を⾏うと、受講者が作ったプログラムがmy_programディレクトリに蓄積され、各講座終了時に、これを送付し修了判定を⾏います

受講者

事務局

教育WG担当申し込み
ボードセット代金支払い
IDとパスワード
準備資料や講座ビデオが参照可能になる
自分のパソコンに開発環境を構築

ボードセット

TEB001を実装し、講座受講可能に
質問・回答
講座終了

作成プログラム送付
修了証書

2023/05/20

オープンソースカンファレンス2023

合否判定

13

ボードセット• 在庫数を少なくするため、発注より2週間位発送が遅れることがあります• ⼤量の発注に対しては、納期調整が必要です• 保証期間は発送後、半年とします– 但し、状況説明をして頂き、ユーザー側で破損した場合は、部品ごとの有償交換となります– TEB001セットアップパーツは、SDカードを除き、秋⽉電⼦通商から、直接購⼊が可能なものです2023/05/20

オープンソースカンファレンス2023

14

受講者パソコン環境• Windows 10(11)を想定• 開発環境は、オープンソースとメーカー供給のツールを想定• ソフトウェア環境開発⼿順書として「TOPPERS BASEPLATFORM 開発環境構築」を⽤意する

2023/05/20

ツール

内容

供給元

MSYS2

POSIX互換ターミナルソフト

msys2.org

GNU-ARM

ARM⽤GNUクロスコンパイラ

GNU

ST-LINK Utility

ICE,仮想COMツール

STMicroelectionx

Tera Term

COM⽤ターミナル

Tera Term Project

エデッタ

エデッタ

規定せず

オープンソースカンファレンス2023

15

ユーザーズ・フォーラムでの問い合わせ• GutHub上のTOPPERSユーザーフォーラムでの受講内容の問い合わせ– 受講中に疑問が発⽣したら、上記フォーラムで問い合わせが可能（機器購⼊後、３ヶ⽉間）
クリック

2023/05/20

オープンソースカンファレンス2023

16

••
•
•
•

1.教育WGの活動について
2.基礎１，２，３通信講座開講
3.RASPBERRY PI PICO(W)を使った新教材
4.TOPPERS BASE PLATFORM V1.4.4
5.まとめ

教育WG活動報告2023/05/20

オープンソースカンファレンス2023

17新規通信講座：新上級、上級WIFI講座の開発• ハードウェアプラットフォームの変更– STM32F401 Nucleo-64からRASPBERRY PI PICO(W)を使ったボードに移⾏• PICOのArduinoコネクタの対応により、上級コースを含む教育WGのすべてのコンテンツに対応が可能– 新ボードの開発(TEB003)• PICOにより、USBホスト、デバイスの学習環境が作れる– USBホストを実⾏するために、既存のUSB給電ではなく、外部からの給電が必要→TEB003で対応• PICOWの対応により、低価格でWIFIプロトコルスタックの学習環境が作れる

2023/05/20

オープンソースカンファレンス2023

18

FMPカーネルに対応• FMPカーネル版では、２つのCOREがタスクモードで実⾏– 通常アプリをCORE0にlwIPをCORE1に割付て実⾏• PICO Wのcyw43通信はCPU負荷が⼤きい、これをCORE1に割り付けて実⾏するため、スムーズが実⾏が可能、加えて２コアでのカーネル通信が可能

２つのUARTを使ってSAMPLE1の実行表示

2023/05/20

オープンソースカンファレンス202319

PICO-SDKとTOPPERS BASE PLATFORMの比較• PICO-SDKでは、USBやWIFIはtiny-USB/lwIPをベアメタ
ル環境に取り込んで開発を⾏う– lwIPでは、基本実装がLinux環境なので、SDK側で⼤幅な変更が発⽣してる• BASE PLATFORMがportsがLinux型なので、そのままの形で実装が可能• PICO W以外のボードでも、MAC/WIFIドライバ以外が共通で動作する– tinyUSBホストでは、複数のクラス実⾏がベアメタル型実装対応なので複雑• BASE PLATFORMのUSBモジュールはスレッド対応型なので、ここに機能分割してがわかりやすい• PICO以外のボードでも、URBドライバ以外はすべて共通• BASE PLATFORMのlwIP/USBは他のボードでも共通に使⽤できる– STM系の各ボード、Longan-nano、CycloneV等で共通で動作し、差異はpdicのみ• SPI、I2C等のモジュールでも、GDIC部は共通なのでボードに関係なく、アプリ等も共通化可能

2023/05/20

オープンソースカンファレンス2023

20

PICO(W)用Atduinoコネクタボード(TEB003)の開発••••

教育WGのシールドをRASPBERRY PI PICO(W)に使用するために、Arduinoコネクタ対応ボードを開発します
これにより、上級コンテンツを含め教育WGのコンテンツを、TEB003で対応することが可能になります
ユニバーサル基板で作成し、正式ボード作成中部品（2,400円位）をDIP半田付けして完成予定

試作回路図を作成

2023/05/20

ユニバーサル基板で試作

オープンソースカンファレンス2023

基盤回路図を作成

21

TEB003ボードの開発• ボード制作

2023/05/20

オープンソースカンファレンス2023

22

TEB003ボードの開発
• 部品表
名称

型番単価

個数

部品代

Raspberry Pi PICO

M-16132730

1730

細ピンヘッダ 1x20 (20P)

C-0439820240

細ピンヘッダ 1x3 (3P) (10個入)

C-04391515

ＣＨ３４０Ｅ ＵＳＢシリアル変換モジュール Ｔｙｐｅ－Ｃ

K-14745550

1550

USBtype-CコネクタDIP化キット

K-13080350

1350

ARDUINO用ピンソケット 10P+8P FH-10+8-S

C-17504

80

180

ARDUINO用ピンソケット 8P+6P FH-8+6-S

C-1750370

170

ピンソケット（メス） 1x20 (20P)

C-03077

50

2100

ピンソケット（メス） 1x6 (6P)

C-03784

20

220

ピンソケット（メス） 1x6 (6P)赤C-10284

20

140

ピンソケット（メス） 1x6(6P)青C-10286

20120

DISP-SW 4P-00586

60

120

プラスチックナット＋連結スペーサー10mmセット

P-01864

100160タクトスイッチ（黄色）P-0365010110

セラミックコンデンサ 0.01μF

P-02281100

1100

抵抗10KΩ 1/6W

R-16103

1001100

抵抗100Ω 1/4W

R-25101

100

1100
2395

2023/05/20

オープンソースカンファレンス2023

23

新規セミナー：基礎HW• 通信講座化により、新しいコンテンツが通信講座としてセミナー化しやすくなる• ハードウェアプラットフォームの変更– GR-SAKURA→STM32F401 nucleo-64→PICO Arduino
ボード

ブレッドボード上に回路を作成し、プログラムを作成し、個々のデバイスを制御していく講座
STM32F401 nucleo-64
コンテンツ
2023/05/20

オープンソースカンファレンス2023

PICO Arduinoユニバーサ
ル・ボード コンテンツ

24

新規セミナー：新上級１• 上級１（２⽇）をPICO+TEB003で作り直す• FMPカーネルとUSBデバイス、ホストに特化した実習– USBの解説と組込みUSBのソフトウェア開発体験ができます

１日目２日目

ハードウェア設定とプラットフォーム

USB デバイスアプリの作成

開発環境とハードウェアの検証

USBデバイスHIDジョイステック対応

1.0時間

TOPPERS/FMPカーネルの導入

USBデバイスCRCの作成

0.5時間

タスクモニタの対応

SAMPLE1の改造

1.5時間

USBデバイスの実行

USBホストの解説

0.5時間

まとめ

USB MSCアプリの作成(予定)

2.0時間

まとめ
2023/05/20

オープンソースカンファレンス2023

25

新規セミナー：新上級１• 上級１２⽇⽬、SAMPLE1演習では、TEB003上のUSBシリアルとUSBデバイスCDCを⽤いて、２コアのシリアル表⽰を⾃作できます2023/05/20

オープンソースカンファレンス2023

26

••
•
•
•

1.教育WGの活動について
2.基礎１，２，３通信講座開講
3.RASPBERRY PI PICO(W)を使った新教材
4.TOPPERS BASE PLATFORM V1.4.4
5.まとめ

教育WG活動報告2023/05/20

オープンソースカンファレンス2023

27

TOPPERS BASE PLAFORM• TOPPERS BASE PLATFORMは組込みソフトウェア・プ
ラットフォーム教材として、教育WGが開発したソフトウェア・プラットフォームです• 2018年から開発成果物として、公開を始めた• ２つのTOPPERSカーネルに対応– Cortex-M：ASPカーネル• STMicroelectronix系ボード：23と、PICO(W)とOM13058に対応• RISC/V系ボード：4つに対応• EFINIXのsapphire-socを追加– Cortex-A:FMPカーネル• Intel Cyclone/Vボードに対応• RASPBERRY PI PICO(W)に対応• 2023年のリリースでは、上級教材用にRASPBERRY PI
PICO(W)に対応、ST/RV/RP V1.4.4、CV/RP V1.1.4にて、ASPとFMPの２つのカーネル上での実行を可能にした⇒2023年６月に公開予定
2023/05/20

オープンソースカンファレンス202328

実行環境•Windowsで開発するための必要ツール– ターミナルソフト• Cygwin• MSYS2– コンパイラ• GCC-ARM（asp3:v3.81、FreeRTOS:v10.2.1でも動作）– シリアルターミナル• Tera Term

– ボードメーカーのツール• STM32F401 Nucleo-64の場合：STM32 ST-LINK UtilityまたはSTM32CubeProgrammer•

2023/05/20

Linux環境での評価は、継続して行う予定

オープンソースカンファレンス2023

29

RASPBERRY PI PICO(W)をPDICドライバ•2023/05/20

PDICドライバはasp/fmpの両方に対応。但し、サンプルプログラムは基本として、どちらか一方に用意（サンプルがなくても、対応したサンプルプログラムを見れば簡単に作れる）
種類

ソース

内容

サンプル

devicedevice.cfg
device.hdevice.c

GPIO/DMA/RTC/WDOGのドライバ

MON(asp/fmp)

adc

adc.h
adc.c

ADコンバータドライバ

ADC(asp)

i2c

i2c.h
i2c.c

I2CドライバI2C_SLAVE,i2cshield(asp)pinmodepinmode.hpinmode.cArduinoコネクタからPICOのGPIOへの変換関数(asp/fmp)

pio_spi

pio_spi.h
pio_spi.ccyw43通信用のSPIドライバ

WIFI(fmp/PI
CO Wのみ)

pwm

pwm.h
pwm.c

PWMドライバPWM(asp)

spispi.h
spi.c

SPIドライバ、DMAと割込みの両対応

iwhishield,ulc
dshield/SPI

オープンソースカンファレンス202330

RASPBERRY PI PICO(W)をPDICドライバ•••

2023/05/20

PICOのUSBは、デバイスとホストを選択して実行が可能
基本動作はURB手順
どちらのカーネルでも、実行可能だが、サンプルプログラムはfmpのみ種類

ソース

内容

サンプル

usb_device

usb_device.h
usb_device.c

USBデバイスドライバ

USBD(fmp)

usb_host

usb_host.h
usb_host.c

USBホストドライバ

USBH(fmp)

オープンソースカンファレンス2023

31

TOPPERS USBモジュール•USBはBASE PLATFORM中のUSBモジュールを使用して実装– URBデータをGDICの各ドライバを用いて変換– USBモジュールは、ボードに依存しない• gdic/usb_deviceはSTMやRISC-V/longan-nanoと共通

USB
Hardware(PICO)

2023/05/20

usb_device

usb_device

deviceusb_host

usb_host

host

pdic

gdic

オープンソースカンファレンス2023

usb32

PICO WのWIFI通信••

PICO Wはcyw43439との通信にてWIFI機能に対応している
cyw43439はInfineon Technologies社のWIFI/Bluetoothコアである– 通信はSPIまたはSDIOであるが、初期設定でファームウェアをダウンロードすることにより、通信手順も変更が可能である– PICO Wでは、SCLK/CS/WL_REG/INOUTのデータピンで通信を行う•••

SPIの場合、INとOUTのデータピンは別であるが、双方向通信を行わないため１ピンで対応している

cyw43用のGDICをgdic/cyw43に用意する
GDICを介することにより、既存(V1.X.2)のlwIPモジュールを見変更
で対応している

CYW43

PIO_SPI(PICO W)
GPIO/23,24,25.29p
in2023/05/20

CYW43

WIFI
Toppersports
functionsCyw43
functions

pdic

gdic

オープンソースカンファレンス2023

lwIP
lwIP module
ports/
topperslwip

33

その他の対応• lwIPがV2.1.2からV2.1.3にバージョンアップ
– asp/fmp環境とも、バージョンアップに対応• STMボード以外でも、USBデバイスのサンプルプログラ
ムを用意

TEB003ボード上で、lwIP2.1.3を実行
複数のネットアプリが並列実行している2023/05/20

オープンソースカンファレンス2023

34

••••
•

1.教育WGの活動について
2.基礎１，２，３通信講座開講
3.今期開発の通信講座
4.TOPPERS BASE PLATFORM
5.まとめ

教育WG活動報告2023/05/20

オープンソースカンファレンス2023

35

TOPPERS教育セミナーのまとめ• セミナーコンテンツの内容– HowTo系の教育内容– 開発ボード上でリアルタイムOSの使用方法– デバイスドライバの開発、デバッグ手段の教育– 組込みのアーキテクチャ設計、実装教育、開発環境の説明と体験に主眼をおいたセミナー内容• 開発スケジュール（過去の開発）– 初級・中級実装セミナーコンテンツ開発(2005年)– 基礎１，２セミナーコンテンツ開発(2009年)– 基礎HWセミナーコンテンツ開発(2016年)– 新基礎２，３セミナーコンテンツ開発(2018年)– 上級セミナーコンテンツ開発(2019年)• 通信講座開設– 基礎１，２，３通信講座を2022年4月に開講– 新規の通信講座の開発

2023/05/20

オープンソースカンファレンス2023

36

TOPPERS BASE PLATFORMのまとめ• 組込みソフトウェア・プラットフォーム教材として作成– 2018年に開発成果物として一般公開• 開発スケジュール（過去の開発）– V1.3.0:USBミドルウェアの対応(2018年)– V1.X.0:GDIC,グラフィックUIモジュールの対応
RISC/Vの対応(2019年)– V1.X.1:漢字フォント、WIFI対応(2020年)– V1.X.2:リファレンスアプリ：BLEリモートに対応(2021年)– V1.X.3:RTOS隠蔽化技術の対応• ASP3/FreeRTOSの対応• TOPPERS BASE PLAFORM(ST/RV/RP)1.4.4(CV/RP)1.1.4– RASPBERRY PI PICO(W)に対応したRPを追加– OM13058/SAPPHIRE-SOCの対応– PICO(W)に対応したTEB003の開発– TEB003を使って、基礎から上級まで対応可能なPICO(W)ドライバを用意
2023/05/20

オープンソースカンファレンス2023

37