intel fpga elf与sof同时下载
解决方法sof+elf>flash>hex>jic
经Edison指点,得知alteraforum上有前辈给出解决方法。看似简单,疗效却比较好。
- 在所在QII工程文件夹中,新建一个文件夹。此处以sof+elf_jic为例;
- 将QII工程和NII工程编译生成的sof和elf都拷贝到此文件夹内;
- 按如下格式,新建一个sh文件,此处命名为make_hex.sh;(sh文件,bash的批处理文件;类似于DOC的bat文件) 12345678
sof="DE0_Nano.sof"
elf="DE0_Nano.elf"
echo "sof>flash ..."; sof2flash --epcs --input=$sof --output=hw.flash --quiet
echo "elf>flash ..."; elf2flash --epcs --after=hw.flash --input=$elf --output=sw.flash
echo "cat flash ..."; cp hw.flash hw_sw.flash; cat sw.flash >> hw_sw.flash
echo "flash>hex ..."; nios2-elf-objcopy --input-target srec --output-target ihex hw_sw.flash hw_sw.hex
echo "del flash ..."; rm -f *.flash
- 修改第1~2行处所指的文件名,保存。打开开始>程序>Altera>Nios II EDS xx.x>Nios II xx.x Command Shell,此处以Nios II 10.1 Command Shell做示范(图1)。
图1
- 打开QII>File>Convert Programming Files(图2),把SOF Data给Remove掉,然后点Generate生成jic。
图2
- 直接下载jic,OK。
1. alteraforum.JIC file Generation
http://www.alteraforum.com/forum/showthread.php?p=77416
方法二:
1、 在Qsys里NIOSii 核,jtag控制器,EPCS/EPCQ*1控制器的reset要链接在一起。
关于除了内部片内ram和rom需要连接data_master,instruction_master,其他只需连接到data_master。Reset Vector 指向epcq_controller, Exception Vector指向onchip memory或其他memory。
2、工程目录下,<project>.qsf file打开编辑,拷贝以下两行进去,保存。
set_global_assignment -name STRATIXV_CONFIGURATION_SCHEME "ACTIVE SERIAL X1"
//set_global_assignment -nameENABLE_INIT_DONE_OUTPUT ON
3、将sof文件转换成jic文件,用jic烧写flash,重启。
打开< Convert Programming File tool>
4、使用Nios II CommandShell.bat按如下命令行生成flash烧写文件。
sof2flash --input=AVNIOSII.sof--output=hw.flash --epcq verbose
elf2flash --input=ARV_NEU.elf--output=sw.flash --epcs --after=hw.flash verbose
5、使用如下命令行烧写flash文件到EPCQ。
nios2-flash-programmer --epcs --base=<baseaddress of EPCQ device> hw.flash
nios2-flash-programmer --epcs --base=<baseaddress of EPCQ device> sw.flash
注:<base address of EPCQ device>是EPCQ的基地址,在QSYS里或EDS 的system.h都可以查到。
例如:
nios2-flash-programmer --epcs --base=0x11000hw.flash =后不要空格。地址和hw.flash后有空格
nios2-flash-programmer --epcs --base=0x11000sw.flash