製品情報>Artix-7評価ボード>MicroBlazeを使う>Bitファイルにソフトウェアを埋め込む

Bitファイルにソフトウェアを埋め込む

74. 作ったソフトウェアを実行するのに、毎回毎回SDKからJTAGダウンロードするのは大変です。

FPGA内部のBlockRAMに収まるサイズのソフトなら、BitStreamにプログラムを埋め込んで、FPGAの起動と同時に実行させることができます。

 

SDKのプロジェクトでSRCの中にあるlscript.ldをクリックします。

次の図のようなダイアログが開きます。

 

この中で、Section to Memory Region Mapingを見ると、ddr3_sdram_mt41j256m8xx_15e_S_AXI_BASEADDRになっています。つまり、すべてのコードやデータがDDR3上に配置されています。

DDR3メモリは0xb0000000〜0xbfffffffなので、BitStreamの中には入りません。

 

 

75. このddr3_sdram_mt41j256m8xx_15e_S_AXI_BASEADDRをすべて、

microblaze_0_i_bram_ctrl_microblaze_0_d_bram_ctrlに変更し、保存します。

そして、testapp.elfを削除し、さらにプロジェクトをクリーンしてから再ビルドします。

 

 

76. こうして出来上がったELFファイルは、アドレス0x0000〜0x7fffまでの範囲内にすべて収まっています。

これならBitStreamに埋め込んでROM化が可能です。

 

 

77. BitStreamに埋め込むには、data2memというツールを使います。

一番簡単な方法は、Eclipseのメニューから、Xilinx Tools→Programming FPGAを実行することです。

 

Programming FPGAというダイアログが開いたら、Bitstreamを設定し、それからBMMファイルを指定します。

BMMファイルというのは、出来上がったデザインの中でどのBRAMに何のデータが書かれているかを記述したファイルです。BitStreamができているフォルダに自動的に作られているはずです。2つある場合は、ファイル名の最後に_bdが付いている方を選びましょう。_bdのほうはBRAMのロケーションまで指定されています。

 

Software Configurationのところには、先ほど作られたELFファイルを指定します。

 

 

78. Programを押すと、コンソール内でdata2memが起動しているのが見えます。

ELFファイル中のプログラムがBitstreamに格納され、workspace/cpu_hw_platform/download.bitとして作られます。

 

 

79. 自動的にこのbitファイルが書き込まて、FPGAが起動すると同時にソフトウェアが走り出します。

 

80. 自分でdata2memを起動したい場合、SDKのLaunch Shellアイコンをクリックし、コマンドラインプロンプトを開き、コマンドラインから、

data2mem -bm BMMファイル名 -bd ELFファイル名 -bt BITファイル名

のように入力します。

 

BMMファイルは、BitStreamができているフォルダに自動的に作られているはずです。2つある場合は、ファイル名の最後に_bdが付いている方を選びましょう。_bdのほうはBRAMのロケーションまで指定されています。

 

具体的には、data2mem -bm c:¥share¥mbtest¥fpga¥edkBmmfile_bc.bmm -bt C:¥chare¥mbtest¥fpga¥main.bit -bd C:¥share¥mbtest¥workspace¥testapp¥Debug¥testapp.elf

と入力すれば十分です。tagオプションや-oオプション、PARTNAMEの指定はしなくても大丈夫です。

 

 

これでbitファイルにELFが埋め込まれます。出来上がったbitファイルは、元のファイル名_rp.bitになります。

このmain_rp.bitファイルなら、MITOUJTAGからでも書き込めます。

 


© 2017 TokushuDenshiKairo Inc. All rights reserved