最近在学习过程中遇到需固化NIOS的过程,在经过不断的尝试和查找之后,汇总出以下几种烧录方式。
烧录方式与实际的硬件环境有关系,但总体归为以下两类:
一、通过nios eclipse软件自带的Flash Programmer来进行固化;
二、通过生成的elf文件进行转换后,与sof文件生成jic文件进行固化;
三
一、Flash Programmer 固化操作
1.在Qsys中,添加EPCS控制器,并连号线,导出引脚,设置中断(问题1:中断优先级对系统启动有没有影响),然后generate系统,quartus工程重新编译(不再详细说明)。
2.在nios eclipse中,对BSP进行设置(右键BSP工程-->NIOS II-->BSP Editor),勾选如图示选项,重新编译BSP,重新编译工程,建议使用全编译(Ctrl + B)。
3.将之前quartus工程编译好的sof文件下载至板子中,在NIOS Eclipse中(NIOS II-->Flash Programmer),在连接设置中忽略系统ID和timestamp,在窗口中,要找到自己的下载器和板子,如果没有,点击Refresh Connections。
4.设置完后,新建下载文件,在弹出窗口中,选择自己所使用的SOPC文件或BSP设置文件(选择的时候注意路径)
选择好后,添加elf文件个sof文件(注意路径),添加文件时,注意文件类型,可在下方选择。添加好文件后在设置中勾选查出flash和在复位处启动。
然后开始下载烧录,注意窗口提示的信息内容。
烧录完成断电重启后,程序可正常运行。
二、通过生成的elf文件进行转换后,与sof文件生成jic文件进行固化
在Eclipse工程中,将sof文件拷贝到工程文件的目录下
右键工程目录名称,打开命令行模式(Nios II --> Nios II Command shell...),输入以下命令
sof2flash --input=sof文件名.sof --output=自定义文件名1.flash --epcs –verbose
elf2flash --input=elf文件名.elf --output=自定义文件名2.flash --epcs --after=自定义文件名1(此处一定要与上一步骤的文件名相同).flash --verbose
nios2-elf-objcopy --input-target srec --output-target ihex 自定义文件名1.flash hex文件名(自定义).hex
将文件转换为hex文件
在quartus中,进行文件转换,添加HEX、SOF、设备型号,进行文件转换。得到jic文件,进行烧录
(等待后续进行详细说明)
在这其中,涉及到几个问题:
1、下载方式AS、JTAG
2、固化的位置:片上RAM、片外RAM、epcs(flash)
(等待详细说明)