新闻  |   论坛  |   博客  |   在线研讨会
Altera FPGA带NiosII内核程序的JTAG下载方法总结
emesjx | 2014-08-07 01:23:41    阅读:5185   发布文章

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 SBT for 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 "delflash …"; 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即可。 
参与讨论
登录后参与讨论
推荐文章
最近访客