main
TOPPERS/ASP on MicroBlaze

Spartan3ファミリ(XilinxのFPGA)のボードでMIcroBlaze/EDK10.1+TOPPERS/ASPのサンプルを動かす手順です。
  1. 開発環境の準備
    • 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のシリアルポートのポート番号を調べる。


  2. 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


  3. MicroBlaze
    • Xilinx製のボードはXPSのBSBに用意されているデフォルトに以下の点を加えて構築する。

    • s3a_dspではローカルメモリを64KBにする。
      Cache setup「Enable」にチェックを入れる。
      シリアルポートの「Use interrupt」にチェックを入れる。
      タイマを追加して「Use interrupt」にチェックを入れる。

    • XPSメニューの「Device Configuration」→「Download Bitstream」にてボードに書き込む。

    • PCのシリアルターミナルにメモリテストのアプリが表示される。


  4. TOPPERS/ASPのサンプルを起動
    • デバッガ(insight)を起動

    • XPSメニューの「Debug」→「Launch XMD」を開く。
      XPSメニューの「Debug」→「Launch Software Debugger」を開くとアプリ選択の窓が開くがそのまま「OK」でデバッガが起動。
      デバッガのメニュー「File」→「Open」にてビルドしたasp/obj/asp.exeを選択する。
      デバッガの「Run」アイコンをクリックするとダウンロードが始まる。
      デバッガの「Continue」アイコンをクリックするとASPサンプルが起動し、シリアルターミナルに表示される。