sof与NIOS II的elf固件合并生成jic文件

关于sof与NIOS II的elf固件合并生成jic文件,我在参考网上的教程后,按教程操作,但中间遇到一些问题,在自己调试后,终于搞定,现在将一步一步的教程分享给大家,大家可以进行转载,请注明来源,谢谢!

本文参考【小梅哥SOPC学习笔记】sof与NIOS II的elf固件合并jic得到文件            https://www.cnblogs.com/xiaomeige/p/6709991.html

有两种方法可以让大家使用,一种是输入命令法,另一种是把命令放在txt文件中,执行TXT文件即可,第一种每次转化都要输入命令,比较繁琐,第二种,简单修改txt文件即可,我推荐第二种,下面两种方法都介绍下:

不管是方法一还是方法二,前提首先要在Qsys里面加入EPCS模块,如下图所示。然后生成对应的.sof文件和.elf文件。

 

方法一:命令法

1.将.sof 文件生成flash文件:

⑴首先我们打开我们的NIOS II软件工程,可看到led和led_bsp

⑵选中led,单击右键并选择Nios II -> Nios II Command Shell

此时出现如下界面

⑶将quaryus生成的.sof文件从output_files文件夹中拷贝到led文件夹中(目录如下图):

即从  

拷贝到  

⑷在命令行窗口中执行

sof2flash --input=test_led.sof --output=hwimage.flash --epcs –verbose命令

使用ls命令,可看到生成了hwimage.flash

2.将.elf文件生成flash文件:

⑴输入命令:elf2flash --input=led.elf --output=swimage.flash --epcs --after=hwimage.flash –verbose

 

使用ls命令,可看到生成了swimage.flash文件

3.转换.flash文件到.hex文件

直接输入以下命令:nios2-elf-objcopy --input-target srec --output-target ihex swimage.flash swimage.hex

 

输入ls命令,可看到生成swimage.hex

 4.把hex文件转换成jic文件

⑴在Quartus® II软件中,open File > Convert Programming Files > Set the programming file as JTAG Indirect Configuration File (.jic).

⑵选择EPCS

在配置下拉菜单中选择合适大小的EPCS器件(见第7步图)

⑶命令jic

命名你的输出.jic 文件(见第7步图)

⑷Add Device

点击Flash Loader的下面,在右边选择Add Device (见第7步图)

⑸选择FPGA器件

从列表中选择你的FPGA器件(见第7步图)

⑹Add SOF

点击SOF Data,选择Add File,选择加.sof 文件(见第7步图)

⑺Add Hex data

点击Add Hex data,选择Relative addressing,选择上面生成的.hex 文件

 

⑻.然后点击Generate生成。生成完成后检查生成的 .map 文件(使用记事本打开)有Page_0在起始地址0x0,.hex文件在Page_0结束地址后的起始地址1

 

 5.下载jic文件

下载完成后,重新对FPGA上电,观看效果

 方法二:txt文件法

1.在led目录下新建一个txt文件

2.把命令复制到txt文件中

sof2flash --input=test_led.sof --output=hwimage.flash --epcs -verbose
elf2flash --input=led.elf --output=swimage.flash --epcs --after=hwimage.flash -verbose
nios2-elf-objcopy --input-target srec --output-target ihex swimage.flash swimage.hex

 

如果下次下载程序时,只需要把下图中的名字改成对应的即可。

3.在命令窗口执行./test.txt命令

生成了和方法一一样的hwimage.flash,swimage.flash,swimage.hex文件。

 4.生成jic文件

按照上面方法一的步骤,把hex文件转换成jic文件

5.下载程序

 按照方法一中的下载程序步骤

文件分成两个版本, “合并sofelf生产jic文件脚本.rar”为EP4CE10+EPCS16的版本,适用于小梅哥所有以EP4CE6、EP4CE10 FPGA芯片开发的FPGA开发板。如AC620、AC601、Starter等等 “合并sofelf生产jic文件脚本 - 4ce30.rar”为EP4CE30+EPCS64的版本,适用于小梅哥所有以EP4CE30、EP4CE40 FPGA芯片开发的FPGA开发板。如AC6102 工具说明 本工具实现将Quartus ii编译产生的sof文件NIOS II EDS编译产生的elf文件合并jic文件,以方便烧写。 根据测试,本工具使用需要具备以下条件: 1、quartus ii软件版本在13.0及以上 2、quartus ii编译生成sof文件输出目录为根目录下的output_files文件夹下。很多从老版本修改过来工程sof输出目录在工程根目录,因此需要用户自行修改脚本和cof文件 3、nios ii的软件工程路径为quartus 工程根目录下的software文件夹下(一般都能满足) 使用方法 1、将generate_jic.tcl、generate_jic.sh、generate_jic.cof文件拷贝到你的nios ii软件工程下。 2、在eclipse中选中应用工程,注意是应用工程,不是BSP工程,右键->NIOS II->NIOS command shell。 3、NIOS command shell中输入"./generate_jic.sh"。 (运行完成后,会在Quartus II工程根目录下生成一个myoutput_files的文件夹,同时将generate_jic.tcl、generate_jic.cof文件拷贝到工程根目录下。) 4、在quartus ii中点击Tools -> Tcl Scripts,选中generate_jic.tcl,点击run, (运行成功,会在myoutput_files目录下生成名叫hs_combined.jic文件) 5、烧写hs_combined.jic到FPGA中,对板卡断电重新上电,新固件就可以开始运行了。
文件分成两个版本, “合并sofelf生产jic文件脚本.rar”为EP4CE10+EPCS16的版本,适用于小梅哥所有以EP4CE6、EP4CE10 FPGA芯片开发的FPGA开发板。如AC620、AC601、Starter等等 “合并sofelf生产jic文件脚本 - 4ce30.rar”为EP4CE30+EPCS64的版本,适用于小梅哥所有以EP4CE30、EP4CE40 FPGA芯片开发的FPGA开发板。如AC6102 工具说明 本工具实现将Quartus ii编译产生的sof文件NIOS II EDS编译产生的elf文件合并jic文件,以方便烧写。 根据测试,本工具使用需要具备以下条件: 1、quartus ii软件版本在13.0及以上 2、quartus ii编译生成sof文件输出目录为根目录下的output_files文件夹下。很多从老版本修改过来工程sof输出目录在工程根目录,因此需要用户自行修改脚本和cof文件 3、nios ii的软件工程路径为quartus 工程根目录下的software文件夹下(一般都能满足) 使用方法 1、将generate_jic.tcl、generate_jic.sh、generate_jic.cof文件拷贝到你的nios ii软件工程下。 2、在eclipse中选中应用工程,注意是应用工程,不是BSP工程,右键->NIOS II->NIOS command shell。 3、NIOS command shell中输入"./generate_jic.sh"。 (运行完成后,会在Quartus II工程根目录下生成一个myoutput_files的文件夹,同时将generate_jic.tcl、generate_jic.cof文件拷贝到工程根目录下。) 4、在quartus ii中点击Tools -> Tcl Scripts,选中generate_jic.tcl,点击run, (运行成功,会在myoutput_files目录下生成名叫hs_combined.jic文件) 5、烧写hs_combined.jic到FPGA中,对板卡断电重新上电,新固件就可以开始运行了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值