TOPPERS BASE
PLATFORMは、組込み教育用にTOPPERSプロジェクト教育ワーキングループが開発した組込みソフトウェアプラットフォームです。実装にあたっては、μITRON4.0仕様研究会のデバイスドライバ設計ガイドラインを参考に実装しました。プラットフォームとして、STマイクロエレクトロニクス社のSTM32マイクロコントローラとRISC-VとRaspberry PI PICOをターゲットに作成したTOPPERS BASE PLATFORM(ST/RV/RP)と、上級のハードウェアをターゲットとしたIntel社のCyclone V SoCをターゲットとしたTOPPERS
BASE PLATFORM(CV/RP)があります。
① 概要
STマイクロエレクトロニクス社の以下のボード上にGCC対応のTOPPERS/ASP Release 1.9.3カーネルを実装し、その上位にデバイスドライバを実装し、プラットフォームを構築しました。
| プロセッサ(型番) | 対応ボード名 |
|---|---|
| ARM Cortex-M7 | STM32F7 Discovery(STマイクロエレクトロニクス社) |
| ARM Cortex-M7 | STM32F769 Discovery kit(STマイクロエレクトロニクス社) |
| ARM Cortex-M7 | STM32F723 Discovery kit(STマイクロエレクトロニクス社) |
| ARM Cortex-M7 | STM32F746 Nucleo-144(STマイクロエレクトロニクス社) |
| ARM Cortex-M7 | STM32F767 Nucleo-144(STマイクロエレクトロニクス社) |
| ARM Cortex-M7 | STM32H743 Nucleo-144(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32F407 Discovery(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32F401 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32F446 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32F446 Nucleo-144(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32L476 Discovery(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32L476 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32L4R5 Nucleo-144(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32G431 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32G474 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M4/M0 | STM32WB55 Nucleo(STマイクロエレクトロニクス社) |
| ARM Cortex-M4/M0 | STM32WB15 Nucleo(STマイクロエレクトロニクス社) |
| ARM Cortex-M4 | STM32MP157C-DK2(STマイクロエレクトロニクス社) |
| ARM Cortex-M33 | STM32L552 Nucleo-144(STマイクロエレクトロニクス社) |
| ARM Cortex-M0 | STM32F091 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M0+ | STM32L073 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M0+ | STM32G071 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M0+ | STM32G0B1 Nucleo-64(STマイクロエレクトロニクス社) |
| ARM Cortex-M0+ | STM32LoRa Discovery(STマイクロエレクトロニクス社) |
Raspberry Pi Trading Ltd及びNXT社の以下のボード上にGCC対応のTOPPERS/ASP Release 1.9.3カーネルを実装し、その上位にデバイスドライバを実装し、プラットフォームを構築した。
| プロセッサ(型番) | 対応ボード名 |
|---|---|
| ARM Cortex-M33 | RASPBERRY PI PICO2(Raspberry Pi Trading Ltd) |
| ARM Cortex-M0+ | OML13058(NXT社) |
| ARM Cortex-M0+ | Raspberry Pi Pico W(Raspberry Pi Trading Ltd) |
RISC-V用としてSiFive社HiFive1ボード、SiPEED社MaixシリーズのK210上とLongan-nanoボード、Efinity社T120BGA324ボード及びRaspberry Pi Pico2のhazard3用にTOPPERS/ASP Release 1.9.3カーネルを実装し、その上位にデバイスドライバを実装し、プラットフォームを構築した。
| プロセッサ(型番) | 対応ボード名 |
|---|---|
| FE310-G000 | HiFive1REV-A/REV-B(SiFive社) |
| K210 | Maixシリーズ(SiPEED社) |
| GD32VF103 | Longan-nano(SiPEED社) |
| Sapphire SoC | T120BGA324(Efinity社) |
| hazard3 | RASPBERRY PI PICO2(Raspberry Pi Trading Ltd) |
② ブロック図
| BASE PLATFORM(ST) | STM32F4/F0xx STM32L4/L0xx |
STM32F7xx | Detail | 対象の講座 | |
|---|---|---|---|---|---|
| Device Driver (pdic) |
Basic Driver |
gpio | gpio | 新基礎2 | |
| dma | dma | ||||
| (timer) | (timer) | ||||
| uart | uart | ||||
Standard Driver |
i2c | i2c | CLCD/senser/eeprom | 新基礎3 (Reference Manual) |
|
| spi | spi | GLCD/SD card | |||
| adc | adc | Joy stick | |||
| (qspi) | qspi | FLASH | |||
| rtc | rtc | Clock機能 | |||
| usb OTG | usbo | MSC/HID | |||
| M7 Depend Driver |
ltdc/dsi | GLCD | 新基礎3 Reference System (Application Manual Reference Manual) |
||
| tp | |||||
| sdmmc | SD card | ||||
| audio/dfsdm | |||||
| wifi | 無線LAN | ||||
| gpic | high driver | Shield依存 | |||
| api middleware |
File System | fatfs | fatfs | FAT | |
| file library | file library | C language file | |||
| stdio | stdio | stdio | |||
| Graphic UI | ui | 文字グラフィック表示 | |||
| (Open source) library |
USB | usb meddle | USB host/dev | ||
| libjpeg(*1) | JPEG | ||||
| libmad(*1) | MP3 | ||||
| LAN | lwip(*2) | TCP/IP | |||
① 概要
Intel社のCyclone V SoCを使用した以下のボード上にGCC対応のTOPPERS/FMP Release 1.4.0カーネルを実装し、その上位にデバイスドライバを実装し、プラットフォームを構築しました。
| プロセッサ(型番) | 対応ボード名 |
|---|---|
| ARM Cortex-A9 | DE10-Nano(TerasiC社) |
| ARM Cortex-A9 | DE0-Nano-SoC(TerasiC社) |
| ARM Cortex-A9 | DK-DEV-5CSXC6Nボードキット(Intel社) |
Raspberry Pi Trading LtdのRaspberry Pico W + TEB003ボード上にGCC対応のTOPPERS/FMP Release 1.4.0カーネルを実装し、その上位にデバイスドライバを実装し、プラットフォームを構築した。
| プロセッサ(型番) | 対応ボード名 |
|---|---|
| ARM Cortex-M33 | RASPBERRY PI PICO2(Raspberry Pi Trading Ltd) |
| ARM Cortex-M0+ | Raspberry Pico W(Raspberry Pi Trading Ltd) |
② ブロック図
Cyclone V SoC
| BASE PLATFORM(CV) | ターゲットボード | Detail | 対象の講座 | |
|---|---|---|---|---|
| Device Driver | Basic Driver |
gpio | 上級1 (Reference Manual) |
|
| dma | ||||
| watch doc | ||||
| (timer) | ||||
| uart | ||||
| Standard Driver |
i2c | CLCD/senser/eeprom | ||
| spi | GLCD/SD card | |||
| sdmmc | SD card | |||
| qspi | ||||
| usb OTG | MSC/HID | |||
| emac | ethernet/PHY | |||
| FPGA Driver (*1) |
pinmode | Arduino GPIO | 上級2 (Reference Manual) |
|
| uart | Arduino UART | |||
| spi | Arduino SPI | |||
| wifi | ESP32 wifi | |||
| gdic | high driver | デバイス結合 | ||
api middleware |
File System |
fatfs | FAT | 上級1,2 |
| file library | C language file | |||
| stdio | stdio | |||
| Graphic UI | ui | 文字グラフィック表示 | ||
| (Open source) library |
USB | USBミドルウェア | ||
| lwIP (*2) | プロトコル・スタック | |||
Raspberry Pico W+TEB003ボード
| BASE PLATFORM(CV) | ターゲットボード | Detail | 対象の講座 | |
|---|---|---|---|---|
| Device Driver | Basic Driver |
gpio | 新上級1、2 | |
| dma | ||||
| watch doc | ||||
| rtc | ||||
| (uart) | カーネル用を使用 | |||
| Standard Driver |
i2c | CLCD/senser/eeprom | ||
| spi | GLCD/SD card | |||
| adc | SD card | |||
| qspi | ||||
| usb device/host | HID/MSC | |||
| pio_spi | Cyw43 | |||
| gdic | high driver | デバイス結合 | ||
api middleware |
File System |
fatfs | FAT | 新上級1,2 |
| file library | C language file | |||
| stdio | stdio | |||
| Graphic UI | ui | 文字グラフィック表示 | ||
| (Open source) library |
USB | USBミドルウェア | ||
| lwIP (*1) | プロトコル・スタック | |||
RTOSとは非依存な形でミドルウェアを提供します。この2つのミドルウェアはTOPPERSカーネルでなくとも、I/F部(GDIC等)の修正により、他のプラットフォームに移植可能です。
① ファイルシステム・ファイルライブラリ
FatFsをコアとしてFATベースファイルシステムとSTDIOに対応したC言語ファイル関数群を提供します。
TOPPERS BASE PLATFORM(ST)は、SDカード(SDMMC,SPI)、USB-MSCに対応しています。
また、TOPPERS BASE PLATFORM(CV)は、SDカード(SDMMC)とUSB-MSCに対応しています。
② USBホスト・デバイス
USBホスト、デバイス用のミドルウェアを提供します。
USBホストでは、クラスとしてHID,HUB,MSC,PRT,CDC-SERIALのサンプルコードを用意しました。
また、USBデバイスでは、HIDとCDC-SERIALのサンプルコードを用意しました。
③ lwIP プロトコル・スタック
組込み用TCP/IPプロトコル・スタックをベースにEthernetとWiFiドライバに対応。
ターゲットとなる2つのプラットフォーム用ボードは共にArduinoコネクタを持ちます。
このコネクタにArduino用のシールドを装着することにより、種々のデバイスに対応することが可能となります。
TOPPERS BASE PLATFORMでは、GDICドライバ部の拡張によりこれらのデバイスに対応します。
2つのプラットフォームに対して、API等を記載したドキュメントを提供します。
また、2つのプラットフォームは共通の開発環境上で開発が可能です。
開発構築の説明として教育教材中の「TOPPERS BASEPLATFORM 開発環境構築」を参照してください。
インストール手順等は、「TOPPERS BASE PLATFORM対応版 基礎2セミナーコンテンツ」の1日目の4章
TOPPERS/ASPの導入以降、または、「基礎3セミナーコンテンツ」の1日目の2章 ASPプラットフォーム環境構築以降を参照してください。
TOPPERS BASE PLATFORM(ST)を使用した組込み実装教材は以下の通りです。
| TOPPERS BASE PLAFORM(CV/RP):担当TOPPERS教育WG | |||||
| パッケージ | マニュアル | リリース日 | |||
|---|---|---|---|---|---|
| fmp_1.4.1_baseplatform-1.5.0.tar.gz |
V1.5.0-Reference-manual(CV) V1.5.0-Reference-manual(RP) |
2025-07-29 | |||
| fmp_1.4.0_baseplatformv1.1.6_052224.tar.gz | V1.1.6
Reference_manual(CV) V1.4.6 Reference_manual(RP) |
2024-05-22 | |||
| fmp_1.4.0_baseplatformv1.1.5_012024.tar.gz | V1.1.5 Reference_manual(CV) | 2024-01-20 | |||
| fmp_1.4.0_baseplatformv1.1.4_051923.tar.gz | V1.1.4 Reference_manual(CV) | 2023-05-19 | |||
| fmp_1.4.0_baseplatformv1.1.3_042422.tar.gz | V1.1.3 Reference_manual(CV) | 2022-04-24 | |||
| fmp_1.4.0_baseplatformv1.1.2_052421.tar.gz | V1.1.2 Reference_manual(CV) | 2021-05-24 | |||
| fmp_1.4.0_baseplatformv1.1.1_041820.tar.gz | V1.1.1 Reference_manual(CV) | 2020-04-18 | |||
| fmp_1.4.0_baseplatformv1.1.0_030419.tar.gz | V1.1.0 Reference_manual(CV) | 2019-03-04 | |||
| fmp_1.4.0_baseplatformv1.0.0_052218.tar.gz | V1.0.0 Reference_manual(CV) | 2018-06-04 | |||
| ROMモニタ:担当TOPPERS教育WG | |||||
| パッケージ | リリース日 | ||||
|---|---|---|---|---|---|
| rommon-052525.tar.gz | 2025-05-25 | ||||
| rommon-022123.tar.gz | 2023-02-21 | ||||
| rommon-011222.tar.gz | 2022-01-12 | ||||
| rommon-101520.tar.gz | 2020-10-15 | ||||
| rommon-021320.tar.gz | 2020-02-13 | ||||
| rommon-030619.tar.gz | 2019-03-06 | ||||
| rommon-051918.tar.gz | 2018-06-04 | ||||
| BLE_REMOTE androidアプリ | |||||
| パッケージ | リリース日 | ||||
|---|---|---|---|---|---|
| ble_remote2-release.apk(android 13対応) | 2024-02-26 | ||||
| ble_remote-release.apk | 2021-04-14 | ||||
| マニュアル | リリース日 | ||||
| BLE_REMOTEデバイス仕様書101.pdf | 2021-06-14 | ||||
| rNF52840用ble_remote | リリース日 | ||||
| ble_remote_17.2.zip | 2025-05-20 | ||||
| ble_remote_17.1.zip | 2024-04-26 | ||||
| RTOS隠蔽化パッケージ(ASP3/FreeRTOS) | |||||
| パッケージ | リリース日 | ||||
|---|---|---|---|---|---|
| fmp_1.4.0_baseplatformv1.1.3_042422.tar.gz | 2022-04-24 | ||||
| FreeRTOS_configurator_121422.tar.gz | 2022-12-14 | ||||
| FreeRTOS_Configurator_042422.tar.gz | 2022-04-24 | ||||
| TOPPERS BASE PLAFORM(ST)用GDICパッケージ:担当TOPPERS教育WG | |||||
| シールド名 | パッケージ | リリース日 | |||
|---|---|---|---|---|---|
| STマイクロエレクトロニクス社X-NUCLEO-IDB05A1用 | asp_x-nucleo-idb05a1-1.3.0.tar.gz | 2018-04-13 | |||
| STマイクロエレクトロニクス社X-NUCLEO-IKS01A1用 | asp_x-nucleo-iks01a1-1.3.1.tar.gz | 2019-02-08 | |||
| STマイクロエレクトロニクス社X-NUCLEO-IKS01A2用 | asp_x-nucleo-iks01a2-1.3.0.tar.gz | 2019-11-18 | |||
| STマイクロエレクトロニクス社X-NUCLEO-IKS01A1用 | asp_x-nucleo-iks01a1-1.3.0.tar.gz | 2018-04-13 | |||
雑誌記事
Interface 2016年12月号
Interface 2024年 5月号
Interface 2024年 6月号
Interface 2024年 7月号
Interface 2024年 9月号
Interface 2024年 10月号
Interface 2024年 12月号
Interface 2025年 2月号
Interface 2025年 7月号
教育WGでは、TOPPERS BASE PLATFORMの拡張、GDICドライバの開発、IoTアプリの開発、ノウハウ共有のためのメンバーを募集しています。
教育WG:組込みプラットフォーム分科会に参加して頂く形となります。
TOPPERSプロジェクト会員ならば、どなたでも参加可能です。
TOPPERS BASE PLATFORMは、TOPPERSプロジェクト教育WGにて開発を行いました。