niosii 改变软核之后重新编译方法
操作系统:Win7 64 bit
开发环境:Quartus II 12.0 (64-Bit) + Nios II 12.0 Software Build Tools for Eclipse
使用Quartus 时,有时候出于备份的考虑,或者从网上下载别人的硬件工程, 硬件工程目录会改变,导致NIOS工程不能找到sopcinfo文件,从而不能进行下一步软件开发。比较笨重的方法是新建一个NIOS工程,然后将原始的NIOS工程源文件添加到这个新工程中。这样的做法比较繁琐,而且新建的新工程需要重新编译BSP工程,带来不必要的麻烦。比较这里介绍一种较为简单的方法。
例如:
原始硬件工程目录(sopcinfo文件所在目录)
D:\_prj\Altera\DE2_70_NIOS_VGA\ NIOS工程目录
D:\_prj\Altera\DE2_70_NIOS_VGA\Software
修改之后的:
新的硬件工程目录(新sopcinfo文件所在目录)
E:\_prjbak\Altera\DE2_70_NIOS_VGA\
新的NIOS工程目录
E:\_prjbak\Altera\DE2_70_NIOS_VGA\Software
1、发现问题
启动NIOS ECLIPSE,将workspace切换到新的NIOS工程目录下,即E:\_prjbak\Altera\DE2_70_NIOS_VGA\Software。这个时候,如果直接编译原工程,会提示找不到sopcinfo文件:
make all
Info: Building ../VGA_bsp/
make --no-print-directory -C ../VGA_bsp/
makefile:580: Warning: SOPC File D:\_prj\Altera\DE2_70_NIOS_VGA\DE2_70_SOPC.sopcinfo could not be found.
[BSP build complete]
[VGA build complete]
这个时候,如果查看bsp信息,会提示bsp找不到sopcinfo文件和sopc设计,CPU之类的信息同样不会找到了

2、解决问题
打开bsp工程的settings.bsp文件,这是一个xml格式的配置文件。发现BspGeneratedLocation节点和SopcDesignFile节点分别所指示的BSP生成路径和SOPC设计文件路径均是原有软件工程路径和硬件工程路径:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <sch:Settings xmlns:sch="http://www.altera.com/embeddedsw/bsp/schema">
3 <BspType>hal</BspType>
4 <BspVersion>default</BspVersion>
5 <BspGeneratedTimeStamp>2013-4-22 10:52:05</BspGeneratedTimeStamp>
6 <BspGeneratedUnixTimeStamp>1366599125093</BspGeneratedUnixTimeStamp>
7 <BspGeneratedLocation>D:\_prj\Altera\DE2_70_NIOS_VGA\Software\VGA_bsp</BspGeneratedLocation>
8 <BspSettingsFile>settings.bsp</BspSettingsFile>
9 <SopcDesignFile>D:\_prj\Altera\DE2_70_NIOS_VGA\DE2_70_SOPC.sopcinfo</SopcDesignFile>
10 <JdiFile>default</JdiFile>
11 <Cpu>cpu</Cpu>
12 <SchemaVersion>1.9</SchemaVersion>
13 <Setting>
...

图示:

以此将其修改成新的软件工程和硬件工程路径即可。修改后的settings.bsp文件:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <sch:Settings xmlns:sch="http://www.altera.com/embeddedsw/bsp/schema">
3 <BspType>hal</BspType>
4 <BspVersion>default</BspVersion>
5 <BspGeneratedTimeStamp>2013-4-22 10:52:05</BspGeneratedTimeStamp>
6 <BspGeneratedUnixTimeStamp>1366599125093</BspGeneratedUnixTimeStamp>
7 <BspGeneratedLocation>E:\_prjbak\Altera\DE2_70_NIOS_VGA\Software\VGA_bsp</BspGeneratedLocation>
8 <BspSettingsFile>settings.bsp</BspSettingsFile>
9 <SopcDesignFile>E:\_prjbak\Altera\DE2_70_NIOS_VGA\DE2_70_SOPC.sopcinfo</SopcDesignFile>
10 <JdiFile>default</JdiFile>
11 <Cpu>cpu</Cpu>
12 <SchemaVersion>1.9</SchemaVersion>
13 <Setting>
...

图示:

红色部分是修改后的。保存。再重新生成bsp

再查看bsp信息,已经识别到新的sopcinfo文件了

重新编译原工程(如果愿意可以先clean原工程和bsp工程),可以完成编译并生成可执行文件elf

========================
注:这种方法适应于Quartu II 10.0/ NIOS IDE 10.0以后的版本,对于Quartu II 10.0/ NIOS IDE 10.0以前版本,修改的是syslib里面的配置文件system.stf文件。这个文件和settings.bsp类似,也是一个xml文件:

