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

2014-8-7 14:34 8773 29 32 分类: FPGA/CPLD 文集: Nios II

 

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后必须关机重新加电!)如下图所示:

 

图1.jpg

 

图2.jpg

 

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…,出现如下图所示的界面:

 

图3.jpg

需要勾选的部分如图中红线框所标注,第一部分是将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的设置窗口:

 

图4.jpg

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

 

图5.jpg

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

 

图6.jpg

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

 

图7.jpg

●点击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即可。

文章评论3条评论)

登录后参与讨论

用户377235 2016-4-6 16:24

使用最后一种方法,换高版本的QII生成hex文件就可以下载成功了

用户1858053 2015-12-24 15:50

你好,能对最后介绍的方法说的详细一点么,我也遇到了这样的问题,下载进去之后重新上电,没有反应

用户377235 2014-8-8 22:10

额,不得不说手机版不适合插入表格…

用户377235 2013-4-3 11:54

还行。对于新手而言,有很多小概念还是不懂的。比如原语啊,什么的。建议LZ可以更加的详细一点~!

ash_riple_768180695 2007-5-29 10:57

这样的评论,不理也罢。

我认为上面的内容如果准确、详尽,确实值得一写。

用户86599 2007-5-29 08:41

你这也好意思写.
相关推荐阅读
用户36690 2014-09-29 09:36
高速LVDS接口信号完整性处理实例
  一、系统介绍 EMCCD相机由图像传感器、驱动电路、FPGA(Spartan-3)、LVDS接口和电源等组成。LVDS输出接口使用2片DS92LV1021,每片实现10bit并行数据到...
用户36690 2014-08-20 13:58
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
    当一个系统中含有多片(2片以上)Xilinx FPGA、CPLD或PROM(FLASH)时,可采用单一JTAG口以菊花链(Daisy Chain)形式将所有芯片串联起来实现下载编程...
用户36690 2014-08-12 07:41
NiosII程序编译时出现onchip_mem不够问题及解决方法
    开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT f...
用户36690 2014-08-11 15:06
Altera QuartusII及Cyclone IV E使用经验
  1、仅C8L、IC8L、C9L使用1.0V核电压(VCCINT),其它速度的均使用1.2V核电压。 2、对于作为LVDS传输的Bank必须接2.5V的VCCIO,参考数据手册表1-20...
用户36690 2014-08-07 14:35
Nios II IDE 与 Nios II SBT for Eclipse的区别
  1、Nios II IDE即Nios II Integrated Development Environment(Nios II 集成开发环境),Altera网站是这样介绍的: (ht...
用户36690 2014-08-07 14:34
Quratus II中 Nios II 硬件设计工具SOPC Builder与Qsys的区别
  1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活...
我要评论
3
29
关闭 站长推荐上一条 /2 下一条