< ホームへ戻る

Raspberry PiでTOPPERS(TRON系OS)

Raspberry Piにて、TRON系リアルタイム(RTOS)であるTOPPERS OSをベースに開発する情報です。
IoTの基盤としては、Raspberry Pi+TRONはコスト面・機能面で最高の環境となるでしょう。
TOPPERSプロジェクト(名古屋大学大学院)にて掲載されました!(2016/11/07)

raspberrypi000

2017年05月28日 更新

Raspberry Pi(2/3)用TOPPERS/FMPカーネル

rp_toppers003

Raspberry Pi 2/3(SVCモードのみ) で、TOPPERS/FMPカーネルのSampleが動作する環境です。
TOPPERS/FMPカーネルは、マルチコアで動作します。

Github の RaspberryPi_TOPPERS_FMP リポジトリ

ターゲット依存部のみなので、ターゲット非依存部と組み合わせてビルドしてください。

FAT32でフォーマットしたSDカードに、以下の3つのファイルを入れ、
Raspberry Pi 2/3 に挿入して電源を入れれば動作します。

シリアル通信は、Raspberry Piはピンヘッダより以下のように結線してください。
112500bps、データビット数8、パリティ無し、ストップビット1,フロー制御なし、です。(俗に言う112500,8N1)

とりあえずは シリアル通信でログ出力させて(デフォルトでは無効)、
Sample1 の動作を観察すると良いでしょう。

動作例1:

動作例2:

Q キーで停止します。

Raspberry Pi(Zero/1/2/3)用TOPPERS/ASP3カーネル

rp_toppers000

Raspberry Pi Zero/1/2/3 で、TOPPERS/ASP3カーネルのSampleが動作する環境です。
TOPPERS/ASP3カーネルは、1コアで動作します。

Github の RaspberryPi_TOPPERS_ASP3 リポジトリ

ターゲット依存部のみなので、ターゲット非依存部と組み合わせてビルドしてください。

FAT32でフォーマットしたSDカードに、以下の3つのファイルを入れ、
Raspberry Pi Zero/1/2/3 に挿入して電源を入れれば動作します。

シリアル通信は、Raspberry Piはピンヘッダより以下のように結線してください。
112500bps、データビット数8、パリティ無し、ストップビット1,フロー制御なし、です。(俗に言う112500,8N1)

とりあえずは シリアル通信でログ出力させて(デフォルトでは無効)、
Sample1 の動作を観察すると良いでしょう。

動作例1:

動作例2:

Q キーで停止します。

Raspberry Pi ブートローダーについて

Raspbianのfirmwareの以下の2ファイルを利用します。

ブートローダはRaspberry Pi本体を初期化して、カーネルをメモリに配置してスタートさせる動作をします。

U-Bootを挟むと動作開始環境がバラつかずに済むけど、やっぱ最小限・無制限のベアメタルでしょ。

Raspberry Pi用JTAG有効化+OpenOCD設定ファイル

rp_toppers001
rp2jtag000

Github の RaspberryPi_BareMetal/rp_jtagenable に移管しました。

レジスタ値調査

Raspberry Piの、レジスタの値を読み出したものをまとめています。

rp_toppers002

Raspberry Pi 1 Type B+ レジスタ値一覧(RP1 B+ registers list)(Excel)

Raspberry Pi 2 レジスタ値一覧(RP2 registers list)(Excel)

Raspberry Pi 1用TOPPERS/JSPカーネル

Raspberry Pi 1で、TOPPERS/JSPカーネルのSampleが動作する環境です。

jsp_rp1_150831.tar.xz

Github

Github にて、TOPPERS以外のRaspberry Piのベアメタル関連のネタを公開しております。

技術証明ファイル(TOPPERS/ASP3・FMPのRaspberry Piポーティング)

参考