TOPPERS/ASP on MicroBlaze
Spartan3ファミリ(XilinxのFPGA)のボードでMIcroBlaze/EDK10.1+TOPPERS/ASPのサンプルを動かす手順です。
- 開発環境の準備
- Cygwin
TOPPERS/ASPをビルドするには最新版が必要だが、EDK付属の物とバージョンが異なり共存は避けた方がよい。
「all」でインストールが無難。
- クロスビルドツール
EDKをインストールした中の
Xilinx/10.1/EDK/gnu/microblaze/nt/binにPathを通してください。
$ export PATH=$(XILINX_EDK)/gnu/microblaze/nt/bin:${PATH}
- シリアルターミナル
TeraTerm等のPCアプリをPCにインストール
- シリアル(ストレート)ケーブル または USBシリアル変換ケーブルを用意し、PCとボードを接続する。
PCのシリアルポートのポート番号を調べる。
- TOPPERS/ASPのサンプル
- TOPPERS/ASPパッケージを入手
「TOPPERS/ASPカーネル簡易パッケージのダウンロード」のページにある
「Spartan-3A DSP 1800A(Xilinx)簡易パッケージ asp_sd1800a_dsp_gcc-20090123.tar.gz」をダウンロードする。
- 配置アドレスの変更
s3a_dspは内部RAMを64Kbyteまで使えるが、s3e_skb,s3_skb,s3a_avl_sram,s3e_dwm_ramボードでは容量が小さくてプログラムが入らない。
s3a_dsp以外ではSDRAM/SRAMに配置するように asp/target/sd1800a_dsp_gcc/sd1800a_dsp.l を変更する。
s3a_dsp(原形)
ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x0000FFB0
FLASH_C_MEM0_BASEADDR : ORIGIN = 0x89000000, LENGTH = 0x01000000
DDR_SDRAM_C_MPMC_BASEADDR : ORIGIN = 0x88000000, LENGTH = 0x04000000
45,55,67行目
} > ilmb_cntlr_dlmb_cntlr
s3e_skbでSDRAM(64Mbyte)使用
ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00001FB0
FLASH_C_MEM0_BASEADDR : ORIGIN = 0x89000000, LENGTH = 0x01000000
DDR_SDRAM_C_MPMC_BASEADDR : ORIGIN = 0x8c000000, LENGTH = 0x04000000
45,55,67行目
} > DDR_SDRAM_C_MPMC_BASEADDR
s3_skbでSRAM(1Mbyte)使用
ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00001FB0
SRAM_C_MEMO0_BASEADDR : ORIGIN = 0x84100000, LENGTH = 0x00100000
45,55,67行目
} > SRAM_C_MEMO0_BASEADDR
s3a_evl_sramでSRAM(1Mbyte)使用
ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00001FB0
SRAM_C_MEMO0_BASEADDR : ORIGIN = 0x84100000, LENGTH = 0x00100000
45,55,67行目
} > SRAM_C_MEMO0_BASEADDR
s3e_dwm_sramでSRAM(1Mbyte)使用
ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00001FB0
SRAM_C_MEMO0_BASEADDR : ORIGIN = 0x84100000, LENGTH = 0x00100000
45,55,67行目
} > SRAM_C_MEMO0_BASEADDR
- ビルド
cugwinの任意のフォルダで以下を行う。
(1) パッケージを展開。
$ tar -zxvf asp-1.3.2.tar.gz
$ tar -zxvf asp_arch_microblaze_gcc-1.3.2.tar.gz
(2) asp/doc/user.txt の「3.クイックスタートガイド」に従い、まずコンフィグレータを構築する。
$ cd asp/cfg
$ make depend
$ make
$ cd ..
(3) ディレクトリを作成し、移動。
$ mkdir OBJ
$ cd OBJ
(4) サンプルをビルド。
$ ../configure -T sd1800a_dsp_gcc
$ make depend
$ make
(5) エラーが無ければ成功、ファイルを確認。
$ ls.asp.*
asp.exe asp.srec asp.syms
- MicroBlaze
- Xilinx製のボードはXPSのBSBに用意されているデフォルトに以下の点を加えて構築する。
s3a_dspではローカルメモリを64KBにする。
Cache setup「Enable」にチェックを入れる。
シリアルポートの「Use interrupt」にチェックを入れる。
タイマを追加して「Use interrupt」にチェックを入れる。
- XPSメニューの「Device Configuration」→「Download Bitstream」にてボードに書き込む。
PCのシリアルターミナルにメモリテストのアプリが表示される。
- TOPPERS/ASPのサンプルを起動
- デバッガ(insight)を起動
XPSメニューの「Debug」→「Launch XMD」を開く。
XPSメニューの「Debug」→「Launch Software Debugger」を開くとアプリ選択の窓が開くがそのまま「OK」でデバッガが起動。
デバッガのメニュー「File」→「Open」にてビルドしたasp/obj/asp.exeを選択する。
デバッガの「Run」アイコンをクリックするとダウンロードが始まる。
デバッガの「Continue」アイコンをクリックするとASPサンプルが起動し、シリアルターミナルに表示される。