前言
目前在使用Cyclone V 5CGXBC4C7开发 的板子,我们一般是破解成5CGXBC5来用的,由于破解的原因,我们没办法通过正常的途径生成JIC进行烧录,在此把通过JIC固化的方法做一个分享,即不需要信号板和上层软件支持就把程序固化。
1:电源板目前都是采用boot+app的方式,boot里面通过RSU模块来实现跳转到app去
2:boot一般采用不破解的方式开发。可以通过常规方式生成JIC,固化到FLASH去。,如图
3:app一般采用破解的方式开发,如图
4:NIOS 编译完成会生成一个.elf文件,如图
5:执行mem_init_generate,更新init文件。
6:执行Update MIF,如图
7:执行Start Assembler
8:按理说,执行完这一步可以直接用sof生成JIC的,但是失败了,可能跟破解有关(没破解的可以直接用sof生成JIC)
9:编写脚本gen_sof_elf_hex.sh,合并.elf文件和 .sof为一个 HEX文件,脚本如下
sof=“test.sof”
elf=“master.elf”
echo “sof>flash …”; sof2flash --epcs --input=$sof --output=sof.flash --quiet
echo “elf>flash …”; elf2flash --epcs --after=sof.flash --input=$elf --output=elf.flash
echo “cat flash …”; cp sof.flash sof_elf.flash; cat elf.flash >> sof_elf.flash
echo “flash>hex …”; nios2-elf-objcopy --input-target srec --output-target ihex sof_elf.flash sof_elf.hex
echo “del flash …”; rm -f *.flash
路径和文件名可以自己指定,运行脚本,生成hex文件。
10:将quartus版本换成非破解版本,
11:选择器件,这里要选非破解的,5CGXFC4C6或者5CGXFC4C7
12:选择HEX文件
由于应用程序是从0x500000地址启动的,所以此处选0x500000(如果是boot就选0x0地址),最后生成JIC,可以直接烧录,此种方法相当于是用5CGXFC5的器件编译的逻辑,最终生成5CGXFC4C6 jic,而5CGXFC4C6 的jic是可以烧录到FLASH里面去的,但是相当于当5CGXFC5来跑。