RetroBSDというプロジェクトがある。 http://retrobsd.org/wiki/doku.php
2.11BSDの組み込みマイコン向けの移植版で、MMUをもたないマイコンで動作させることが可能だ。
現在のところ、PIC32MXをサポートしている。
環境構築については、Ubuntu上でプロジェクトファイルをビルドすることができる。
カーネルはPIC32MXに焼くHEXファイルとなる。
ボードが幾つか登録されていて、使うボードに応じて基本的なコンフィグを設定する。
あと、SDカード用のイメージがある。 SDカードにはファイルシステムが入る。
自作ボードではLEDやSDカードのピン配置が異なるので、記法に従って、MAX32のカーネルコンフィグを修正してビルドしてみた。
カーネルは、ボードのブートローダーを利用して焼くことができる。 Windows上だと、コマンドラインから付属するpic32progで書き込むことになる。
オプションによってはブートローダーを経由せず、PICKIT2などを使って直接焼くことも可能だった。
電源投入から数秒間待つと、ブートメッセージのあとで、おなじみのログイン画面が出て来る。
UNIXなので、Cコンパイラまで搭載している。 実際にDhrystoneのベンチマークもサンプルに入っていて、ビルドして実行することができた。
2.11BSDの組み込みマイコン向けの移植版で、MMUをもたないマイコンで動作させることが可能だ。
現在のところ、PIC32MXをサポートしている。
環境構築については、Ubuntu上でプロジェクトファイルをビルドすることができる。
カーネルはPIC32MXに焼くHEXファイルとなる。
ボードが幾つか登録されていて、使うボードに応じて基本的なコンフィグを設定する。
あと、SDカード用のイメージがある。 SDカードにはファイルシステムが入る。
自作ボードではLEDやSDカードのピン配置が異なるので、記法に従って、MAX32のカーネルコンフィグを修正してビルドしてみた。
カーネルは、ボードのブートローダーを利用して焼くことができる。 Windows上だと、コマンドラインから付属するpic32progで書き込むことになる。
オプションによってはブートローダーを経由せず、PICKIT2などを使って直接焼くことも可能だった。
ログイン画面 |
UNIXなので、Cコンパイラまで搭載している。 実際にDhrystoneのベンチマークもサンプルに入っていて、ビルドして実行することができた。
80MHzで Dhrystoneをビルドして実行した結果 |
binの中身 TCP/IPまわりは有効化してないので動作しないものもある |
デバイスドライバを掘り下げるのは又の機会ということで、カーネルの設定で遊んでみた。
デフォルトではPIC32MXの最大周波数の80MHzで動作する。 30MHzに下げたカーネルをビルドして動作させると、処理中に50mA アイドル時24mAという消費電流になった。 最大周波数と比べればもちろん動作はもっさりしてくるけど、UNIX機としては160mW程度と、かなり省電力だ。
最近では、LiteBSDというプロジェクトも出てきた。 MMUを搭載するPIC32MZ上で、4.4BSDを実行する。 32MZはエラッタにビビってまだ使えてないけれど、時間があったら動かしてみたい。
デフォルトではPIC32MXの最大周波数の80MHzで動作する。 30MHzに下げたカーネルをビルドして動作させると、処理中に50mA アイドル時24mAという消費電流になった。 最大周波数と比べればもちろん動作はもっさりしてくるけど、UNIX機としては160mW程度と、かなり省電力だ。
最近では、LiteBSDというプロジェクトも出てきた。 MMUを搭載するPIC32MZ上で、4.4BSDを実行する。 32MZはエラッタにビビってまだ使えてないけれど、時間があったら動かしてみたい。