Nios II 程序固化(如何下载elf文件)

2018年10月15日 21:37:32 瓜儿不甜 阅读数:723
 
 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/snaking616/article/details/83064887

在调试Nios程序阶段,通常需要先将配置文件(*.sof)通过 JTAG 下载刡到FPGA 中,接着在Nios II IDE窗口中,右击工程名,选择Debug as -> Nios II hardware 来实现内核软件的调试,调试中的代码在开发板再次上电后会丢失,如何固化Nios程序呢,详细步骤如下:

1. 下载配置文件(*.sof)

首先,需要将 usb blaster 与开发板连接,我们先将其与开发板的 JTAG 模式接口相连。然后我们打开 NIOS IDE 软件(假设我们已经将工程编译好了),打开后,点击下图所示红圈处

点击后,如下图所示,然后点击下图红圈处(Add File)

点击后,如下图所示,选择 led.sof

选择后,如下图所示,然后点击 Start

点击后,成功了如下图所示

2. 下载内核软件程序(*.elf)

接下来开始下载程序到 EPCSx 中,我们必须将配置信息和 NIOS 程序同时下载到配置芯片中,点击下图所示红圈处

点击后,如下图所示,其中需要将红圈 1、 2、 4 选中,红圈 3 不用选。

选中红圈1 是将 NIOS 软件程序写到 FLASH 中,而到底是写到哪里,是由前面我们讲过的 CPU中 Reset Vector 的 memory 决定。也就是说,我们之前选择了 epcs,那么我们就是将代码下载到EPCSX 中了。

选中红圈 2 是将 FPGA 的配置文件下载到FLASH 中,而这里到底下载到哪是由红圈 5 处决定的,我们在这里还是选择 epcs,就是将配置文件下载到 EPCSX 中。其实 EPCSX 实质就是一种串行的 FLASH。

红圈 3 是将文件下载到 flash 中,比如说字库文件啊,波形文件啊等等,将这些文件直接存储到FLASH 中,只需要读取就可以了。不过这个选项跟我们下载配置文件和 NIOS程序时没有关系的,所以返里不选择它。

圈4勾选的是Validata Nios II system ID before software download,即在下载软件程序之前要确认系统的ID号,这样每次在QuartusII中修改“硬件”(即.sof文件)或在Nios II IDE中修改“软件”(即.elf文件)后能报警提示,确保硬件与软件最新版本同步。

上面选择好以后,点击 Apply,然后点击 Program Flash,就可以开始烧写 FLASH了,至此,如何将 FPGA 配置文件和 NIOS 的程序下载到 EPCSx(x 为 1,4,16…)里面的过程就说完了。

3. 参考:

(1)NIOSII那些事儿 REV7.0_完整版-CSDN下载

https://download.csdn.net/download/snaking616/10719292

(2)Altera FPGA带NiosII内核程序的JTAG下载方法总结_百度文库

https://wenku.baidu.com/view/5fd49863f18583d048645950.html

转载:https://blog.csdn.net/snaking616/article/details/83064887

Nios II 程序固化(如何下载elf文件)的更多相关文章

  1. 解决NIOS II工程移动在磁盘上位置后project无法编译问题

    说明:本文档于2017年3月4日由小梅哥更新部分内容,主要是增加了讲解以Quartus II13.0为代表的经典版本和以15.1为代表的更新版本之间,解决问题的一些小的差异. 如果用户只是想快速解决问 ...

  2. 【小梅哥SOPC学习笔记】NIOS II工程目录改变时project无法编译问题

    解决NIOS II工程移动在磁盘上位置后project无法编译问题 说明:本文档于2017年3月4日由小梅哥更新部分内容,主要是增加了讲解以Quartus II13.0为代表的经典版本和以15.1为代 ...

  3. Nios II的Boot过程分析

    目录 1       概述....................................................................... 1 2       几种常见的 ...

  4. 关于Nios II的启动分析(转载)

    原文地址:http://hi.baidu.com/goatdai/item/cc33671545d89243e75e06ad 常用到的存储器包括SDRMA.SRAM.FLASH.Onchip_memo ...

  5. Nios II 系统时钟timestamp的应用

    在用Nios II做外设时序驱动的时候,经常会用延时函数.有时会常使用某个FPGA芯片和时钟,比如笔者一直使用的芯片是cyclone系列 EP2C35F484C8N,PLL输入SOPC时钟是50M.因 ...

  6. Linux之ELF文件初探

    对比windowsPE文件与概述 在windows中可执行文件是pe文件格式,Linux中可执行文件是ELF文件,其文件格式是ELF文件格式,在Linux下的ELF文件除了可执行文件(Excutabl ...

  7. 扒一扒ELF文件

    ELF文件(Executable Linkable Format)是一种文件存储格式.Linux下的目标文件和可执行文件都按照该格式进行存储,有必要做个总结. 目录 1. 链接举例 2. ELF文件类 ...

  8. NIOS II 软件程序固化的相关知识

    片上RAM和ROM的SOPC系统1.生成hex文件2.将hex文件添加到quartus工程中(添加qip文件)3.对工程进行全编译4.下载sof就可以看到程序运行5.将sof转换为jic文件,烧写到E ...

  9. sof文件和NIOS II的软件(elf)合并为jic文件以使用Quartus Programmer烧写

    将Altera FPGA的sof文件和NIOS II的elf固件合并为一个jic文件以使用Quartus Programmer烧写   我们在学习和调试NIOS II工程的时候,一般都是先使用Quar ...

随机推荐

  1. 241. String to Integer

    描述 Given a string, convert it to an integer. * You may assume the string is a valid integer number t ...

  2. js变量和函数声明的提升

    函数声明和变量声明总是会被解释器悄悄地被“提升”到方法体的最顶部 请注意,变量赋值并没有被提升,只是声明被提升了. 函数的声明比变量的声明具有高的优先级. 下面的程序是什么结果? var foo =  ...

  3. getchar getche getch

    转至:https://blog.csdn.net/hairetz/article/details/4161954 (1) getch()和getche()函数     这两个函数都是从键盘上读入一个字 ...

  4. C# 结合html5 批量上传文件和图片预览

    html5 新特性 <input id="imgsf" type="file" name="imgsf" multiple /> ...

  5. Lua脚本性能优化指南

    https://github.com/flily/lua-performance/blob/master/Guide.zh.md https://springrts.com/wiki/Lua_Perf ...

  6. php 压缩文件 zip

    <?php    class PHPZip    {        private $ctrl_dir     = array();        private $datasec      = ...

  7. 南方IT学校期末PCB结课项目考试(实操)说明书

    南方IT学校期末结课项目考试(实操)说明书(一) 课程:<印制电路板设计技术>(二) 项目:笔记本电脑电源适配器的印制电路板设计(三) 背景说明:如今笔记本已经进入千家万户,作为给电脑充电 ...

  8. Scrapy Crawl 运行出错 AttributeError: 'xxxSpider' object has no attribute '_rules' 的问题解决

    按照官方的文档写的demo,只是多了个init函数,最终执行时提示没有_rules这个属性的错误日志如下: ...... File "C:\ProgramData\Anaconda3\lib ...

  9. [jzoj]1417.数学题

    Link https://jzoj.net/senior/#main/show/1417 Problem 当Alice在浏览数学书时,看到一个等式A=S,奇怪的是A和S并不相等.Alice发现可以通过 ...

  10. C语言中字符输入问题

    先上例题,一道太水太水的题, http://acm.hdu.edu.cn/showproblem.php?pid=1170 让做一个简单的计算器.然而入坑了. #include<stdio.h& ...