2018-11-30
[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相关推荐
- 2018/11/30 快手面试总结
2018/11/30 快手面试总结 1.简历还需要优化调整: 2.面试官会提问一些基础和算法(也会让你手写代码) 比如: 二叉树的中序遍历 ArrayList删除中间元素的代码手写 spring Be ...
- 【一周头条盘点】中国软件网(2018.11.26~2018.11.30)
每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 一周热点 工信部副部长:要同步推进网络安全和智能制造 近日,2018中国(长沙)网络安全·智能制造大会在湖南长沙召开.工业和 ...
- 学习手记(2018.11.30~2019.6.6)——养老时间
文章目录 φ\varphiφ的奥秘之1 某不科学的知识 二维费用 自然の对数大法 斐波那契数列与三角形 BSTBSTBST大法好 点阵迷踪 CayleyCayleyCayley公式 质嘤数分解の1 费 ...
- 《惢客创业日记》2018.11.30(周五)凉粉儿疯了!
今天,书生群里的凉粉儿疯了.从早晨到晚上,凉粉儿一直都处于亢奋状态.从早晨8点多接到她电话开始,她说的最多的一句话就是:"我终于想明白惢客了,惢客是一个无壁垒的商业平台.惢客的规则不是商家的 ...
- QIIME 2用户文档. 17序列双端合并read-joining(2018.11)
文章目录 前情提要 序列双端合并的另一种方法`read-joining` 数据下载 序列合并 查看合并序列的数据质量和摘要 序列质控 Deblur 查看Deblur特征表 导入双端合并的序列 导入序列 ...
- QIIME 2用户文档. 13数据评估和质控Evaluating and controlling(2018.11)
文章目录 前情提要 数据评估和质控`q2-quality-control` 下载数据 基于比对过滤序列 质量评估已知组成的样品 评估序列质量 Reference 译者简介 猜你喜欢 写在后面 前情提要 ...
- QIIME 2用户文档. 7差异丰度分析gneiss(2018.11)
文章目录 前情提要 QIIME 2用户文档. 7差异丰度分析gneiss 创建`balances` 选项1:相关性聚类 选项2:梯度聚类 用平衡建立线性模型 Reference 译者简介 猜你喜欢 写 ...
- QIIME 2用户文档. 6沙漠土壤分析Atacama soil(2018.11)
文章目录 前情提要 QIIME 2用户文档. 6阿塔卡马沙漠微生物组分析 启动QIIME2运行环境 实验数据下载 双端数据分析方法 去噪并生成特征表和代表序列 接下来分析要回答的科学问题 Refere ...
- 2018.11:大数据在政府统计中的应用、瓶颈及融合路径(余芳东)
内容摘要:应用大数据是未来政府统计发展的必然趋势.本文系统梳理当前政府统计应用大数据的基本类型,研究探索大数据统计应用实践和基本方法思路,剖析大数据统计应用面临的困难和瓶颈,提出推进大数据与政府统计工 ...
- 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第5天 2018/10.30
10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第5天 2018/10.30 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 今天 ...
最新文章
- 关于ACCESS的事务与存储过程的调用
- 逃出你的肖申克(三):遇见20万年前的自己
- 异步加载js的三种方法
- TCP协议的三次握手、四次挥手
- linux系统多网口聚合配置,Linux网卡聚合linux多网卡绑定聚合之bond模式的原理是什么...
- jquery filter和not
- JavaScript初学者系列一:JavaScript基础(上)
- Android 5.0以上heads up通知
- 《SQL Server2008》第二章 创建和管理数据库
- python写入access_使用Python对Access读写操作方法详解
- 自回归移动平均模型(ARMA)-平稳序列
- 计算机的多媒体信息,多媒体信息
- 有意思的DCDC工作原理
- Scratch精通之侦测的使用
- 计算机技能高考素材,高中作文万能通用素材 2021高考必备作文素材
- 使用USB对两个电脑进行串口文件传输
- 【微信小游戏】CocosCreator做小游戏 — 字符串编码转换(UTF-8和GBK互转)
- ChatGPT:从问题解答到赚钱
- ubuntu18.04 install 安装postgresql9.6 解决重音不敏感”排序规则,以及扩展pgcrypto函数
- #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)