intel fpga elf与sof同时下载

解决方法sof+elf>flash>hex>jic

经Edison指点,得知alteraforum上有前辈给出解决方法。看似简单,疗效却比较好。

  1. 在所在QII工程文件夹中,新建一个文件夹。此处以sof+elf_jic为例;
  2. 将QII工程和NII工程编译生成的sof和elf都拷贝到此文件夹内;
  3. 按如下格式,新建一个sh文件,此处命名为make_hex.sh;(sh文件,bash的批处理文件;类似于DOC的bat文件) 
    1
    2
    3
    4
    5
    6
    7
    8
    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
  4. 修改第1~2行处所指的文件名,保存。打开开始>程序>Altera>Nios II EDS xx.x>Nios II xx.x Command Shell,此处以Nios II 10.1 Command Shell做示范(图1)。 
    intel fpga elf与sof同时下载 图1
  5. 打开QII>File>Convert Programming Files(图2),把SOF Data给Remove掉,然后点Generate生成jic。 
     intel fpga elf与sof同时下载 图2
  6. 直接下载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