UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 46503

13.4 EDK - フラッシュから直接コードを実行する方法

説明

このアンサーでは、フラッシュ メモリから直接コードを実行する方法を説明します。

ソリューション

  1. XPS でハードウェア仕様を作成します。パラレル フラッシュを使用する場合は EMC、シリアル フラッシュを使用する場合は (q)spi コントローラーを含めます。
  2. フラッシュからデバッグする必要がある場合は次の手順に従います。
    1. [System Assembly Viewer][Configure IP] をクリックし、[MicroBlaze] を右クリックします。
    2. [Advanced] をクリックします。
    3. [Debug] タブをクリックし、最低 1 つのハードウェア ブレークポイントをイネーブルにします。
    4. [OK] をクリックします。
  3. ビットストリームを使用してデザインを SDK をエクスポートします。
  4. SDK でソフトウェア アプリケーションを作成します。
  5. ソフトウェア アプリケーションを右クリックし、リンカー スクリプトを生成します。
  6. [Advanced] タブにある次のセクションをフラッシュに移動させます。
    • .text
    • .rodata
    • .sdata2
    • .sbss2
  7. その他のセクションはすべてブロック RAM にリンクさせる必要があります。
  8. [Generate] をクリックします。
  9. [Xilinx Tools][Launch Shell] をクリックします。
  10. ワークスペース内のアプリケーションの [Debug] フォルダーを参照します。
  11. 次のコマンドを実行します。
    • $ mb-objcopy \ --set-section-flags .text=alloc,readonly,code \
      --set-section-flags .init=alloc,readonly,code \
      --set-section-flags .fini=alloc,readonly,code \
      --set-section-flags .rodata=alloc \
      --set-section-flags .sdata2=contents \
      --set-section-flags .sbss2=contents \ myApp.elf volatile.elf
    • $ mb-objcopy -O binary \
      -j .text \
      -j .init \
      -j .fini \
      -j .rodata \
      -j .sdata2 \
      -j .sbss2 \
      myApp.elf
    • シェルを閉じます。
    • [Xilinx Tools][Program FPGA] をクリックします。
    • ブートループをダウンロードします。
    • [Xilinx Tools][Program Flash] をクリックします。
    • flash.bin を 0x0 のオフセットにプログラムし、メモリをブロック RAM にします。
    • [Xilinx Tools][Program FPGA] をクリックします。
    • volatile.elf を選択します。
    • 必須の不揮発性パーツを除き、アプリケーションはフラッシュから実行されているはずです。


    • また、ブラッシュからデバッグを実行するのに、XMD を介して接続することもできます (「connect mb mdm」および「dow volatile.elf」)。さらに次の手順に従ってください。

      1. [Debug Configurations] を開きます ([Run][Debug configurations])。
      2. [Main] タブで [C/C++ application] が「volatile.elf 」になっていることを確認します。
      3. [Device Initialization] タブで、[Do not download program to memory] を選択する必要があります (XMD からダウンロード)。
      4. 「connect mb mdm」を実行する場合は、[Remote Debug] タブで、XMD のポートに 「localhost」を接続する必要があります。デフォルトは 1234 です。
      5. これでデバッグを実行することができます。ブレークポイントは XPS でコンフィギュレーションされている数を設定します。


      アプリケーションをブートロードする必要がある場合

      1. 前出の flash.bin をプログラムするアドレスをオフセットするため、リンカー スクリプトのロケーション カウンターであるピリオド (.) を使用する必要があります。この詳細は、『Red Hat GNU Linker help』 を参照してください。
      2. この後、異なるロケーションに flash.bin をプログラムし、(ザイリンクス アンサー 46518) で説明されているように download.bit (volatile.elf を含む) を使用します。
      flash.bin
AR# 46503
作成日 10/10/2012
最終更新日 02/05/2013
ステータス アクティブ
タイプ 一般
ツール
  • EDK - 14.1