1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <stf>
3 <project ptf="E:\Sample_SOPC\nios_system.ptf" target="Nios II System Library">
4 </project>
5 <cpu name="cpu_0">
6 </cpu>
7 <os_spec clean_exit="yes" direct_drivers="no" exception_stack="no" instruction_emulation="no" name="none (single-threaded)" no_c_plus_plus="no" no_exit="no" profiling="no" small_footprint="no" sopc_component_dir="altera_hal" stack_checking="no" stderr="jtag_uart_0" stdin="jtag_uart_0" stdout="jtag_uart_0">
8 <sys_defines>
9 <define name="alt_max_fd" quote="no" value="32"/>
10 <define name="alt_sys_clk" quote="no" value="none"/>
11 <define name="alt_timestamp_clk" quote="no" value="none"/>
12 </sys_defines>
13 <make_macros>
14 <macro name="alt_sim_optimize" quote="no" value="0"/>
15 </make_macros>
16 </os_spec>
17 <link_spec auto_gen_script="yes">
18 <script name="none">
19 <section memory="onchip_memory2_0" name=".text"/>
20 <section memory="onchip_memory2_0" name=".rodata"/>
21 <section memory="onchip_memory2_0" name=".rwdata"/>
22 </script>
23 </link_spec>
24 </stf>

niosii 改变软核之后重新编译方法的更多相关文章
- wrHDL编译中软核代码初始化及编译耗时长的问题
问题的提出整个WR的ISE工程比较大,编译时间很长,导致开发效率低.通过分析发现,ISE在综合的时候大量的时间都花在了初始化DPRAM上.调研发现Xilinx提供了BMM文件和DATA2MEM工具,可 ...
- 关于Quartus构建nios软核以及eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
这不是一篇构建nios的教程,而是遇到的各种问题以及解决方法.至于构建教程,网上一大把,我推荐正点原子的FPGA教程,比较新,比较详细,通俗易懂!!! 这里以一个点亮LED灯的Nios软核为例,很明显 ...
- 【小梅哥FPGA进阶教程】MC8051软核在FPGA上的使用
十.MC8051软核在FPGA上的使用 本教程内容力求以详细的步骤和讲解让读者以最快的方式学会 MC8051 IP core 的应用以及相关设计软件的使用,并激起读者对 SOPC 技术的兴趣.本实验重 ...
- 【lattice软核】ROM的使用
=======================>>>>> 一.ROM核调用:==================>>>>> ======== ...
- [置顶]
基于FPGA的VGA简易显存设计&NIOS ii软核接入
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...
- Spartan6上软核系统自定义外设调用AXI Stream FFT经验
这几天希望能在Spartan系列新品xc6slx16csg324-2运行带有FFT的软核处理系统,基本系统早就搭建好了.需要做的就是建立一个封装有Xilinx提供的FFT IP的自定义外设.由于Xil ...
- ISE创建Microblaze软核(三)
第七步 进入SDK开发环境 编译完成后弹出如下对话框,选择SDK的工作目录.在MicroblazeTutor中创建一个Workspace文件夹,并选择该文件夹为SDK的工作目录. 进入SDK主界面. ...
- ISE创建Microblaze软核(二)
ISE创建Microblaze软核(二) (2012-07-13 15:09:08) 转载▼ 标签: 杂谈 分类: FPGA开发 第四步 进入Platform Studio操作界面 通过向导创建软核后 ...
- 每天进步一点点------创建Microblaze软核(三)
第七步 进入SDK开发环境编译完成后弹出如下对话框,选择SDK的工作目录.在MicroblazeTutor中创建一个Workspace文件夹,并选择该文件夹为SDK的工作目录.进入SDK主界面.第八步 ...
随机推荐
- 拓扑排序(附LeetCode题目)
算法期中考到一题关于拓扑序的题目,觉得很值得一写. 1.什么是拓扑序? 对一个有向无环图进行拓扑排序,假如图中存在一条从顶点A到顶点B的路径,则拓扑序中顶点A出现在顶点B的前面.要注意的是,这是对有向 ...
- Windows:FTP命令大全
Windows:FTP命令大全 简介 1, open:与服务器相连接: 2, send(put):上传文件: 3,get:下载文件: 4,mget:下载多个文件: 用法: mget *:下载当前路径下 ...
- ASP.NET MVC 4.0 中使用NPOI 2.2.0 按模板生成Excel报表
使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/ ...
- java用servlet、cookie实现一个阅读记录
效果如图 代码1 package com.xiaostudy.servlet; import java.io.IOException; import java.io.PrintWriter; impo ...
- Python连接MongoDB操作
1.安装PyMongo 注意:请勿安装“bson”软件包. PyMongo配有自己的bson包; 执行“pip install bson”或“easy_install bson”则会安装与PyMong ...
- 编写第一个springboot应用
1.1.1. 设置spring boot的parent <parent> <groupId>org.springframework.boot</groupId> ...
- thinkphp接收阿里淘宝客数据
坑在于淘宝客api返回的数据对象是SimpleXMLElement Object类型,不转为php的json array类型数据直接扔到thinkphp循环输出中会达不到要的效果,奇奇怪怪的数组,一度 ...
- mysql数据库优化课程---12、mysql嵌套和链接查询
mysql数据库优化课程---12.mysql嵌套和链接查询 一.总结 一句话总结:查询user表中存在的所有班级的信息? in distinct mysql> select * from cl ...
- ImageView显示图像控件
ImageView显示图像控件 一.简介 1. 2. ImageView,图像视图,直接继承自View类,它的主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用 ...
- Selenium学习笔记(1) - 自动化测试体系与原理
技术体系 基于代码的测试(Code-Based Testing) 基于协议的测试(Protocol-Based Testing) 基于界面的测试(GUI-Based Testing) 工作原理 基于代 ...