最近用Nios II的Eclipse 內的Flash programmer要燒錄資料 *.sof檔和 *.elf檔 到自己設計板子內的EPCS記憶體內,發生這個錯誤。
===============================================
Using cable "USB-Blaster [USB-1]", device 1, instance 0x00
Resetting and pausing target processor: OK
Reading System ID at address 0x00000000:
ID value verified
Timestamp value was not verified: value was not specified
No EPCS layout data - looking for section [EPCS-010216]
Unable to use EPCS device
Leaving target processor paused
===============================================
上網查了一下資料是說需要加入一個 nios2-flash-override.txt 到"<nios2 install dir>/bin".安裝入徑下。
照做完後還是會出現上面的訊息。後來只好來追一下問題,並把解決方式列於下面。
=================解決方式==================================
STEP 1: 用flash programmer去選擇*.bsp設定檔,將*.sof檔以及*.elf檔抓下來設定好後,按Start。
STEP 2: 選Options -> Staging Directories 出現新的視窗
查一下 Script directory: 內的目錄位置 D:\prj\FPGA-test\Qsis\script
會有一個檔案 flash_programmer.sh 此為要燒入*.sof和*.elf檔到EPCS的批次檔。
Step 3: 用文字編輯器打開 flash_programmer.sh 編輯內容。
在nios2-flash-programmer 指令的最後面加上
--override = c:/nios2-flash-override.txt
,如代碼內紅字部分。
============= flash_programmer.sh 內容===
1 #!/bin/sh 2 # 3 # This file was automatically generated. 4 # 5 # It can be overwritten by nios2-flash-programmer-generate or nios2-flash-programmer-gui. 6 # 7 8 # 9 # Converting SOF File: D:\KFPGA.sof to: "..\flash/KFPGA_epcs_controller.flash" 10 # 11 sof2flash --input="D:/KFPGA.sof" --output="../flash/KFPGA_epcs_controller.flash" --epcs 12 13 # 14 # Programming File: "..\flash/KFPGA_epcs_controller.flash" To Device: epcs_controller 15 # 16 nios2-flash-programmer "../flash/KFPGA_epcs_controller.flash" --base=0x1800 --epcs --sidp=0x0 --id=0x12345678 --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-1]' --program --erase-all --override=c:/nios2-flash-override.txt 17 18 # 19 # Converting ELF File: D:\KFPGA_20K_Q15_v1_2.elf to: "..\flash/KFPGA_20K_Q15_v1_2_epcs_controller.flash" 20 # 21 elf2flash --input="D:/KFPGA_1.2/Qsis/software/KFPGA_20K_Q15_v1_2/KFPGA_20K_Q15_v1_2.elf" --output="../flash/KFPGA_20K_Q15_v1_2_epcs_controller.flash" --epcs --after="../flash/KFPGA_epcs_controller.flash" 22 23 # 24 # Programming File: "..\flash/KFPGA_20K_Q15_v1_2_epcs_controller.flash" To Device: epcs_controller 25 # 26 nios2-flash-programmer "../flash/KFPGA_20K_Q15_v1_2_epcs_controller.flash" --base=0x1800 --epcs --sidp=0x0 --id=0x12345678 --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-1]' --program --override=c:/nios2-flash-override.txt
Step 4: 打開Nios II XXX Command Shell命令提示字元,然後切換到 flash_programmer.sh 的目錄下 用 .\flash_programmer.sh 執行 批次檔,就可以順利燒錄了。
附加檔案下載:
[reference]
[1] Error: No EPCS layout data - looking for section [EPCS-202XXX]
[2] Nios II Flash Programmer User Guide
[3]