[原创]NIOS小知识总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[原创]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文件再次编译工程即可,这里一定要记得再次编译工程

以上是关于[原创]NIOS小知识总结的主要内容,如果未能解决你的问题,请参考以下文章

android小知识点代码片段

线程学习知识点总结

VS中添加自定义代码片段——偷懒小技巧

回归 | js实用代码片段的封装与总结(持续更新中...)

python小知识片段

python小知识片段