JIC文件生成和固化详细步骤
正点原子
JIC文件生成和固化详细步骤
1. 此文目的
之前我们介绍固化程序的方法需要在Nios II软件中进行操作,如果需要批量地对产品进行固件升级,这种方式就略显复杂。下面我们将介绍在设计中包含Nios II处理器时,如何使用SOF和ELF文件生成JIC固件。
以下使用.sof和.elf生成.jic文件并固化的详细步骤基于ALIENTEK新起点NEW START开发板(开拓者开发板同样适用),开发环境为Quartus II 13.1 (64bit),程序示例为《新起点Nios II开发指南》之PIO IP核实验。
2. 详细步骤
打开niosII工程。
首先在工程目录下创建名为“JIC”的文件夹,将本工程中编译生成的.sof和.elf两个文件拷贝到该文件夹里,如下图所示:

图 2.1复制SOF文件和ELF文件
在Nios II中右击工程,在弹出的菜单列表中选择niosII→NiosII 13.1 command shell,如下图所示:

图 2.2 打开Nios II Command Shell
在弹出的命令框中输入命令“cd ../../../JIC”(../代表上一级目录),按下回车键,将当前目录切换到JIC文件夹里。如下图所示:

图 2.3 在命令框中切换目录
路径切换正确后,接下来的步骤为:先将.sof和.elf文件转换为.flash文件;然后将.flash文件转换为.hex文件;最后使用.hex文件生成.jic文件。详细过程将一一展开。
在命令框中输入以下指令将.sof文件转换成.flash文件:
sof2flash --input=Pio_led.sof --output=hw.flash --epcs --verbose
上面命令中.sof文件的名称(红色)需要与JIC文件夹中.sof文件保持一致,如下图所示:

图 2.4 输入sof2flash命令
然后在命令框中输入以下指令将.elf文件转换成.flash文件:
elf2flash --input=Pio_led.elf --output=sw.flash --epcs --after=hw.flash --verbose
上面命令中.elf文件的名称(红色)需要与JIC文件夹中.elf文件保持一致,如下图所示:

图 2.5 输入elf2flash指令
接下来输入以下两行指令,将.flash文件转换成.hex文件:
nios2-elf-objcopy -I srec -O ihex hw.flash hw.hex
nios2-elf-objcopy -I srec -O ihex sw.flash sw.hex
注意在上面的指令中,中间“-O”为大写英文字母“O”,而不是零,如下图所示:

图 2.6 将flash转成hex
以上指令输入完毕后,JIC文件夹里的文件如下图所示:

图 2.7 JIC目录中的文件
然后在Quartus II软件中,点击菜单中的File ->Convert Progamming Files,如下图所示:

图 2.8 进入Convert Programming Files
在弹出的界面中作如下配置:

图 2.9 Convert Programming File配置界面
首先修改“programming file type”为【JTAG Indirect Configuration File (.jic)】;然后修改“Configuration device”为【EPCS16】(新起点开发板Flash型号为M25P16,完全兼容EPCS16);在“File name”中点击复制名字“output_file”并点击右侧【...】将要生成的jic固化文件放在路径E:project2_qsys_pioJIC下;窗口中的“SOF Data”用不到,选中然后点击右侧“【Remove】”。
然后选中窗口中的“Flash Loader”,点击右边的【Add Device..】按钮,如下图所示:

图 2.10 进入器件选择界面
出现如下图所示界面,选择开发板芯片(新起点开发板为Cyclone IV E EP4CE10),点击【OK】按钮。

图 2.11 器件选择界面
然后点击右边的按钮【Add Hex Data】,第一次添加.hex文件,如下图所示:

图 2.12 进入添加hex文件界面
在弹出的对话框中勾选“Relative addressing”,点击右下侧【...】,如下图所示:

图 2.13 添加hex文件界面
选择JIC文件夹下的hw.hex(注意:选第一个hex文件一定要选择hw.hex,否则生成的jic文件固化后开发板现象会不正确),然后点击【open】,如下图所示:

图 2.14 选择hw.hex文件
接着在Add Hex Data界面点击【OK】:

图 2.15 添加hw.hex文件
1处成功添加hw.hex,再次点击右边2处按钮【Add Hex Data】,如下图所示:

图 2.16 继续添加hex文件
按照之前的步骤,第二次添加.hex文件要选择sw.hex,点击【open】,如下图所示:

图 2.17 选择sw.hex文件
接着在Add Hex Data界面点击【OK】。
这样,sw.hex文件也被加入,点击右下角的【Generate】进而开始生成.jic固化文件,如下图所示:

图 2.18 去生成jic文件
最后会弹出对话框提示成功生成.jic文件,点击【OK】,如下图所示:

图 2.19 提示生成jic成功
生成的.jic文件名为“output_file.jic”,位于JIC文件夹下,如下图所示:

图 2.20 生成的jic文件
最后将生成的.jic文件在Quartus II中使用Programer进行下载,下载完成后断电重启开发板,即可完成程序的固化,而不需要打Nios II软件。按下按键,对应的LED灯就会亮起,如下图所示:

图 2.21上电重启后实验现象
至此,包含Nios II处理器的JIC固件成功固化!