[FPGA开发] 小梅哥NIOS II开发全纪录之总结NIOS II 开发注意点(一)

帖子地址:
http://bbs.eeworld.com.cn/thread-526743-1-1.html

1、 CPU运行一段时间后停止
很多用户在调试或者运行NIOS II CPU程序的时候,可能最开始的时候程序能够正确的运行,但是过一会儿后CPU却停下来了,例如本来做的一个LED流水灯,结果流水了一两分钟后却不再动了。这里是不是又是NIOS II CPU运行不稳定的一个佐证呢?实际上,引发这个问题的原因,个人总结主要有两点:

第一点,系统使用了JTAG UART作为调试串口打印数据。用户在自己的软件代码中写了有printf的代码,例如每分钟打印一次“Hello”,同时让流水灯闪烁。但是用户可能在开发板运行的过程中,突然拔掉或者断开了USB Blaster下载器,或者关闭了nios ii软件开发工具。这就导致JTAG UART与PC间的链接断开了。由于JTAG UART是基于JTAG协议的一个模拟串口,实际上我们使用的jtag uart发送数据的时候,是先将数据写在jtag uart的fifo中,然后pc端的nios ii开发软件定时通过jtag协议读取fifo中的数据,以此模拟jtag uart的发送的。如果我们切断了nios ii开发软件与jtag uart之间的连接,或者关闭了nios ii eds软件,使之不再去读取fifo中的数据,那么jtag uart的fifo中的数据就会越积越多。当fifo满之后,数据就再也写不进去了。而jtag uart的软件驱动中,使用的是阻塞的方式发送数据的,即只有当所有的数据都写入fifo之后,程序才会执行下一步。可是,现在fifo中的数据一直是满的,没有被读走,那么软件就只能一直等在这个地方,等待fifo变成非满。然后,就导致整个CPU的运行被阻断在了这个地方。所以NIOS看起来就像是停止运行了。有的是拔掉下载器之后还能运行一会儿,这是因为jtag uart默认是64字节的fifo,刚刚拔掉下载器,fifo还没满,程序运行过程中间隔的写入数据到fifo中,过了一会写fifo满了,然后CPU就停下来了。

第二点,用户C水平不过关(不在少数),写的代码指针使用不合理,出现了指针越界行为,把正常的数据给损毁了,导致CPU的运行数据在运行过程中被损毁,然后就无法继续运行下去了。

上述原因主要是用户通过反复分析,总是找不出程序问题的时候考虑的几点。至于本身程序就没写对导致的,那就还是乖乖回去深造C语言吧。合理利用debug,帮助查找程序中存在的问题。

2018-11-30相关推荐

  1. 2018/11/30 快手面试总结

    2018/11/30 快手面试总结 1.简历还需要优化调整: 2.面试官会提问一些基础和算法(也会让你手写代码) 比如: 二叉树的中序遍历 ArrayList删除中间元素的代码手写 spring Be ...

  2. 【一周头条盘点】中国软件网(2018.11.26~2018.11.30)

    每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 一周热点 工信部副部长:要同步推进网络安全和智能制造 近日,2018中国(长沙)网络安全·智能制造大会在湖南长沙召开.工业和 ...

  3. 学习手记(2018.11.30~2019.6.6)——养老时间

    文章目录 φ\varphiφ的奥秘之1 某不科学的知识 二维费用 自然の对数大法 斐波那契数列与三角形 BSTBSTBST大法好 点阵迷踪 CayleyCayleyCayley公式 质嘤数分解の1 费 ...

  4. 《惢客创业日记》2018.11.30(周五)凉粉儿疯了!

    今天,书生群里的凉粉儿疯了.从早晨到晚上,凉粉儿一直都处于亢奋状态.从早晨8点多接到她电话开始,她说的最多的一句话就是:"我终于想明白惢客了,惢客是一个无壁垒的商业平台.惢客的规则不是商家的 ...

  5. QIIME 2用户文档. 17序列双端合并read-joining(2018.11)

    文章目录 前情提要 序列双端合并的另一种方法`read-joining` 数据下载 序列合并 查看合并序列的数据质量和摘要 序列质控 Deblur 查看Deblur特征表 导入双端合并的序列 导入序列 ...

  6. QIIME 2用户文档. 13数据评估和质控Evaluating and controlling(2018.11)

    文章目录 前情提要 数据评估和质控`q2-quality-control` 下载数据 基于比对过滤序列 质量评估已知组成的样品 评估序列质量 Reference 译者简介 猜你喜欢 写在后面 前情提要 ...

  7. QIIME 2用户文档. 7差异丰度分析gneiss(2018.11)

    文章目录 前情提要 QIIME 2用户文档. 7差异丰度分析gneiss 创建`balances` 选项1:相关性聚类 选项2:梯度聚类 用平衡建立线性模型 Reference 译者简介 猜你喜欢 写 ...

  8. QIIME 2用户文档. 6沙漠土壤分析Atacama soil(2018.11)

    文章目录 前情提要 QIIME 2用户文档. 6阿塔卡马沙漠微生物组分析 启动QIIME2运行环境 实验数据下载 双端数据分析方法 去噪并生成特征表和代表序列 接下来分析要回答的科学问题 Refere ...

  9. 2018.11:大数据在政府统计中的应用、瓶颈及融合路径(余芳东)

    内容摘要:应用大数据是未来政府统计发展的必然趋势.本文系统梳理当前政府统计应用大数据的基本类型,研究探索大数据统计应用实践和基本方法思路,剖析大数据统计应用面临的困难和瓶颈,提出推进大数据与政府统计工 ...

  10. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第5天 2018/10.30

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第5天 2018/10.30 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 今天 ...

最新文章

  1. 关于ACCESS的事务与存储过程的调用
  2. 逃出你的肖申克(三):遇见20万年前的自己
  3. 异步加载js的三种方法
  4. TCP协议的三次握手、四次挥手
  5. linux系统多网口聚合配置,Linux网卡聚合linux多网卡绑定聚合之bond模式的原理是什么...
  6. jquery filter和not
  7. JavaScript初学者系列一:JavaScript基础(上)
  8. Android 5.0以上heads up通知
  9. 《SQL Server2008》第二章 创建和管理数据库
  10. python写入access_使用Python对Access读写操作方法详解
  11. 自回归移动平均模型(ARMA)-平稳序列
  12. 计算机的多媒体信息,多媒体信息
  13. 有意思的DCDC工作原理
  14. Scratch精通之侦测的使用
  15. 计算机技能高考素材,高中作文万能通用素材 2021高考必备作文素材
  16. 使用USB对两个电脑进行串口文件传输
  17. 【微信小游戏】CocosCreator做小游戏 — 字符串编码转换(UTF-8和GBK互转)
  18. ChatGPT:从问题解答到赚钱
  19. ubuntu18.04 install 安装postgresql9.6 解决重音不敏感”排序规则,以及扩展pgcrypto函数
  20. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

热门文章

  1. NB-IOT:物联网【无码化】体验NB-loT全流程
  2. html5编辑漂亮静态页面工具_青岛HTML5与Web前端
  3. table 条数过大优化_MySQL 数据库优化,看这篇就够了 | 不长不短,2000 字小结
  4. 【Spring第五篇】Autowired:自动装配
  5. 常见的遍历数组和对象的方法
  6. 计算机兴趣小组的意义,计算机兴趣小组总结
  7. PCL——快速邻域搜索
  8. 『力荐汇总』这些 VS Code 快捷键太好用,忍不住录了这34张gif动图
  9. java io密集型任务_IO密集型的线程池大小设置
  10. CSS初始化示例代码