[原创]NIOS小知识总结

本文记录了在使用NIOS中遇到的一些问题和相关的原因分析及解决办法,做个总结方便以后查阅。也希望可以帮到有同样问题的攻城狮。本文长期更新,遇到了就写下。

本人使用软件版本:QuartusII 13.0sp1,NIOS13.0sp1

[TIPS]NIOS工程的一些基本设置

这里简单的介绍一下自己在使用NIOS中我常有的一些操作,用来保证整个使用过程中错误的警报数量减少。

  • Qsys中,自定义IP核,在Tools中Option添加V文件所在路径
  • NIOS中,Project->Properities中添加include 路径,防止出现include后变量查找不到的情况
  • 在下载ELF程序时,Run Config钟勾选两个ignore选项框

[ERROR]Qsys添加自定义IP核时综合错误

很多时候我们都需要使用自定义的IP核来完成我们所需要的操作,操作步骤就是在New Components->Files中添加了编写好的V文件然后进行综合。

  • 错误产生现象:弹出错误提示框,综合失败。
  • 错误原因定位:编写的V文件存在语法错误。
  • 对应修改处理:检查编写的V文件,找出错误所在。当工程不大的时候,可以使用一个简便方法,将编写的V文件设置为顶层TOP文件然后编译,根据提示错误进行更改,编译通过后再去Qsys中就不会有错误产生啦。

[ERROR]NIOS程序ELF文件下载失败

  • 错误产生现象:下载SOF文件后下载ELF文件失败
  • 错误原因定位:Qsys中NIOS核时钟的检查
  • 对应修改处理:检查修改Qsys中NIOS核的时钟,将其改正为正确值。

[ERROR]片上RAM资源不足

  • 错误产生现象:在NIOS中编译失败,提示改错误
  • 错误原因定位:
    • 片上RAM资源空间分配不够
    • BSP设置不当
  • 对应修改处理:
    • 检查Qsys中On-Chip RAM的配置空间是否设置过小,如果是将其调大(最大数值可以再QuartusII中看器件信息得知)。
    • 如果Qsys中的资源足够仍编译不通过,打开BSP Editor,勾选enable_small_library忘记了后面补充,囧

[ERROR]NIOS中断持续触发

  • 错误产生现象:程序下载后持续触发中断
  • 错误原因定位:
    • 进入中断后,需要跳出中断方可
    • Qsys中NIOS核的选择类型是否正确,选择精简型即可
  • 对应修改处理:
    • 在执行完操作后跳出中断,即为中断信号(可以通过读或写寄存器的方式)
    • Qsys中NIOS核选择精简型即可,复杂型的需要额外考虑一些知识,暂时还没有使用场景

[ERROR]NIOS下载固化后重新上电程序未能正常运行

  • 错误产生现象:elf和sof文件固化下载后断电重启程序未能正常运行,在线写入NIOS后正常,再次固化断电重启仍然异常。
  • 错误原因定位:
    • 疑似NIOS中的输出printf()造成了一些寄存器的阻塞,但未能实际确定是此原因
    • 最终定位为BSP Editor中仍然为JTAG模式造成了该异常
  • 对应修改处理:
    • 将BSP Editor中的stderr、stdin、stdout由jtag_uart更改为none,然后重新生成bsp文件再次编译工程即可,这里一定要记得再次编译工程
时间: 2024-10-12 23:51:51

[原创]NIOS小知识总结的相关文章

uniGUI for C++ builder之杂七杂八小知识

