夜空日和 [出張版]

星を見上げながら、今日を語ってみようか

 

スポンサーサイト


Category: スポンサー広告   Tags: ---
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[H8] OS自作本の環境構築


Category: 技術   Tags: ---
「開発環境構築に1週間かかる呪い」は恐ろしい・・・


12ステップで作る組込みOS自作入門12ステップで作る組込みOS自作入門
(2010/05)
坂井 弘亮

商品詳細を見る

久々にマイコンをいじろうと思い、それならばと、この本を選んだのが10日前。

見事に、環境構築に嵌っちゃいました・・・
1. H8用 gcc の用意
2. H8/3048F-ONEでの失敗 ← あきらめた
3. H8/3069Fでの失敗 ← どうにかなった

開発環境がアレだったので、色々と苦労しました・・・
  • Ubuntu 12.04 64bit
  • シリアルポート無し (SRC06-USBを使用)
  • H8/3048F-ONEが手元にあった (※無理だったので、3069Fを購入)



1. H8用gccの用意
本で紹介されているgccが3系列だったので、4系列で出来ないかとやってみました。

まず、binutilsの用意
$ mkdir binutils-2.22/build
$ cd binutils-2.22/build
$ ../configure --target=h8300-elf --disable-nls
$ make
$ sudo make install
binutilsは、特に嵌りませんでした。

次に、gccの用意。色々失敗したので、最終的に成功した物を掲載。
まず、libstdc++のコンパイルで、
checking for shl_load... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
とコケたので、ここを参考にlibtool.m4を修正。
$ vim gcc-4.5.4/libtool.m4
$ cd gcc-4.5.4/libstdc++-v3
$ autoconf
$ cd ../../
また、
/usr/bin/ld: cannot open crt0.o: No such file or directory
/usr/bin/ld: cannot open crti.o: No such file or directory
とか言われたけど、newlibを同時にコンパイルするようにしたら直ったっぽい?
$ ls
binutils-2.22/  gcc-4.5.4/  newlib-1.20.0/
$ ln -s /hogehoge/newlib-1.20.0/newlib gcc-4.5.4/newlib
あとは、gccのコンパイル
$ mkdir gcc-4.5.4/build
$ cd gcc-4.5.4/build
$ ../configure --target=h8300-elf --prefix=/usr/local/h8300-linux-elf --enable-languages=c --with-newlib --with-as=/usr/local/bin/h8300-elf-as --with-ld=/usr/local/bin/h8300-elf-ld --disable-nls --disable-werror --disable-libstdcxx-pch
$ make
$ sudo make install
--disable-multilib を入れたら「gcc: unrecognized option '-rdynamic'」とか言われたので、このオプションは入れないことにしました。

ここまでで、一週間・・・



2. H8/3048F-ONEでの失敗
手元に H8/3048F-ONEしか無かったので、これを使ってみようと考えていました。
しかし、H8/3048F-ONE はROM(flash領域)への書き込み時に「製品識別ID」が必要とのことで・・・
Linuxで対応してるソフトウェアは無いっぽく、h8writeを改修する形で作ってみようと試みました。

まず、製品識別IDについては、この資料に記述がありました。
製品識別IDは「H'40 FE 62 66 33 30 34 38」だったので、これをh8writeに組み込んで、テストしてみました。

結果・・・「書き込み制御プログラム」の書き込みには成功したのですが。
これがH8/3048用だったせいなのか、「書き込み制御プログラム」の起動に失敗しました
ここで、心が折れたので、H8/3069Fを購入しました。



3. H8/3069Fでの失敗
まだまだ、失敗は続くよ!!
届いたH8/3069FのROMへ書きこもうと h8write を起動してみると・・・失敗率100%!!
試しに、手元のWindows7/FDTで書き込みを試しましたが、失敗。
これ、壊れているんじゃ・・・

ここで、書き込み環境の確認。

「H8/3069F」⇔「RS232C オス-メス延長ケーブル」⇔「USB-RS232C変換ケーブル」⇔「Ubuntu」

USB-RS232C変換ケーブルには「SRC06-USB」を使ってます。
延長ケーブルを使った理由は、変換ケーブルと3069Fのコネクタが(ネジで)合わなかったからです。

んで。Windowsでも駄目だったので、ダメ元で延長ケーブルを捨て、3069Fのネジを外して、無理やり変換ケーブルに接続(つまり、直接接続)してみました。

そして、h8writeで書き込んでみると・・・なんと、成功!
どうやら、延長ケーブルが断線していたみたいで・・・(^_^;)

ただ、この環境でもh8writeで書き込みに失敗することがありました。
今は、kz_h8writeを使っています。



毎回、挑戦するたびに、こんな問題にぶち当たってる気がします。
今は書き込みに失敗することも無いので、安心して使っています。
kz_h8writeはコードが綺麗なので、暇があったら、H8/3048F-ONE用に書き換えたいなーと・・・思ったり、思わなかったり。

とりあえず、OS自作本が面白いので、どんどん作っていこうと思います。

12ステップで作る組込みOS自作入門12ステップで作る組込みOS自作入門
(2010/05)
坂井 弘亮

商品詳細を見る

スポンサーサイト


Comments

Leave a Comment



10 2017
SUN MON TUE WED THU FRI SAT
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

09

11


 
プロフィール

ひでたそ

Author:ひでたそ
Comment:
現役大学生で天文好き。
今日もどこかで、上を見ながら歩いています。

 
 
 
最新トラックバック
 
 
検索フォーム
 
 
 
ブロとも申請フォーム
 
QRコード
QRコード
 

Archive   RSS   Login

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。