您所在的位置:首页 > 客户案例
联系我们

联系人:王小姐

手机:18062095810

电话:027-87538900

传真:027-87538904

邮箱:hexin@whhexin.com

网址:www.whhexin.com

地址:湖北省武汉市鲁巷华乐商务中心1006

Cases客户案例

Altera FPGA带NiosII内核程序的JTAG下载方法总结

发布时间:2015-01-28 17:47:00 点击:

1、对于Altera FPGA,含Nios II 时需要下载的文件有4 种:.sof 文件,.pof 文件,.jic文件,.elf 文件。

下载文件
生成工具
下载方式
下载存储器
是否掉电丢失
.sof 文件
QuartusII 编译生成
JTAG
FPGA(SRAM )
丢失
.pof 文件
QuartusII 编译生成
AS(Active Slave)
FLSAH(EPCS64)
不会丢失
.jic 文件
QuartusII “File|Convert
Programming File”
JTAG
FLSAH(EPCS64) 
不会丢失
.elf 文件
Nios II IDE
JTAG(调式模式)
FPGA(SRAM )
丢失
.elf 文件
Nios II IDE
JTAG(烧写模式)
FLSAH(EPCS64)
不会丢失 
2、通常称.sof 文件和.pof 文件为FPGA“硬件”或“固件”文件,在QuartusII 中设计编译产生,源文件格式有VHDL、Verilog HDL、AHDL、Tcl(一般用于引脚定义)、原理图(一般用于顶层)等;.elf 文件为“软件”文件,在Nios II IDE 中(新版本为Nios II Software Builder Tools for Eclipse)设计编译产生,源文件为C 语言。

3、.jic 文件为JTAG 间接配置文件(JTAG Indirect Configuration File),使用QuartusII File 菜单下Convert Programming File 命令将.sof 文件转换生成,然后使用QuartusII 的Tools 菜单下Programmer 命令下载到FLASH 中(注意:.jic 文件下 载到FLASH 后必须 关机重新加电!)如下图所示

4、 .elf 文件不能单独下载,必须与“硬件”.sof 文件一起下载才能运行(也可先在QuartusII 中下载.sof,再在NiosII IDE 或Nios II Software Builder Tools for Eclipse中下载.elf),以QuartusII 11.0 版本为例,方法如下:

(1) 使用Nios II 11.0 IDE先点击“开始 | 程序 | Altera|Nios II EDS 11.0 | Legacy Nios II Tools | NiosII11.0 IDE”(注意: 11.0 版本的“Legacy Nios II Tools”必须单独下载安装!)启动NiosII11.0 IDE,打开或导入工程,在Nios II IDE 中点击Tools->Flash Programmer…,出现如下图所示的界面:

需要勾选的部分如图中红线框所标注,第一部分是将Nios II 中的软件程序写到Flash 中,注意还需要加载JDI 文件,即点击“Load JDI File”,选择本系统中的JDI 文件即可。第二部分是将FPGA 的配置文件一起到Flash 中,点击“Browse...”选择Quartus II 生成
的.sof 文件,还需选择将配置文件下载到什么地方,此处还是Flash。最后一部分勾选的是Validata Nios II system ID before software download,即在下载软件程序之前要确认系统的ID 号,这样每次在QuartusII 中修改“硬件”(即.sof 文件)或在Nios II IDE 中修改“软件”(即.elf 文件)后能报警提示,确保硬件与软件最新版本同步。
没有勾选的那一部分是将其它文件下载到Flash 中,比如配置数据文件(Lince5M181 CMOS相机就有!)、汉字字库文件、波形文件等等,将这些文件直接存储到Flash 中,只需要读取就可以了。
选择好之后,点击“Apply”,然后点击“Program Flash”,就可以进行Flash 的烧写了。
若Nios II IDE 的Console 中有如下提示信息:
#!/bin/sh
………….
Programmed xxxKB +xxxKB in x.xs (xxxKB/s)
Did not attempt to verify device contents
Leaving target processor paused
则表示Flash 烧写成功,关机后重新加电运行即可。
(2)使用Nios II Software Builder Tools for Eclipse(简称 Nios II SBTfor Eclipse)
从Altera SOPC Builder 的Nios II 菜单中启动,或从“开始 | 程序 | Altera | Nios II EDS xx.x | …”启动。然后按下述方法下载程序:

●选择Nios II 菜单项中的Flash Programmer(Ctrl+7),弹出Flash Programmer 的设置窗口:

●选择File 菜单的New,弹出窗口:

●指定setting.bsp 文件,sopc information 是自动加载的。

●分别添加 .sof 文件(在Quartus 工程下)和.elf 文件(在Nios 工程下)

●点击Start 命令,进行转换,默认将在software 目录下的bsp 文件夹下生成flash 和script 两个文件夹,并完成烧写,断电重新加电或复位即可。

5、对于有些FPGA,有时用上述4 中的两种方法下载程序到FLASH 后,加电无法正常运行,这好像是Altera 公司Nios II EDS 的bugs,许多用户都遇到过,在Altera forum 上有人给出解决方法:
(1) 在硬盘根目录下新建一个文件夹。例如:D:\jic。
(2) 将Quartus II 工程、Nios II 工程编译生成的sof、elf 都拷贝到此文件夹内;
(3) 按如下格式,新建一个sh 文件,此处命名为xxx.sh;(sh 文件是bash 的批处理文件;类似于DOS 的bat 文件)
echo "sof>flash …"; sof2flash --epcs --input=demo.sof --output=sof.flash --quiet
echo "elf>flash …"; elf2flash --epcs --after=sof.flash --input=demo.elf --output=elf.flash
echo "cat flash…"; cat elf.flash >> sof.flash
echo "flash>hex…"; nios2-elf-objcopy --input-target srec --output-target ihex sof.flash
sof_elf.hex
echo "del flash …"; rm -f *.flash
(4) 运行“开始 | 程序 | Altera | Nios II EDS 11.0 | Nios II 11.0 Command Shell”,执行:
cd d:\jic
./xxx.sh
(5) 在Quartus II 中使用Convert Programming Files 把上述命令生成的sof_elf.hex 转换成.jic 文件即可,类似上述3,只是把SOF Data 换成HEX Data(先Remove 后Add),点Generate 生成jic,再将jic 写入Flash 即可。

上一篇:QuratusII中 NiosII硬件设计工具SOPC Builder与Qsys的区别

下一篇:Altera编程器硬件下载电缆区别