5
4

More than 1 year has passed since last update.

12ステップで作る組込みOS自作入門 環境構築 後編(2022年8月)

Posted at

前編の続きです。今回は3と4のステップについて進めていきます。今回も丁寧に書いていきますので、分かっている方はその都度飛ばしていってください。また、間違っている場合はぜひ編集リクエストやコメントで教えてください。

前編はこちら

では後編も進めていきましょう!

3.プログラムをコンパイルし、FDTを用いてマイコンに書き込む

シリアルケーブルの接続を確認

まずはシリアルケーブルの接続を確認しましょう。
自分の使ったシリアルケーブルだと、ttyUSB0ではなくttyS0でした。書籍のp42,43を確認しながらコマンドを打ち込んでみましょう。

Ubuntu 16.04
cd ../../../../ (ルートディレクトリに戻る)
ls -l /dev/ttyS0

うまくいけば、以下のように表示されます。

Ubuntu 16.04
crw--w---- 1 root tty 4, 64 Aug 14 03:31 /div/ttyS0

うまくいかなければ、ttyS0をttyUSB0に変えて確認してみましょう。
どちらも上手くいかなかった場合、このような表示が見れると思います。

Ubuntu 16.04
ls: cannot access '/dev/ttyS0': No such file or directory

自分はこの記事を参考にしました。

まずはコンソールに以下のコマンドを打ち込みます。

Ubuntu 16.04
sudo vi /lib/udev/rules.d/50-udev-default.rules

すると50-udev-default.rulesのソースが見れると思います。26行目に

Ubuntu 16.04
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"

という文字列が見れると思います。ここにMODE="0666"を追記します。

Ubuntu 16.04
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout", MODE="0666"

vimを使ったことがない人向けのおすすめの記事

細かいことを考えたくなければ、上下キーで26行目まで下がって、左右キーで行末まで移動し、キーボードでiを押します。すると編集モードに入るので、「MODE="0666"」を打ち込み、escキーを押し、:wqで上書き保存して終了します。キーボードはUSキーボードの設定になっているため、注意してください。

このようになれば成功です。

Ubuntu 16.04
ls -l /div/ttyS0
crw--w---- 1 root tty 4, 64 Aug 14 03:31 /div/ttyS0

Makefileの編集

ではプロジェクト内のMakefileを編集していきましょう。

srcフォルダ内の01フォルダの中にあるbootloadフォルダ内を見てください。すると、main.cやstartup.sなどのファイルがあると思います。そこにMakefileがあると思います。Visual Studio Codeなどのエディタで編集しましょう。
H8WRITEのところは気にしないでください。そのままで大丈夫です。今回はFDTを用いて書き込みます。
「H8WRITE_SERDEV」のところを、先ほど確認したシリアルデバイスファイル名にします。自分の場合は/dev/ttyS0だったので、H8WRITE_SERDEV = /dev/ttyS0と書きました。
スクリーンショット (229).png
保存してエディタを閉じます。

プロジェクトのビルド

ここまで出来たら、次はプロジェクトをビルドしていきます。

Ubuntu 16.04
cd workspace/src/01/bootload
ls (ソースコードがきちんとあるか確認)
make
make image

たまにcdで「No such file or directory」のような表示が出たら、Windows側のコマンドプロンプトで、vagrant_makeosフォルダにcdして、そこでVagrant reloadして、仮想環境を再起動させましょう。自分が環境構築をしていた時に、たまにそういうことがありました。
make imageが上手くいったら、ls -lでkzloadとkzload.motがあるか確認しましょう。

Ubuntu 16.04
ls -l

確認できましたでしょうか?

フラッシュROMへ書き込む

では、フラッシュROMへの書き込みを行います。H8/3069Fマイコンボードには4連のディップスイッチがあります。電源につないでいない状態でディップスイッチを左から「ON」,「ON」,「OFF」,「ON」にします。そのあと電源につなげると、フラッシュROM書き込みモードとしてCPUが起動します。
シリアルケーブルでマイコンとPCを接続します。一瞬LEDが光って消えますが、きちんと接続されていますので安心して下さい。

