《FPGA NiosII篇》Part 1工程创建与注意点
2016-03-16 23:52
183 查看
《FPGA NiosII篇》Part 1工程创建与注意点
配置环境:
QuratusII 11.0
Nios II 11.0
*1、FPGA编译过程中出现错误,NIOSII核中一个自建实例出现异常,报错无实体定义。 Error: Node instance " "instantiates undefined entity " ".(未定义实体。) 前两天才出现这个问题,当时解决了,昨天又出这个问题,一时想不起怎么解决的了。今早到网上查了一下找到了原因,因为是从原先的调试用工程下边拷过来的顶层文件,而没有加入底层文件。于是将实例的.qip文件(在QSYS工程的文件夹下,不是.v文件)拷到(或添加到)现在的工程下边,在quantus的工具栏的file->open,打开该.vhd文件,然后在project->add
current file to project,重新编译即通过。把问题和解决办法贴在空间里,以后再犯错的时候方便查找。
注意:
有时候会提示加入的.v文件导致Instance产生ambiguous,这是要根据提示,找到文件夹下的对应文件,将它们全部删掉,再重新Start Analysis & Synthesis。
2、在编译Qsys时会出现导入qsys文件报错,这时将报错的文件目录删除即可。
注意:工作空间的文件夹不要随便删,NiosII这个软件Bug太多了,不经意删除一个文件导致一堆错误。
*3、Qsys文件与原理图的命名不能相同,否则生成的模块无法拖入原理图中编辑。
*4、Nios II Eclipse新建工程时报错对话框“
Failed to execute:./creat-this-app --no-make ”
解决方法:以管理员身份运行Nios
II 11.0 Software Build Tools for Eclipse(我的电脑中NIOS II IDE与Nios II 11.0 Software Build Tools for Eclipse是不大一样的,尤其在新建项目时表现特别明显,当然网上有的解决方法就是直接以管理员的身份运行Nios II IDE也可以解决问题,视具体的软件版本和情况而定)即可,可以解决只显示.bsp文件夹而不显示其他文件夹的问题。
注意:
假如我在NiosII中创建了一个sdram的项目,创建结束后发现有时候只有一个sdram_bsp的文件夹在左边界面上,而
另外一个包含了main函数的sdram文件夹没法显示!
解决方法:
1)、在Quartus II中创建完.bdf的原理图并成功编译后,选择Tools—>Nios
II Software Build Tools for eclipse,进入NiosII界面,第一步,Switch Workspace(转换工作空间),选择和quartusII中工程相同的文件夹,然后关闭eclipse。
2)、第二步,进入桌面以管理员身份运行Nios
II 11.0 Software Build Tools for Eclipse。
3)、第三步,新建NiosII
application and BSP from Template,载入内核文件,命名sdram,Finish。此时可见两个文件夹:sdram和sdram_bsp.
4)、第四步,修改sdram文件夹下面的hello_world.c文件为sdram.c文件,.c一定要保留,否则可能报错。打开该文件,加入相应的源代码。
5)、第五步,右击sdram文件夹,选择NiosII—>BSP
Editor—>在界面中选择树型结构上面的setting—>勾选enable_exit、enable_reduced_device_drivers、enable_small_c_library、enable_sopc_sysid_check。
6)、第六步,单击右下角的Generate—>生成完毕后退出对话框。
7)、第七步,右击sdram文件夹,选择Build
Project。
8)、第八步,返回QuratusII,选择Programmer下载调试.sof(针对JTAG口的下载文件,还有一个.eof文件),start,下载结束后,保存,关闭对话框。
9)、第九步,回到NiosII,右击sdram文件夹,run
as—>NiosII Hardware。
10)、第十步,run
as—>run configurations,进入对话框,进入Target Connection栏,refresh connection后,查看System ID Properties,没有空白或者对话框上方没有报错时,选择Apply,然后Run。
5、在NiosII中改Hello World.c文件时,记得把.c带上,否则会报错。
6、IOWR_ALTERA_AVALON_PIO_DATA这个函数使用时总是报无法找到相应的头文件altera_avalon_pio_regs.h时,我们可以直接改用其他的基本函数来替换它。
解决办法:如给IOWR(LED_BASE, 0, 0x1);这个函数,可以直接给LED_BASE赋值。该函数在io.h中,文件加上#include
<io.h>即可解决问题。
配置环境:
QuratusII 11.0
Nios II 11.0
*1、FPGA编译过程中出现错误,NIOSII核中一个自建实例出现异常,报错无实体定义。 Error: Node instance " "instantiates undefined entity " ".(未定义实体。) 前两天才出现这个问题,当时解决了,昨天又出这个问题,一时想不起怎么解决的了。今早到网上查了一下找到了原因,因为是从原先的调试用工程下边拷过来的顶层文件,而没有加入底层文件。于是将实例的.qip文件(在QSYS工程的文件夹下,不是.v文件)拷到(或添加到)现在的工程下边,在quantus的工具栏的file->open,打开该.vhd文件,然后在project->add
current file to project,重新编译即通过。把问题和解决办法贴在空间里,以后再犯错的时候方便查找。
注意:
有时候会提示加入的.v文件导致Instance产生ambiguous,这是要根据提示,找到文件夹下的对应文件,将它们全部删掉,再重新Start Analysis & Synthesis。
2、在编译Qsys时会出现导入qsys文件报错,这时将报错的文件目录删除即可。
注意:工作空间的文件夹不要随便删,NiosII这个软件Bug太多了,不经意删除一个文件导致一堆错误。
*3、Qsys文件与原理图的命名不能相同,否则生成的模块无法拖入原理图中编辑。
*4、Nios II Eclipse新建工程时报错对话框“
Failed to execute:./creat-this-app --no-make ”
解决方法:以管理员身份运行Nios
II 11.0 Software Build Tools for Eclipse(我的电脑中NIOS II IDE与Nios II 11.0 Software Build Tools for Eclipse是不大一样的,尤其在新建项目时表现特别明显,当然网上有的解决方法就是直接以管理员的身份运行Nios II IDE也可以解决问题,视具体的软件版本和情况而定)即可,可以解决只显示.bsp文件夹而不显示其他文件夹的问题。
注意:
假如我在NiosII中创建了一个sdram的项目,创建结束后发现有时候只有一个sdram_bsp的文件夹在左边界面上,而
另外一个包含了main函数的sdram文件夹没法显示!
解决方法:
1)、在Quartus II中创建完.bdf的原理图并成功编译后,选择Tools—>Nios
II Software Build Tools for eclipse,进入NiosII界面,第一步,Switch Workspace(转换工作空间),选择和quartusII中工程相同的文件夹,然后关闭eclipse。
2)、第二步,进入桌面以管理员身份运行Nios
II 11.0 Software Build Tools for Eclipse。
3)、第三步,新建NiosII
application and BSP from Template,载入内核文件,命名sdram,Finish。此时可见两个文件夹:sdram和sdram_bsp.
4)、第四步,修改sdram文件夹下面的hello_world.c文件为sdram.c文件,.c一定要保留,否则可能报错。打开该文件,加入相应的源代码。
5)、第五步,右击sdram文件夹,选择NiosII—>BSP
Editor—>在界面中选择树型结构上面的setting—>勾选enable_exit、enable_reduced_device_drivers、enable_small_c_library、enable_sopc_sysid_check。
6)、第六步,单击右下角的Generate—>生成完毕后退出对话框。
7)、第七步,右击sdram文件夹,选择Build
Project。
8)、第八步,返回QuratusII,选择Programmer下载调试.sof(针对JTAG口的下载文件,还有一个.eof文件),start,下载结束后,保存,关闭对话框。
9)、第九步,回到NiosII,右击sdram文件夹,run
as—>NiosII Hardware。
10)、第十步,run
as—>run configurations,进入对话框,进入Target Connection栏,refresh connection后,查看System ID Properties,没有空白或者对话框上方没有报错时,选择Apply,然后Run。
5、在NiosII中改Hello World.c文件时,记得把.c带上,否则会报错。
6、IOWR_ALTERA_AVALON_PIO_DATA这个函数使用时总是报无法找到相应的头文件altera_avalon_pio_regs.h时,我们可以直接改用其他的基本函数来替换它。
解决办法:如给IOWR(LED_BASE, 0, 0x1);这个函数,可以直接给LED_BASE赋值。该函数在io.h中,文件加上#include
<io.h>即可解决问题。
相关文章推荐
- [杂七杂八-iOS]个人总结-3.16
- iOS8 【xcode6中添加pch全局引用文件】
- iOS8定位代理方法不回调解决方法
- IOS开发-使用Storyboard进行界面跳转及传值
- IOS storyboard 和模拟器的尺寸大小不符,选择的是iPhone6 但 storyboard面板太大!!!
- iOS中XMPP简单聊天实现 好友和聊天
- ios中切圆形图的方法
- iOS 的 XMPPFramework 简介
- ios多图下载(多线程知识)
- ios开发解决No known instance method for selector 'respondsToSelector:'的方法
- iOS中的事件传递和响应者链条
- iOS开发AssetsLibrary框架访问本地相册
- iOS之页面传值-----单例传值、通知传值
- ios json
- IOS 沙盒机制 浅析
- IOS 杂笔-2(协议)
- IOS 杂笔-1(为什么不继承类簇?)
- iOS的观察者模式
- iOS边练边学--自定义等高的cell
- iOS:使用block进行类与类,控制器与控制器之间的传值