uniGUI for C++ builder之杂七杂八小知识 2018年09月30日 22:16:05 中国银行之路在脚下 阅读数:41 标签: uniguibuilder 更多 个人分类: C++ Builder(uniGUI WEB控件) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/dlboy2018/article/details/82913870 (中行雷威2018.9.30) (同一个世界,同一个梦想,交流学习C++Builder

iOS 小知识-tips

--->1<--- arc的项目中使用非arc代码,则添加-fno-objc-arc: 非arc项目中使用arc代码,则添加-fobjc-arc. --->2<--- 实用的类 NSKeyedArchiver [UIScreen mainScreen] [UIDevice currentDevice] [UIFont familyNames] [UIApplication sharedApplication] [NSUserDefaults standardUserDefaults

Linux 小知识翻译 - 「syslog」

这次聊聊「syslog」. 上次聊了「日志」(lgo).这次说起syslog,一看到log(日志)就明白是怎么回事了.syslog是获取系统日志的工具. 很多UINIX系的OS都采用了这个程序,它承担了「获取系统全部的日志」这个维持系统正常运行的重要任务. syslog的本体是「syslogd」这个daemon(一般翻译成守护进程),常驻内存中获取日志. syslog的特点是可以通过配置文件「/etc/syslog.conf」,对「哪种应用程序?哪种重要度的信息?记录在哪个文件中?」等进行细致的

Linux 小知识翻译 - 「日志」(log)

这次聊聊「日志」. 「日志」主要指系统或者软件留下的「记录」.出自表示「航海日志」的「logbook」. 经常听说「出现问题的时候,或者程序没有安装自己预期的来运行的时候,请看看日志!」. 确实,记录了系统和软件详细运行情况的「日志」是信息的宝库,通过日志来解决问题的事例也非常多. 但事实上,「无论如何也不会看日志」的用户也有很多.理由很简单,日志的信息量非常大,全部用眼睛来看的话是非常吃力的. 而且,英语写的日志也会让英文不好的人敬而远之. 虽说「要养成用眼睛来看日志的习惯」,但实行起来却非常

Linux 小知识翻译 - 「编译器和解释器」

这次聊聊「编译器和解释器」. 编程语言中,有以C为代表的编译型语言和以Perl为代表的解释型语言.不管是哪种,程序都是以人类能够理解的形式记录的,这种形式计算机是无法理解的. 因此,才会有编译器和解释器. 对于编译型语言,是使用编译器将人类可读的代码转换为机器能够理解的「机器语言」文件,然后通过执行这个「机器语言」文件来实现程序的执行. 另一方面,对于解释型语言,是使用解释器将人类可读的代码逐行解释,一边解释一边执行这个程序.(这里的解释是将代码解释成机器语言,让计算机能够理解) 甚至有的语言既

Linux 小知识翻译 - 「补丁」(patch)

这次,聊聊补丁. 当有bug或者安全漏洞的时候,就会发布补丁.打上补丁之后,就能解决相应的bug或者安全漏洞. 那么,「补丁」到底是什么呢? 「补丁」只有少量的代码,一般都是对程序的一部分进行更新或者追加,包括bug修正,安全漏洞修正,功能追加或者变更等等.当然,只有「补丁」是无法运行的. 即,只有将「补丁」附加到原来的程序中,更新原来的程序后,才能运行. 「补丁(patch)」本来是指「打补丁用的小布头」.「patch」正是为了补足现有的程序,堵住程序漏洞的「布头」. 打「补丁」的时候需要用到

Linux 小知识翻译 - 「协议(protocol)」

对于理解服务器和网络来说,「协议」是不可缺少的概念. 「协议(protocol)」有「规则,规定」的意思. 实际上「协议」的函数很广,在通信领域,「协议」规定了「在通信时,什么样的情况下,以什么样的顺序,什么样的方式交互什么样的数据」. 抽象的去理解「协议」可能会比较困难,下面来举个例子. 通过Web以HTML方式交互时使用的协议是「HTTP」(Hyper Text Transfer Protocol).这个协议最重要的就是规定了服务器和客户端之间以HTML方式交互的规则. 比如,客户端连接上服

Linux 小知识翻译 - 「Linux」怎么读?

主要讨论日语中的读法,所以没有完全按照原文来翻译. 「linux」的读法有很多(这里指在日语中),代表性的读法有以下几种: A). 李纳苦思 B). 李奴苦思 C). 纳依纳苦思 A和B相同的是将 linux开头的「li」发音成「李」.这也是linux之父Linus Torvalds的名字的日语假名(「リーナス?トーバルズ」)的由来. linux中「nu」的发音是怎么样的呢?Linux Online的网页上有说明,而且视频中还有 Linus Torvalds 的发音. http://www.li

Android 48个小知识

1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 2.TextView部分文字设置颜色 TextView tv = new TextView(this); //添加css样式 tv.setText(Html.fromHtml("<font color="#ff0000">红色<