NiOS II從EPCQ256的自啟動設置


軟件:Quartus 18.1,FPGA:Cyclone 5cgxfc5c6,配置芯片:ECPQ256

1.硬件設置

我們將Reset vector memory指向EPCQ flash,將Reset vector offset設置為大於sof大小的一個值,這里從jic轉換后的map文件可得到sof大小為0x0041f013,所以設置offset為0x41f060,offset更改后,Reset vector memory從原來的0x0400_0000變為0x0400_0000+0x41f060=0x441f060.

2.SBT設置

必要文件的生成:

  • 右擊NIOS software工程,選擇Make Targets > Build,在工程文件夾下生成elf文件。
  • 選擇mem-init-generate,點擊build,生成memory初始化hex文件,該文件在NIOS software工程mem_init文件夾下。

在控制台中可以看到生成hex文件的命令: Post-processing to create mem_init/epcq_controller_0.hex... alt-file-convert -I elf32-littlenios2 -O hex --input=LED_blink.elf --output=mem_init/epcq_controller_0.hex --base=0x04000000 --end=0x05ffffff --reset=0x0441f060 --out-data-width=8

--boot="C:/intelfpga/18.1/nios2eds/components/altera_nios2/boot_loader_cfi.srec"

  • 注意,mem-init-generate生成的hex文件開始地址可能與預想的不一致,比如,在BSP根據execute in place from EPCQ模式設置各選項時,本來開始地址應該為0x41f060,但生成的hex文件卻是0x01f060.比如下面的hex文件: :020000040001F9

:20F06000140084003A48011004F8BF1016FDBF007410410014A97C083A6800080000000018

但boot copier方式啟動時,生成的hex文件沒問題。

3. 編程文件轉換(.jic的生成)

  • 編程文件類型選擇.jic文件;配置芯片選擇EPCQ256。
  • 點擊Add Sof Page,選中SOF Data,點擊Add File;
  • .sof文件的地址設置:選中SOF Data,點擊Properties,set the start address to 0x0 to avoid a "size exceeds memory capacity" error.

  • .hex文件的選擇:點擊Add Hex Page,如果是boot copier方式啟動,選擇絕對地址。

如果是execute in place from epcq啟動方式,選擇相對地址,在開始地址里填入合適的值,使hex的起始地址對應硬件里的起始地址。

  • 點擊generate,成功生成.jic文件。

4.燒寫程序后,上電后軟核代碼總是不運行,clock模塊復位后才運行。

參考文檔

1.AN736_ Nios II Processor Booting From Altera Serial Flash (EPCQ)

2.Generic Serial Flash Interface Intel FPGA IP Core User Guide

3.Embedded Peripherals IP User Guide

4.Embedded Design Handbook


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM