AR# 45834

13.3 SDK - プログラムを起動中に予測されない ELF 検証エラーが表示される

説明

SDK でアプリケーション (.elf) を DDR3 外部メモリにダウンロードすると、次のようなエラー メッセージが表示されます。このエラー メッセージは、[Run As] → [Launch on Hardware] をクリックした場合にのみ表示されます。[Debug As] → [Launch on Hardware] をクリックした場合は問題は発生しません。

17:17:50 ERROR : Unexpected error while launching program. java.lang.RuntimeException: ERROR: Elf Verify failed at Address:
0x0060d77b
at com.xilinx.sdk.targetmanager.internal.TM.verifyELF(Unknown Source)
at com.xilinx.sdk.debug.core.internal.AppRunner.run(Unknown Source)

ソリューション

XMD に ELF 解析に関する既知の問題があります。この ELF 検証エラーは、ELF 解析の問題が原因である可能性があります。
この問題を解決するには、次の方法があります。

ソリューション 1 :
[Debug As] → [Launch on Hardware] をクリックし、ELF のダウンロードに XMD が直接使用されないようにします。
このコマンドを使用した場合、XMD ではなく GDB により ELF ファイルが読み込まれます。

ソリューション 2 :
リンカー スクリプトを確認します。スクリプトでメモリ セクションが定義されていない場合は、メモリ定義を追加し、すべてのセクションをメモリにマップしてください。

例)

MEMORY
{
ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00001FB0
FLASH_MEM0_BASEADDR : ORIGIN = 0x86000000, LENGTH = 0x02000000
DDR3_SDRAM_MPMC_BASEADDR : ORIGIN = 0x50000000, LENGTH = 0x10000000
}

.<section name> : {

...

} > DDR3_SDRAM_MPMC_BASEADDR

ソリューション 3:
.vector および .text セクションのアドレス マップを確認します。これらが同じメモリにマップされており、.text の開始アドレスと .vector の終了アドレスの間にギャップがある場合は、.text の開始アドレスを .vector の直後に設定します。

AR# 45834
日付 01/17/2012
ステータス アクティブ
種類 一般
ツール 詳細 概略