FC2カウンター FPGAの部屋 MicroBlazeでuClinuxを動作させたい
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

MicroBlazeでuClinuxを動作させたい

まだデバックやシミュレーションをしていないが、EDKの使い方もだいぶ学習してきたので、”MicroBlaze uClinux and Spartan-3E Starter Kit”を参考に、EDKでuClinux を動作させようと思いやってみた。
このページにあるXPSのプロジェクトのバージョンはEDK8.1iだったので、自動変換で10.1iに変換してみたがエラーが出てしまう。ページを見ると、uClinuxのブートイメージはXMDというデバッカー経由でDDR SDRAMにロードするようなので、元のsystem.mhsファイルを見ながら、それらしく周辺のアドレスや周辺デバイスを追加すればいけるのでは?と思いやってみることにした。

まずは、例によってXPSで新しいプロジェクトを作り、BSBを起動する。今までどおりに設定していくが、今までと違うところを示す。まずはRS232Cの設定画面で115200bpsに変更した。次にDCEのみUse interrupt にチェックを入れた。
s3e_uclinux_1_081216.png

Ethernet_MACのUse interrupt にチェックを入れた。
s3e_uclinux_2_081216.png

Add Internal Peripherals ダイアログでAdd Peripheral... ボタンをクリックする。Add Peripheral ダイアログが起動するので、プルダウンメニューからXPS_TIMERを選択する。
s3e_uclinux_3_081216.png

XPS_TIMERを選択した状態でOKボタンをクリックする。
s3e_uclinux_4_081216.png

Peripherals に xps_timer_1が追加される。Timer mode をOne timer is present にラジオボタンを変更し、Use inpterrupt にチェックを入れる。
s3e_uclinux_5_081216.png

BSBウィザードが終了して、各デバイスのアドレスが決定した。今度はこれをダウンロードしたuClinux を動作させるXPSプロジェクトと同じになるようにアドレスを変更する。まずはdebug_module のアドレスを変更しよう。XPSで右のSystem Assembly View のAddress タブをクリックし、各デバイスのアドレスを表示させる。debug_moduleをダブルクリックする。
s3e_uclinux_6_081216.png

debug_moduleのダイアログが起動する。次にSystemタブをクリックするとBase Address とHigh Addressが表示される。下の図で右のNotepad++ の画面がuClinux を動作させるXPSプロジェクトのsystem.mhs の内容だ。それによるとdebug_module はC_BASEADDRが0x41400000、C_HIGHADDRが0x4140ffff となっている。それを先ほどのdebug_moduleのダイアログのBase Address とHigh Addressに入力する。
s3e_uclinux_7_081216.png

XPSに戻ると書き換わっています。
s3e_uclinux_8_081216.png

DDR SDRAMをダブルクリックすると、タブがいっぱいあるダイアログが開く。AdvancedタブのAddresses Configurationタブをクリックして、Use Common Port Addresses のチェックをはずして、Port Addressesの中のBase AddrとHight Addrを変更する。
s3e_uclinux_9_081216.png

全部アドレスを変更した後がこれ。
s3e_uclinux_10_081216.png

これで全部アドレスを変更できたので、反映させるためにDevice Configuration -> Update Bitstream を実行する。これでコンフィグするビットストリーム(ビットファイル)が出来たので、Spartan3E Starter Kit の電源を入れてビットファイルをコンフィグするために Device Configuration -> Download Bitstream を実行する。これでFPGAをコンフィグすることが出来た。
uClinux はDebugger でイメージをロードするようだ。まずはデバック・オプションを設定する。Debug -> XMD Debug Option... を選択する。
s3e_uclinux_13_081216.png

たぶんデフォルトだと思ったが、Connection Type はHardware を選択する。他は下図の通り。
s3e_uclinux_14_081216.png

Debug -> Launch XMD... を選択し、XMDを立ち上げる。
s3e_uclinux_15_081216.png

XMDが立ちあがるので、”MicroBlaze uClinux and Spartan-3E Starter Kit”に載っている方法でDDR SDRAMへuClinux のイメージを転送してRUNする。
s3e_uclinux_12_081216.png

Tera Term の表示はどうなったかというと、uClinux が途中まで立ち上がっているが、Calibrating delay loop... で止まっている。
s3e_uclinux_11_081216.png

今のところ、どうして止まっているかわからない。期待された方がいたら申し訳ない。
もう少しで動きそうなので、もっとよく調べてみようと思う。
  1. 2008年12月17日 05:50 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:2

コメント

もう少しですね。
Linuxが動くと楽しい事が出来るので、頑張って下さい!
  1. 2008/12/17(水) 23:31:51 |
  2. URL |
  3. Tomcat #-
  4. [ 編集 ]

Tomcatさん、ありがとございます。

キャッシュを入れたり、いらないものを取ったりして、もう少しやってみます。
WRC、スバルやスズキがいなくなって残念です。これで楽しみが1つ減ってしまいました。
  1. 2008/12/18(木) 09:13:35 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/982-7d681d61
この記事にトラックバックする(FC2ブログユーザー)