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. css position相对定位与绝对定位彻底搞懂

    定位position position本身就有给...定位的意思 position属性的值: static ---默认值 relative ---相对定位 absolute ---绝对定位 fixed ...

  2. ContextRefreshedEvent事件使用注意事项(Spring)

    0 概述ContextRefreshedEvent 事件会在Spring容器初始化完成会触发该事件.我们在实际工作也可以能会监听该事件去做一些事情,但是有时候使用不当也会带来一些问题. 1 防止重复触 ...

  3. Xamarin Essentials教程打开文件

    Xamarin Essentials教程打开文件 FileSystem类的OpenAppPackageFileAsync()方法可以用来打开App包中特定的文件,其语法形式如下: public sta ...

  4. [OC] @property时,copy、strong、weak、assign的区别

    @property(copy,nonatomic)NSMutableString*copyStr; @property(strong,nonatomic)NSMutableString*strongS ...

  5. 在Node.js中在保持目录结构的情况下压缩指定目录

    最近在做一个文件升级的功能,需要从下载服务器中指定目录下的文件.在学习了zlib后发现这个模块达不到这个功能 在查找资料后发现后发现 archiver 模块很好用,不过我也发现大部分中文资料没有如果查 ...

  6. [转]OpenVPN官网的HOWTO

    因为墙的原因,打不开.特此转一下: HOWTO Introduction OpenVPN is a full-featured SSL VPN which implements OSI layer 2 ...

  7. 封装、property特性及绑定与非绑定方法

    1.封装 (1)什么是封装? 封:属性对外是隐藏的,但对内是开放的: 装:申请一个名称空间,往里面装入一系列名字/属性 (2)为什么要封装? 封装数据属性的目的 首先定义属性的目的就是为了给类外部的使 ...

  8. 初学JDBC的一些总结(一)

    1.关于JDBC的的个人理解: JDBC(Java Data Base Connectivity,java 数据库连接)是用于执行 SQL 语句的 JavaAPI,可以为多种关系型数据库提供统一的访问 ...

  9. 解决 main(int argc, char** argv)这种情况下通过命令行传参,改为main函数里面给定参数。

    本文是原创文章,未经允许,请勿转载. 原来程序中是通过运行exe,然后加上参数,然程序运行起来的.也就是main(int argc, char** argv)这里是通过argv参数是从命令行 传过来的 ...

  10. 深度优先搜素之N皇后问题

    #include<stdio.h>#include<malloc.h>#include<math.h>int x,a[101],book[101],count=0; ...