（第 42 号 2022 年 4 月 4 日発行)

TOPPERS Project Newsletter■ TOPPERS プロジェクト■

TOPPERRS コンテスト受賞作品紹介
今号では、昨年度の TOPPERS コンテスト受賞者 2 名に受賞作品を紹介いただきます。
今年度も TOPPERS コンテストを実施する予定ですので奮って応募ください。詳細は、後日 TOPPERS ホームページなどでアナウンスいたします。

▶「Raspberry Pi Pico への TOPPERS/ASP の移植」の紹介(石岡之也)■移植の背景CQ 出版社 Interface 誌編集者より Raspberry Pi Pico（以後 Pico）の記事を書かないかとの依頼があり、過去のコンテスト入賞経験から TOPPES/ASP を移植することとなりました。Pico に使われている CPU の RP2040 はコアが Cortex-M0+ で、TOPPERS/ASP が提供する stm32l073nucleo64_gcc の CPU、STM32L073RZT6U
が同じ Cortex-M0+ であり、このコードを流用して RP2040 へ対応できるであろうと想定して移植をトライしました。
■CPU 対応のポイント
TOPPERS/ASPやTOPPERS の他のRTOS の移植をしたことはありませんでしたが、仕事で他の RTOS の移植した経験から以下の６つの作業で移植できると考えました。
①CPU や評価ボードの初期化②タスク切り替え用の CPU 用のコンテキストスイッチ③CPU 用の例外、割り込み処理④CPU や評価ボード用の Systick タイマ⑤CPU や評価ボード用のメモリ割り当て⑥syslog などで使う UART 入出力（TOPPERS/ASP 特有）
各作業を検討したところ、今回の移植では CPU コアが同じなので①、⑤、⑥の３つの作業で移植ができると判断しました。
コンテキストスイッチや例外、割り込み処理はアセンブラを使っての実装が必要な部分で RTOS の移植で難しい部分ですが、Pico-SDK のコードの流用で移植を容易に行うことができました。
■移植作業
ボードの初期化や UART 入出力は通常、CPU のデータシートを参照しながらの作業が必要になりますが、Pico は初期化コードやデバイスアクセス処理のサブルーチン群が Pico-SDK として提供され、このサブルーチンを流用、改造して①、⑥の対応を行っています。
なお、RP2040 は 1CPU 内に 2 コアあり初期化処理の先頭で 1 コアを止める処理を追加しています。
実装は /asp/arch/arm_m_gcc ディレクトリ配下にPico 専用の picoディレクトリを作成し、Pico-SDK のサブルーチン呼出しや UARTの割り込み番号を定義しています。
⑤のメモリ割り当ては、TOPPERS/ASP 内のリンカスクリプトのROM、RAM アドレスとサイズを変更します。
ROM (rx) : ORIGIN = 0x10000000, LENGTH = 2048k
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 256k
また、
Pico-SDK 提供の初期化コードではCPU クロックが125MHzとなっていますが、CPU の最高クロックが 133MHz であることから 133MHz で動作させるための改造も行っています。
■ブートローダ対応
CPU への移植としてはここまでの作業で対応できていますが、
RP2040 は Flash メモリの先頭にブートコードを配置する必要があ

TOPPERS カーネル開発ロードマップ

目次
TOPPERRS コンテスト受賞作品紹介.......................................... 1▶「Raspberry Pi Pico への TOPPERS/ASP の移植」の紹介(石岡之也) ................................................................................... 1▶TOPPERS/ASP を用いた Azure IoT アプリ (手塚湧太郎) ........ 1
教育 WG の活動紹介 ................................................................... 2
箱庭 WG の活動紹介................................................................... 2
ホームネットワーク WG の活動紹介 ............................................ 3
TECS WG の活動状況.................................................................. 3
TOPPERS カンファレンス 2022.................................................. 3
TOPPERS プロジェクト第 20 回通常総会 ................................... 3
TOPPERS of the YEAR 2022 ...................................................... 4
ET & IoT WEST 2022 出展のご案内............................................ 4
SWEST24 と LED-Camp10 開催について................................... 4
参加のお誘い................................................................................ 4
お問い合わせ先 ............................................................................ 4
るため、Pico-SDK をビルドすると生成されるアセンブラソース
ファイルを/asp/arch/arm_m_gcc/pico へ配置して Makefile へ加えています。
■TOPPERS/ASP の動作について
TOPPERS/ASP が提供する sample1.c で TASK1、TASK2、TASK3の状態をコンソールへ出力、および、コンソール入力から状態変更ができることを確認しています。
また、コンソールの受信割り込みで GPIO12 を ON/OFF、送信割り込みで GPIO13 を ON/OFF するデバッグコードが入れてあり、各ポートへ LED などを付けることで割り込み発生状況の確認ができます。

