FC2カウンター FPGAの部屋 カメラの表示回路及びソフトウェアをSDカードからブートする
FC2ブログ

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

FPGAの部屋

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

カメラの表示回路及びソフトウェアをSDカードからブートする

カメラ回路と制御するソフトウェアをSDカードからブートして動作させたいと思ったのでやってみた。

まずは、”Zynq-7000 EPP ソフトウェア開発者向けガイド UG821 (v2.0) 2012 年 4 月 24 日”の”ブートおよびコンフィギュレーション”の”3.1 概要”(20ページ)によると、プロセッサシステムは2段階のプロセスでブートするそうだ。(LinuxだとU-BOOTがあるので3段階)

それは、内部BootROMとFSBL (First Stage Bootloader) だ。
・内部BootROMは、ステージ0ブートコードが入っていて、ARMプロセッサおよびペリフェラルをコンフィギュレーションする。そして、FSBLへ制御を渡す。BootROMには書き込みできない。
・FSBLブートコードは、BootROMコードでフラッシュメモリからオンチップメモリ (OCM) へコピーされてから、実行される。

・FSBLの役割
 ・XPSからのPSコンフィギュレーション・データで初期化(XPSのZynqタブで設定したMIOなどのコンフィギュレーションだと思う)
 ・ビットストリームでPLをプログラム。
 ・第2段階ブートローダーまたは、ベアメタル・アプリケーション・コードをメモリへロードする。
 ・第2段階ブートローダーまたは、ベアメタル・アプリケーション・コードの実行を開始する。

ということで、FSBLを作る必要がある。FSBLはSDKで生成することができる。そのやり方を見ていこう。

・SDKの Fileメニュー -> New -> Project を選択する。
Zynq_SDcard_1_130124.png

・New Project ダイアログで、Xilinx -> Application Project を選択して、Next > ボタンをクリックする。
Zynq_SDcard_2_130124.png

・Project Name にFSBL(これは任意の名前)と入力し、Target Software で、Board Support Package にUse existing のラジオボタンをクリックして、すでにあったBoard Support Package を指定した。Next > ボタンをクリックする。
Zynq_SDcard_3_130124.png

・Templates ダイアログが表示される。Available Templates から Zynq FSBL を選択する。
Zynq_SDcard_7_130124.png

・Finish ボタンをクリックすると、コンパイルされて、FSBL.elf が生成される。
Zynq_SDcard_4_130124.png

次に、BOOT.bin を生成する。

・ベアメタル・アプリケーション(この場合は cam_disp2 のプロジェクト)を選択しておいて、Xilinx Tools メニューから Create Zynq Boot Image を選択する。
Zynq_SDcard_5_130124.png

・先ほど作成したFSBL.elf とベアメタル・アプリケーション cam_disp2.elf はすでに入っていた。
・PL部のビットストリーム、system_stub.bit をAddボタンをクリックして追加する。
・cam_disp2.elf をクリックして、DOWNボタンをクリックし、system_stub.bit と順番を入れ替える。
Zynq_SDcard_6_130124.png

・Create Image ボタンをクリックして、イメージを作成する。
・ZedBoard_CamDisp_wHDMI_144_2\ZedBoard_CamDisp_wHDMI.sdk\SDK\SDK_Export\cam_disp2\bootimage を見ると、ファイルが3つ出来ている。
Zynq_SDcard_8_130124.png

・cam_disp2.bin を BOOT.bin にリネームする。
・BOOT.bin をSDカードにコピーする。
Zynq_SDcard_9_130124.png

・SDカードをパソコンから抜いて、ZedBoardのSDカードスロットに挿入する。
・ZedBoardの設定ピンを設定する。
 MIO2 GND
 MIO3 GND
 MIO4 3V3
 MIO5 3V3
 MIO6 GND

 JP2, JP6 ショート
 JTAG SELECT 1V8

・ZedBoardの電源SWをONにすると、DONE LEDが点灯して、カメラ画像が表示された。

これで、SDカードからブードして、PL部のビットストリームをダウンロードし、PS部のソフトウェアを動作させることが出来た。
  1. 2013年01月24日 04:59 |
  2. Zynq
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/2371-5a0be5ca
この記事にトラックバックする(FC2ブログユーザー)