では書き込みを行います。

マイコンへの書き込み

今回はFDTを用いて書き込みを行います。FDTを用いる前にh8writeやkz_h8writeなどを使いましたが、自分の環境ではうまくいきませんでした。(Makefileは正しいはずなのに、なぜかエラーを出す)
まあよく分からないので、FDTを用いて書き込んでいこうと思います。

FDTのダウンロード

ダウンロードするにはルネサスへユーザー登録する必要があります。まずは登録しておきましょう。ダウンロードは一番上の[無償評価版]で良いです。
また、インストーラーの途中で拡張子の関連付けを聞いてくるので、忘れずに「*.mot」にチェックを入れましょう。
インストールに成功したら、まずはFDTを立ち上げましょう。自分はこのサイトを参考にしました。

立ち上げたら「デバイスとカーネルの選択」でH8/3069Fを探し、選択します。
「次へ」を押したら、「通信ポート」という項目が出ると思います。Select portはWindows側で認識されているシリアルポート(デバイスマネージャーのポート(COMとLPT)の項目にて、接続しているシリアルポートがcomXと表示されているはずです。うまく表示されていなかったら指し直すか、ドライバを修復するか、再起動するかしてください)のCOMポート番号を選んでください。
自分の場合はそのままで認識されていたので、そのまま次へを押しました。
その他の設定は書籍のp45を参考にして設定してください。
うまくいけば次のような画面が出ると思います
スクリーンショット (230).png
スタートを押すと書き込みが始まります。書き込みがうまくいけば「書き込みが完了しました」とログに表示されます。
ここで、マイコンの電源を抜いた状態でマイコンを動作モードに変えます。4連のディップスイッチを「ON」,「OFF」,「ON」,「OFF」にします。

これで第3ステップが終了しました。ここまでくれば、後はシリアル通信の確認をするだけです。

4.Seristerでシリアル接続の確認

正直Teratermでもよいのですが、せっかくならGUIのSeristerを使いたいと思いましたので、インストールして使っていきます。

Seristerのダウンロード

インストール手順は簡単なので省略します。インストールが完了したら立ち上げます。
スクリーンショット (231).png
通信設定はポートがWindows側のCOMポート番号、その他ボーレートやパリティなどはp46の表1.2に準します。
「監視開始」を押し、Seristerをテキストモードにし、マイコンのリセットボタンを押すと、「Hello World!」という文字列が出てくると思います。出てくればシリアル通信は成功です!おめでとうございます!
上手くいったときはこのようになります。
スクリーンショット (226).png

これで全ステップは終了です!おめでとうございます!お疲れさまでした!!!

ここまでで上手くいっていない方へ

ここまでで上手くいっていない方がいれば、参考になるかもしれないサイトのリンクを載せておきますので、参考にしていただければ嬉しいです。Cygwinや公式のVMイメージを使ったり、WSLを使ったりといろいろやりようはあります。めげずに頑張ってください!

・公式ページ

・KOZOS友の会

・WSLで「12ステップで作る組み込みOS自作入門」の環境構築をしてHello World!してみる

・12ステップで作る組込みOS自作入門 1stステップ ~開発環境の構築

参考文献

・坂井 弘亮 12ステップで作る組込みOS自作入門 カットシステム 2010
http://kozos.jp/books/makeos/#source_code
https://qiita.com/ohno-Tk/items/c258133889d172223231
https://qiita.com/aoi70/items/b66a451f4b7f5f05beec
https://techcommunity.microsoft.com/t5/windows-11/pl2303-issues-prolific-usb-to-serial-drivers-win-11/m-p/2966957
https://imadedede.hatenablog.com/entry/2020/07/13/014241
https://to-son.net/2020/04/16/12step-wsl-environment/
https://www.avrfreaks.net/forum/prolific-pl2303ta-usb-serial-and-windows-11
https://kinneko.hatenadiary.org/entry/20140118/p2
http://memes.sakura.ne.jp/memes/?page_id=575

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4