[原创]NIOS 小知识总结

喜夏-厌秋 提交于 2019-11-29 04:56:15

本文记录了在使用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 文件再次编译工程即可,这里一定要记得再次编译工程
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!