H8/3069F再入門をMacでやってみようとした [プログラミング]
H8/3069Fという秋月で売っているマイコンのボードがあって、そこに組み込み的なOSを入れて動かそうという目論見。あるいは挫折。かなり前に買って、解説本を途中で読むのをやめて放置状態にありました。何か問題があったかと思われ。
H8/3069Fっていうのはこんな感じ☟
http://akizukidenshi.com/catalog/g/gK-01271/
なんか早速Appleのgccが邪魔したので、早くもMacで挫折した。MacPortsとかで別途入れればいいのだけれど、portは上手くいかない事も多いので使うのはやめた。そして、MacのVirtualBoxのUbuntu Serverで構築しようと試みる。USB接続のシリアルポートが上手く動くかどうかが不安ではある。何やっても、大事な機能を殺してもいい。そのための仮想サーバ。壊してもいいのが前提です。ここのまんまやる予定↓
http://monoist.atmarkit.co.jp/mn/articles/1103/31/news004_2.html
結論を申し上げますと、USBのでも普通に出来ました。FTDIのチップ使ってるとMacでも、Windowsでも、Linuxでも使えた気がします。このアダプタは秋月で、Linuxでも使える?ってお兄ちゃんに聞いたら、分かんないって言われたものです。安いくせにガッツリ使えますね。自作するよりよっぽどいいですわ。これだったはず☟
http://akizukidenshi.com/catalog/g/gK-01798/
GUIじゃないので、GuestAdditionが入れにくい。ただホストOSのMacからコピペしたいだけなのにね。
sudo mount /dev/scd0 /media
cd /media
sudo sh VBoxLinuxAdditions.run
あ、gccの何かが入れられないと言われた。
sudo aptitude install gcc
/var/log/vboxadd-installを見ると、makeもないだとさ。進むとカーネルヘッダもないし、X.Org関係のもないって言う。色々APTで入れたんだけれども、改善点なし。GUIがないけど、コピペでMacからURLの文字列渡す方法ってないのかな。時間がかかりすぎなので、やめておく。これなら手打ちでURLを打った方が速い。
wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.bz2
tar xjf binutils-2.21.tar.bz2
cd binutils-2.21
./configure --target=h8300-elf --disable-nls
make
sudo make install
な、感じで。
wget http://ftp.gnu.org/gnu/gcc-3.4.6.tar.bz2
tar xjf gcc-3.4.6.tar.bz2
cd gcc-3.4.6
./configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --enable-languages=c
なんかエラー出てるよ〜。どうしたら直るの〜?
あー、文字列をコピペできないと面倒すぎる。更にsshで外から入れないのも面倒くさ過ぎる。参照している、ページの下の方に64bitのLinuxはコンパイルの時にこける、との事。もう少し上の方で言ってほしいな。
32bitではデスクトップなUbuntuを使ってみた。webからのダウンロードも、Guest Additionも、ファイルの解凍も、さっくり簡単に出来ました。物の数十分で問題の場所の所まで行きました。っていうかサーバ版が面倒すぎ。でもね、collect_executeのエラーの所は同じでした。ヒドいなぁ。やはりマイナーなCPUはお座なりにしてあるのね。
64bitであれ、32bitであれ、同じエラーが出たので、ソースを改造。エラーが出ないようにしただけなので、動作がどうなるんだかは全く責任を持てません。持ちません。なので、gcc/collect2.c のopen()の引数を加えただけ。
redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, S_IREAD|S_IWRITE);
リードライトできるようにしちゃったけど、O_CREATを消すやり方の方がいいかどうかは、全然前後読んでないので分からない。とりあえず、先に進むためだけのエラー消し。エラーを消しただけで、バグを作っているのかも。そもそもコンパイルが通らないソースってのもダメだと思う。エラーを検出しないように、gccへの引数でごまかすやり方もあると思う。そっちの方がいいのかもしれない。
とりあえず、何となく事が済んだので次のページへ
http://monoist.atmarkit.co.jp/mn/articles/1103/31/news004_3.html
minicomを使った事があったような気がするので、入れてみる。
sudo aptitude install minicom
/etc/minicom があるのだけど、ディレクトリは空っぽ。設定ファイルをテキストで書くのかと思いきや、minicomのツールの中で日本語表示だとガタガタに表示されたのを見ながらやるのでした。わざわざ日本語表示にしなくてもねぇ。どうせ、ポートに/dev/ttyUSB0と、速さが9600bpsと、データ長8bitと、ストップビットが1bitで、後はデフォルトのままでいい気がした。
案外、問題がなかった。あったのはUbuntu Serverのsshでつながないスタンドアローン状態の使い悪さと、gccでコンパイルエラーが出ちゃうソースぐらいだった。時間がかかったのはその二つで、Hello World!がきちんと出ましたよ。というか、組み込みの方は一切ソースを見てないので、疲労感の割にはやり切った感がない。続いてソースがどうなっているのか見てみようと思っています。
H8/3069Fっていうのはこんな感じ☟
http://akizukidenshi.com/catalog/g/gK-01271/
なんか早速Appleのgccが邪魔したので、早くもMacで挫折した。MacPortsとかで別途入れればいいのだけれど、portは上手くいかない事も多いので使うのはやめた。そして、MacのVirtualBoxのUbuntu Serverで構築しようと試みる。USB接続のシリアルポートが上手く動くかどうかが不安ではある。何やっても、大事な機能を殺してもいい。そのための仮想サーバ。壊してもいいのが前提です。ここのまんまやる予定↓
http://monoist.atmarkit.co.jp/mn/articles/1103/31/news004_2.html
結論を申し上げますと、USBのでも普通に出来ました。FTDIのチップ使ってるとMacでも、Windowsでも、Linuxでも使えた気がします。このアダプタは秋月で、Linuxでも使える?ってお兄ちゃんに聞いたら、分かんないって言われたものです。安いくせにガッツリ使えますね。自作するよりよっぽどいいですわ。これだったはず☟
http://akizukidenshi.com/catalog/g/gK-01798/
GUIじゃないので、GuestAdditionが入れにくい。ただホストOSのMacからコピペしたいだけなのにね。
sudo mount /dev/scd0 /media
cd /media
sudo sh VBoxLinuxAdditions.run
あ、gccの何かが入れられないと言われた。
sudo aptitude install gcc
/var/log/vboxadd-installを見ると、makeもないだとさ。進むとカーネルヘッダもないし、X.Org関係のもないって言う。色々APTで入れたんだけれども、改善点なし。GUIがないけど、コピペでMacからURLの文字列渡す方法ってないのかな。時間がかかりすぎなので、やめておく。これなら手打ちでURLを打った方が速い。
wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.bz2
tar xjf binutils-2.21.tar.bz2
cd binutils-2.21
./configure --target=h8300-elf --disable-nls
make
sudo make install
な、感じで。
wget http://ftp.gnu.org/gnu/gcc-3.4.6.tar.bz2
tar xjf gcc-3.4.6.tar.bz2
cd gcc-3.4.6
./configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --enable-languages=c
なんかエラー出てるよ〜。どうしたら直るの〜?
あー、文字列をコピペできないと面倒すぎる。更にsshで外から入れないのも面倒くさ過ぎる。参照している、ページの下の方に64bitのLinuxはコンパイルの時にこける、との事。もう少し上の方で言ってほしいな。
32bitではデスクトップなUbuntuを使ってみた。webからのダウンロードも、Guest Additionも、ファイルの解凍も、さっくり簡単に出来ました。物の数十分で問題の場所の所まで行きました。っていうかサーバ版が面倒すぎ。でもね、collect_executeのエラーの所は同じでした。ヒドいなぁ。やはりマイナーなCPUはお座なりにしてあるのね。
64bitであれ、32bitであれ、同じエラーが出たので、ソースを改造。エラーが出ないようにしただけなので、動作がどうなるんだかは全く責任を持てません。持ちません。なので、gcc/collect2.c のopen()の引数を加えただけ。
redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, S_IREAD|S_IWRITE);
リードライトできるようにしちゃったけど、O_CREATを消すやり方の方がいいかどうかは、全然前後読んでないので分からない。とりあえず、先に進むためだけのエラー消し。エラーを消しただけで、バグを作っているのかも。そもそもコンパイルが通らないソースってのもダメだと思う。エラーを検出しないように、gccへの引数でごまかすやり方もあると思う。そっちの方がいいのかもしれない。
とりあえず、何となく事が済んだので次のページへ
http://monoist.atmarkit.co.jp/mn/articles/1103/31/news004_3.html
minicomを使った事があったような気がするので、入れてみる。
sudo aptitude install minicom
/etc/minicom があるのだけど、ディレクトリは空っぽ。設定ファイルをテキストで書くのかと思いきや、minicomのツールの中で日本語表示だとガタガタに表示されたのを見ながらやるのでした。わざわざ日本語表示にしなくてもねぇ。どうせ、ポートに/dev/ttyUSB0と、速さが9600bpsと、データ長8bitと、ストップビットが1bitで、後はデフォルトのままでいい気がした。
案外、問題がなかった。あったのはUbuntu Serverのsshでつながないスタンドアローン状態の使い悪さと、gccでコンパイルエラーが出ちゃうソースぐらいだった。時間がかかったのはその二つで、Hello World!がきちんと出ましたよ。というか、組み込みの方は一切ソースを見てないので、疲労感の割にはやり切った感がない。続いてソースがどうなっているのか見てみようと思っています。
タグ:組み込み
カニちゃん付きじゃないですか。うちにもありますわ。OSは入れてないけど。
最近だとmbedなんてのがソフト屋さんにはとっつきやすいかもしれませんね。開発には環境依存しないと思いますし。
by 7700 (2011-06-27 22:21)
カニさんついてますねぇ。というか、イーサネットが付いてなかったら、多分買わなかったんじゃないかなぁと思います。シリアルだけじゃあまりにも閉じているし、モチベーションも上がらないでしょうしね。
mbedですか(えむべっど、と読むのかな?)。情報ありがとうございます。今のところは、機種依存、環境依存しまくりでやった方が学ぶところが多いので、ラッパー的なソフトは後回しになっちゃいますね、多少重いでしょうし。
by miff (2011-06-28 10:54)
mbedはマイコンボードの名称です。開発をwebでやるなんとも珍妙なボードです。
シリアルだけでもXportとか使えばTCP/IPなLANもできるし、結構出来るもんですよ。
by 7700 (2011-06-28 22:24)
さっき見て来ました。汎用OSか何かだと思っていたので、ボードもひっくるめてだと思ってませんでした。USBで直に接続できるので、シリアル通信の事を考えなくてもいいのはラクチンかもしれません。アキバとか行くの面倒なので通販がいいのかなぁ。
Twitterとかも出来るって書いてあって、イーサネットのポートをハンダ付けしていたレポートもありました。ハンダづけ苦手なんですよね。今のところ、イーサネットコントローラやTCPとかをどういう風に実装するのかが気になっちゃってます。本当にフルスクラッチのOSって見た事ないので、ガッツリ全部ソースを読み込もうと思っています。
by miff (2011-06-28 23:37)