▶TOPPERS/ASP を用いた Azure IoT アプリ(手塚湧太郎)今回のコンテスト応募させていただいた作品の開発背景について説明いたします。開発背景として、組込みシステムにおいてますますIoT 技術が注目されており、IoT を活用するプラットフォームとして「Azure IoT」が利用されています。Azure IoT を利用できること
で TOPPERS OS の新たな可能性を示すことを狙いとしています。

次にアプリの概要について説明します。Wio Terminal というマイコンを用いて、ZUMO というロボットでの走行制御を行うとともに、その走行データの一部を Azure IoT 上に蓄積するアプリです。
方眼のコースを用意し、コマンドを入力するとライントレース走行し、座標ごとのジャイロセンサの値をAzure IoT に送信します。
ASPによって、メインタスク、走行タスク、データ送信タスクを管理しています。
メインタスクは起動時に一度実行され、WiFi 接続とコマンド入力を実行します。
WiFi接続およびコマンド入力はseeed wikiのスケッチブックをもとに作成しています。
走行タスクはZumo のリフレクタセンサを用いてライントレースを行います。今回は Zumo による走行を開発しましたが、この走行タスクをさまざまな用途に合わせて変更することで IoT アプリの新たな利用に対応できると考えています。
データ送信タスクは、ジャイロセンサの値をテキストデータとしてAzure IoT に送信します。送信されたデータは Azure IoT Explorerで確認することができます。開発では以下のサイトを参考に作成しました。
(https://matsujirushi.hatenablog.jp/entry/2020/08/10/222132)
今回はテキストデータとしてデータを送信しておりますが、AzureSDK for Embedded Cを利用することでAzure IoT上で様々な機能を実現することができます。今回使用した wio terminal はサードパーティ製品であるため、大変そうだったため実現していません。
最後に、銀賞を受賞することができ、大変ありがたく思っています。
今回のコンテストを通し、組込みアプリケーション開発の楽しさ、大変さを肌で感じることができました。

教育 WG の活動紹介
今年もコロナ禍で、毎年行っていた基礎実装セミナーが開催できない状況が続いています。教育 WG では、自宅で組込みソフトウェア開発を学べる基礎1、2、3 セミナーの通信教育講座を開設しました。
通信講座の案内は以下の URL から間もなく公開します。
https://www.toppers.jp/~toppers/out_toppers/edu-base.html
この講座は、TOPPERS 事務局に申し込みを行い、ボードセットを購入することで受講が可能になります。ボードセットには、通信講座で使用するボードや部品が入っています。同時に、事務局から通信講座専用の Web ページの URL とアクセス権が送られます。
受講者は、ご自宅のパソコンに開発環境をインストールし、ボードセット中のプロトタイプ・シールドを完成させることで（半田付け不要）、受講が可能になります。ダウンロードした教材、または、ボードセット中の SD カード中に、インストール用のマニュアルやプロトタイプ・シールドへの部品実装方法が詳しく記載されています。また、完成したプロトタイプ・シールドをテストするテストプ
ログラムも同梱されています。
通信講座専用の Web ページには、講師によるコンテンツの解説動画、教材のプログラム作成動画、実行動画が掲載されていますので自分のスケジュールに合わせての受講が可能です。各講座単位に、受講に沿って、プログラムの作成や実行を行っていくと、受講者が作成したプログラムを保存する my_program が作成されますので、my_program を事務局に送り、教育 WG の担当者による検証を行い、合格レベルと判定されれば、各講座毎の修了証書を発行致します。
各講座のビデオは、セミナー単位で 8～10 時間位となっています。
購入から 3 ヶ月は、TOPPERS ユーザーズフォーラムにて Q&A の問い合わせが可能ですので、講座の内容に関して分からない点が発生した場合は、ご活用ください。
各セミナーの内容は以下の通りです。

基礎 1：ベアメタル開発、ハードウェア、ソフトウェア開発環境
LED,スイッチ,タイマー,UART 実習
基礎 2：リアルタイムカーネル、タスク、同期通信実習
基礎 3：組込みプラットフォーム、ADC,SPI,グラフィック LCD,ファイルシステム実習
通信講座に奮って参加をお願いします。

箱庭 WG の活動紹介■ 箱庭もくもく会、始めました！
箱庭の活動は各々メンバーが好きな時間に行っていますが、週末に活動しているメンバーが多いです。そのため週末はそれぞれ担当していることや新しく「作ってみたい！」と思ったことをコミュニケーションツールである Slack に書き込んだり、Twitter で出来上がった成果をツイートして発信しています。まとまった時間で活動する事も多く、オンラインで集まったメンバーと雑談しながらコーディングしていることもあります。
箱庭ではこれまで年 2 回のペースで合宿を行ってきましたが、コロナ禍でオンライン開催が続き、議論をする場所だけでなくまとまった作業をする時間を合宿とは別に取った方がモチベーションが続くのではという意見がでてきました。それなら WG 活動の広報もかねて公開もくもく会として開催したらどうだろうということになりました。運営委員会にもくもく会公開開催の趣旨を伝えて了解を得ることができ、第 1 回の箱庭もくもく会を新春の 1 月 2 日に開催する運びとなりました。
正月 2 日で準備はバタバタ、帰省先でネット環境が普段と違うなどありましたが、思った以上にメンバー以外からもご参加いただき、箱庭単体シミュレータの使い方や ROS 版箱庭の導入方法、Kubernetes in Docker (kind) など新しい技術の話などあっという間に楽しい時間を過ごすことができました。
箱庭もくもく会は不定期開催ですが、月 1 くらいのペースでは行っていますので、ご興味のあるかたは、connpass のメンバーになってもらえると次の開催情報がキャッチできます。
（https://hakoniwa.connpass.com/）。

■ メタバースで箱庭・ TECS2Mruby ブリッジ
箱庭コンセプトである「箱の中に、様々なモノをみんなの好みで配・ mruby3.1 紹介置して、いろいろ試せる！」というのは頭では分かるのですが実際
・ mrubyVM コンポーネントのハンズオン紹介にどうやって実現するのかメンバーと話し合っています。Unity 環▪ カーネル対応セッション
境で可視化を進めていますが、メタバースが注目を浴びている技術
・ TOPPERS/HRMP3, FMP3 の TECS 対応
であり、Unity も Oculus 対応しているので VR で箱庭を可視化し▪ 夜のセッションてみようということで、着想は箱庭の活動当初からあったのですが、・ TOPPERS カーネルのクラスについて第 3 回の箱庭もくもく会でとりかかりました。そのままでは Unity
・ Fuzzing Test の TECS 対応についてのビルドができなかったため、もくもく会開催中には終わることは▪ 学生研究報告セッション
できませんでしたが、メンバーからのサポートもありビルドができ・ ECHONET Lite 用 TECS コンポーネント生成て TurtleBot3 が VR の中で動いているのをみることができました。
・ TOPPERS/FMP3 + TECS の RPC 対応について
現在は Photon というマルチプレイが行えるアセットを導入したり、▪ 次世代検討セッション
複数のロボットを ROS2 で通信する環境を整えたりしています。
・ TECS V2 へ向けて日々アップデートを行っていますが、パッケージでの提供も考えて・ TECS ジェネレータのテスト環境についていますのでご期待ください。
・ 新しい評価環境について
これまで TECS では様々な機構を実現してきました。引き続き、
https://toppers.github.io/hakoniwa/
各種カーネルへの対応や、種々の通信モデルへの対応など、まだ実現していない機構の開発に取り組んでいきます。
ホームネットワーク WG の活動紹介
一方で、成熟しつつある TECS を再定義する試みにも取り組み始め
ホームネットワークＷＧでは、TOPPERS から提供しているようとしています。例えば、これまでの TECS は詳細設計を表現TCP/IP プロトコルスタックの TINET について Fuzzing テストをする道具でしたが、もう少し抽象的な表現が可能になると、設計の行っています。近年 IoT 機器の脆弱性発見の報告をよく見かけるよより早い段階から用いることができます。今後とも、いろんなアイうになり、TINET についても脆弱性に関して関心が高まっていまデアで TECS を進化させていきます。
す。ＷＧの取り組みとして TINET の検証を行おうと考えました。
ご興味をお持ちの皆様、ぜひ TECS WG の活動にご参加ください。
テスト方法をいくつか検討して、TINET の中身を詳しく知らなくお待ちしております。ても扱える Fussing テストから始めることにし、オープンソースで提供される libFuzzer を使用することにしました。現在 4 種類のTOPPERS カンファレンス 2022
Fuzzing テストを公開しています。
TOPPERS カンファレンス 2022 は、6 月 10 日（金）に開催いたし
https://github.com/toppers/TINETFuzzer
実機は使わずに Windows アプリとして、Visual Studio でビルド実ます。
行するものでテストしています。
会場は、大田区産業プラザ（PiO）を予定しておりますが、オンラ
1 つ目は、Ethernet に libFuzzer で生成されるランダムデータを入インとのハイブリッド開催も想定しております。
力し、アドレスサニタイザーで不正なバッファ操作を検出するもの
大田区産業プラザ：東京都大田区南蒲田 1-20-20です。
http://www.pio-ota.net/access/2 つ目は、TCP 通信を 2 つのタスク間で Loopback インターフェイ
特別講演として、東海大学情報通信学部教授の渡辺晴美氏による「今、スを介して通信するもので、TCP の途中のパケットの順番を変えて変革の時！データに基づいた現在から未来を思考する」及び OPENも、正常に通信できるかを確認します。
HUB 代表 戸松 正剛氏による「Smart World 実現に向けた新たな3 つ目は、2 つ目と同じですが、スレッドサニタイザーを使用して事業共創プログラム『OPEN HUB for Smart World』のご紹介（仮）」データ競合を検出するもので、pthread を使うため WSL 上で動作の 2 講演を企画しております。
させるようになっています。
ハイブリッド想定ということで、今年も 1 ストリーム構成とし、4 つ目は、TOPPERS の Github のユーザーフォーラムに投稿されTOPPERS に関連した話題を多く取り上げる予定です。高田会長にたARPに関する問い合わせに対する確認を行うためのテストです。 よる基調講演、箱庭 WG をはじめとした活発な活動・最新技術の紹介などの企画を進めています。
https://github.com/toppers/users-forum/discussions/60
実際に TINET の脆弱性が見つかっていますので、TOPPERS の久しぶりに皆様と会場でお会いできるのを楽しみにしております。
Github にて TINET の修正を公開しています。
詳細は、今後の情報公開をお待ちください。
https://github.com/toppers/TINET
今後も、テストを増やしていき TINET の品質向上を目指します。

TOPPERS プロジェクト第 20 回通常総会

TECS WG の活動状況
TECS WG では、毎年春と秋に合宿を行っていますが、この春も 3 年連続でオンラインの合宿となりました。今回も盛況で、協業している軽量 Ruby フォーラムからの参加を含め、12 名の方にご参加いただきました。
議論した内容も盛沢山でした。各セッションのタイトルを並べただ
けでも、以下のものがあります。
▪ Mruby セッション

TOPPERS プロジェクト第 20 回総会は、6 月 10 日開催のTOPPERS カンファレンス 2022 と同日に、同じ大田区産業プラザにて開催予定です。
COVID-19 の感染状況により、オンラインでもご参加いただけるよう、また事前に議決権行使書または委任状などでご意見をいただけるよう、準備を進めています。

TOPPERS of the YEAR 2022
TOPPERS of the YEAR 2022 は、2021 年 6 月 4 日に開催された
TOPPERS カンファレンス 2021 からこれまでの 1 年間で最もTOPPERS プロジェクトに貢献した活動、成果物に与えられる賞であり、TOPPERS 正会員の投票により決定します。現在担当委員会にてノミネート作業が進行中です。
この活動、成果物をノミネートしたほうがよいというご提案がありましたら、事務局までお知らせください。
正会員の皆様には、第 20 回通常総会のご案内に同封して投票用紙をご送付いたしますので、お忘れのないよう投票くださいますようお願いいたします。

ET & IoT WEST 2022 出展のご案内
TOPPERS プロジェクトは、7 月 28 日（木）29 日（金）にグランフロント大阪コングレコンベンションセンターで開催される ET &IoT West 2022 に出展します。3 年ぶりの大阪での展示会出展となります。
昨年 11 月に横浜で開催された ET & IoT 2021 では、小規模ながら会員企業の皆様とパビリオン出展することができ、久しぶりに対面でお話することができました。今回も、ぜひ直接皆様にお目にかかり、お話できればと期待しております。
皆様のご来場をお待ちしています。
また、本年 11 月に開催予定の ET & IoT 2022 へも出展を計画しております。まもなく、TOPPERS プロジェクトと共同でパビリオン出展してくださる会員企業の募集を開始いたします。ぜひ一緒にパビリオンを盛り上げていただければと思っております。

SWEST24 と LED-Camp10 開催について
SWEST （ Summer Workshop on Embedded SystemTechnologies）は、2 回のオンライン開催を経て、3 年ぶりに 9 月 1日（木）～2 日（金）の 2 日間、下呂温泉水明館（岐阜県下呂市）での開催（ハイブリッド開催）を予定しています。ただいま、SWEST実行委員会により、企画の具体化が進行中です。
SWEST は、主に若手の大学の研究者や学生、企業の技術者が全国から集まり、組込みシステムについて徹底的に議論することを目標に掲げたワークショップです。例年約 150 名の研究者・技術者にご参加いただいています。TOPPERS プロジェクトは共催し、運営面での支援をしています。
3 年ぶりのリアル（＆ハイブリッド）開催ということで、温泉宿での一泊二日の議論の場という特色を生かしつつ、いかに議論を盛り上げていくか、2 年間のオンライン開催実績を踏まえて様々なツールやノウハウを駆使し、企画を進めております。
詳細は、以下のウェブサイトに順次情報公開してまいりますので、皆様ぜひチェックいただき、ご参加ください。
https://swest.toppers.jp/
また、例年好評を博している初学者向け短期合宿型教育実習

LED-Camp10 も SWEST に先立ち 8 月 29 日（月）～9 月 1 日（木）の 4 日間連続で連携開催します。こちらもあわせて参加をご検討く
ださい。
LED-Camp10 の情報は、以下をご参照ください。
https://swest.toppers.jp/LED-Camp/SWEST 実行委員会では、組込みシステムの分野で活躍されている企業樣に SWEST24 への協賛をお願いしています。学生の参加費補助、ワークショップの内容の充実等に活用させていただきます。組込みシステム業界全体の発展を援助するという気持ちでご協賛いただければ幸いです。 ※協賛金：1 口 5 万円
・お問い合わせ先：secretariat24@swest.toppers.jp

参加のお誘いTOPPERS プロジェクトでは、プロジェクトの趣旨に賛同してくださる方のご参加をお待ちしています。
NPO 法人の会員には、主に団体を対象とした正会員と、個人を対象とした準会員に加えて、プロジェクトに貢献していただける教育機関・公的機関・非営利団体・個人で会費を支払うことが難しい方を対象とした特別会員の制度を用意しています。TOPPERS プロ
ジェクトに何らかの形で貢献されたい方、プロジェクトで開発したソフトウェアをお使いの方、プロジェクトに興味をお持ちの方は、是非入会をご検討ください。

会員の種別
会員の種別

資 格
入会金
年会費
団体
110,000円 110,000円
正会員
個人
22,000円 22,000円
準会員 個人
5,500円
5,500円
プロジェクトに貢献があると認められる教育
特別会員
なし
なし
機関・公的機関・非営
利団体・個人

お問い合わせ先TOPPERS プロジェクトに関するご質問や入会の申込みは、下記事
務局宛にお願いします。また、プロジェクトのウェブサイト( https://www.toppers.jp/ )も、ぜひご参照ください。
編集後記
ニュースレターに最後までお付き合いいただき、ありがとうございました。社会情勢厳しい折ではございますが、皆様どうぞご自愛く
ださい。

Copyright (C) 2000 - 2022 by TOPPERS Project, Inc. All
Rights Reserved.

NPO 法人 TOPPERS プロジェクト
https://www.toppers.jp/〒104-0042 東京都中央区入船 1-5-11 弘報ビル 5F
一般社団法人組込みシステム技術協会内
TEL (03)6275-2981
Email: secretariat@toppers.jp※“TOPPERS”および TOPPERS プロジェクトのロゴは，TOPPERS プロジェクトの登録商標です※TRON は”The Real-time Operating system Nucleus”の略称,ITRON は”Industrial TRON”の略称,μITRON は”Micro Industrial TRON”の略称です.
※ 本文中の商品名およびサービス名は,各社の商標または登録商標です.