通过.jic文件固化NIOS II程序到EPCS,EPCQA流程
软件:Quartus 18.1(包含NIOS II EDS),芯片Cyclone 5CSEMA4,配置芯片EPCS128(Spansion:S25FL128):.
1.添加组件,建立Qsys系统,然后生成代码:
这里的EPCS组件选用的为legacy epcs/epcqx1 Flash controller IP核,也可以选择serial flash controller IP核,但固化的方法与这里稍有不同。
2.使用NIOS II EDS,根据sopcinfo文件,建立模板工程。
3.bsp editor保持默认不变:
4.打开NIOS II flash programmer,添加elf和sof文件:
5.在option中选择generate files:
6.然后点击start按钮,得到批处理文件。
7.在得到的批处理sh文件基础上修改,加入nios2-elf-objcopy命令: #!/bin/sh # This file was automatically generated. # It can be overwritten by nios2-flash-programmer-generate or nios2-flash-programmer-gui. # Converting SOF File: D:\chrowload\editc\hdl\DE0Nano-5CSEMA4\SOC_NIOS\SOC_GPIO\output_files\SOC_GPIO.sof to: "..\flash/hw.flash" # sof2flash --input="D:/chrowload/editc/hdl/DE0Nano-5CSEMA4/SOC_NIOS/SOC_GPIO/output_files/SOC_GPIO.sof" --output="../flash/hw.flash" --epcs --verbose # Converting ELF File: D:\chrowload\editc\hdl\DE0Nano-5CSEMA4\SOC_NIOS\SOC_GPIO\software\Test\Test.elf to: "..\flash/sw.flash" # elf2flash --input="D:/chrowload/editc/hdl/DE0Nano-5CSEMA4/SOC_NIOS/SOC_GPIO/software/Test/Test.elf" --output="../flash/sw.flash" --epcs --after="../flash/hw.flash" --verbose nios2-elf-objcopy -I srec -O ihex ../flash/hw.flash ../flash/hwimage.hex nios2-elf-objcopy -I srec -O ihex ../flash/sw.flash ../flash/swimage.hex
8.在Quartus以两个hex文件为输入,转换成jic文件:
9.查看转换后的.map文件,如下: BLOCK START ADDRESS END ADDRESS hwimage.hex 0x00000000 0x00141263 swimage.hex 0x00141264 0x00143307 可以看到,FPGA镜像的结束地址为0x00141263,对比单独转换.sof文件后的FPGA的镜像结束地址0x0040C540,明显后者偏大。所以不能以sof文件和elf转换得到的hex文件合并成jic文件,这样地址会错误,必须先把sof文件转换成flash文件然后转成hex文件。