コピー2016.05.06この記事は約7分で読めます。Kitを使ったハンズオンセミナーに参加してきたのですが、そのハンズオンでの楽しさと最近のIoTの盛り上がりに触発されたこともあって、随分前に購入して棚の奥で眠っていたH8-3067マイコンを引っ張り出し、来たるべくIoT時代に備えマイコンプログラミングに再挑戦してみたいと思います(ちなみに、以前はちょっと触っただけで終わってしまっていた)。ちなみに、私の持っているマイコンは以下です。お値段はそこそこします。578,418Amazon.co.jpで詳細を見るなんだが基盤をそのまま触るのもあれかと思い、弁当箱のフタにビス止めして取り付けています。使わないときはフタを閉めてコンパクトに収納でき、さらに埃も防げて重宝しています。参考リンク・書籍クロスコンパイル環境の構築まず最初に、H8-3067マイコン上で動作するプログラムを開発する環境を構築します。「H8マイコンによる〜」本では、マイコンのスタータキット付属のCDに収録されている開発環境を使ってWindows上でのプログラム開発を行なうスタイルを想定したものになっていますが、私の所有しているマシンはMacなので今回はMac上で開発できる環境を構築したいと思います。参考にさせていただきました書籍は、参考リンクの12ステップ本です。コンパイラはgccを使います。GCCのビルドに必要なライブラリgccをソースからビルドするにあたって、以下の依存ライブラリが必要になります。GCCgcc.gnu.orgGMPhttps://gmplib.orgMPFRhttp://www.mpfr.orgMPChttp://www.multiprecision.org/index.php?prog=mpcislGCC他のビルド今回は、$HOME/workspace/h8-3067/toolsというディレクトリにソフトウェアライブラリをインストールしていきます。installgccコンパイル時のオプションは、以下のページを参考にさせていただきました。install私の環境では、sspがenableだとエラーになったため上記では無効にしています。h8writeマイコンボードのROMにプログラムを書き込むにあたっては、h8write.cというプログラムを公開してくださっている方がいらっしゃるので、そちらを利用させていただきました。writermes.osdn.jpビルドは簡単で単純に1ソースファイルをビルドするだけです。h8writeh8writeの使用方法はhelpを見れば大体分かりますが、例えばH8-3067CPU向けには以下のようにして実行します。デバイスファイルには、USB-RS232C変換ケーブルをPCに接続した時に認識されるデバイスファイルを指定します。<デバイスファイル>簡単なサンプルを実行してみるクロスコンパイル環境を整えたので、実際にプログラミングして何か動作させてみます。マイコンキットにはLEDが付いているので、今回はLEDを点灯させてみたいと思います。参考にさせていただいた情報は、参考リンク・書籍に掲載しています。今回用意したファイルは以下になります。最小限のプログラムでLEDを点灯させることが目標です。startup.smain.cファイル先頭に定義しているマクロは、I/Oポートのレジスタのアドレスを指定しています。このアドレスにアクセスすることでI/Oポートを制御することができるようになっています。ポート5、AのレジスタをそれぞれP5xx、PAxxとしています。端子PA2、PA3にLEDが接続されており、mainのループの中でスイッチの開閉によってレジスタの値を変更しています。0;}startup.sスタックポインタだけ指定してmainにジャンプさせています。スタックポインタのアドレスは、モード7で動作させたメモリマップを参考に指定しています。1bld.xベクタ領域の先頭にstartルーチンを指定しています。ROM領域は0x00100番地から始まるので、セクション.textの開始アドレスを0x00100に指定しています。{*(.bss)*(COMMON)}}H8-3067製品ページのマニュアル参照http://japan.renesas.com/products/mpumcu/h8/h8300h/h83067/Documentation.jspjapan.renesas.comMakefile省略。12ステップ本を参考。IDEで開発するのに比べるとハードルは高かったですが、リンカスクリプトやアセンブラ、メモリマップなどローレベルの仕組みを理解することができるので非常に勉強になると思います。最初は、わからないことだらけでしんどいですが、自分自身わからないなりに色々と調べながら手を動かしていく中で少しずつ理解できるようになってきたように思います。引き続きここで立ち止まらず、12ステップ本やH8本を参考にH8マイコンで遊んでみたいと思います。見つかりませんでした。コメントをキャンセルメールアドレスが公開されることはありません。»タイトルとURLをコピーしました。