【NiosII学习】第八篇、在NiosII上面运行uCOSII操作系统

本文档详细介绍了如何在NiosII处理器上移植和运行uCOSII实时操作系统,包括新建QuartusII工程、修改软核添加定时器IP核,并遇到的问题及解决思路。同时,提供了工程完整资料的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

第一部分、uCOSII操作系统简介

1、什么是uCOSII?

2、留坑

第二部分、新建Quartus II工程

第三部分、修改别人的软核

1、注意

第五部分、新建uCOSII工程

第六部分、总结

1、视频演示

2、我的问题

3、完整资料


第一部分、uCOSII操作系统简介

1、什么是uCOSII?

uC/OS II( Micro Control Operation System Two)是的一个多任务实时操作系统。

实时操作系统就是:如果操作系统能使计算机系统及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,那么这种操作系统就是一个实时操作系统,也就是我们通常说所说的 RTOS( Real Time Operation System)

实时系统有两个基本要求:第一,实时系统的计算必须产生正确的结果。第二,实时系统的计算机必须在预定的时间内完成。按照时间正确的程序来划分,实时操作系统又可以分为硬实时操作系统和软实时操作系统两种。如果要求系统必须在极严格的时间内完成任务,那么这样的系统就叫做硬实时操作系统。相对来说,如果系统完成任务的截止时间要求不是十分严格,那么这种系统就叫做软实时系统

2、留坑

这里最后的结果我的代码跑不起来,什么意思呢,也就是按照生成的代码直接运行,结果我的串口只打印了一次,然后就不动了。

但是如果把下图中这两行代码给注释掉,那系统就一直打印。如果有D大兄弟知道问题出在哪里,麻烦你告诉我一下。

第二部分、新建Quartus II工程

这里我们还是一如既往复制小梅哥的LCD9341的初始工程到自己建立的文件夹中去,不会的话去看《第一篇、如何烧录NiosII工程:https://blog.youkuaiyun.com/Learning1232/article/details/110225728

第一步、复制小梅哥的LCD9341的初始工程,到自己建立的文件夹中,然后打开工程

第三部分、修改别人的软核

1、注意

这里只需要添加一个 timer 定时器IP核, 我们将该定时器配置为 Full-featured,以供我们的 uC/OS II 使用。

第五部分、新建uCOSII工程

第一步、如图操作

第二步、选择当前工程的.sopcinfo文件

第三步、选择Hello Microc/OS-II,点击Finish

第四步、生成的代码不改动,直接编译、仿真,看结果

第六部分、总结

1、视频演示

已经拍成视频放在群文件中,可以去下载查看。你也可以先点击这个链接直接观看效果(https://live.youkuaiyun.com/v/121223),这里放张图片。

2、我的问题

我的遇到问题,前面就介绍了,希望知道的小伙伴告诉我一下。

最后希望有问题的铁子加下面这个群,群文件里面有所有的资料,有问题也可以直接提出来,当然也可以私聊我。

3、完整资料

欢乐的白嫖时光从来不会缺席!(完整工程、演示视频、参考资料下载链接:https://download.youkuaiyun.com/download/Learning1232/13692801)。

关于UCOSII实时操作系统 第一讲 初识uCOSII 4 1、uCOSII单任务实验: 4 2、uCOSII多任务实验: 6 3、任务状态之间的转换: 9 4、空闲任务和统计任务简介: 9 5、任务的三要件: 9 程序代码、私有堆栈、任务控制块 9 6、任务控制块TCB(P80) 9 7、创建任务 9 8、任务的栈空间 10 9、栈的增长方向: 10 第二讲 调度运行机制 11 1、任务挂起和恢复 11 2、任务挂起、恢复的状态转换 13 3、时钟节拍ISR 15 4、时钟节拍函数OSTimtick() 16 5、延时系统调用 16 第三讲 任务管理uCOSII 17 1、任务删除 17 2、任务请求删除实验 19 3、在源码中增加打印信息一般步骤 24 4、OSTaskDelReq()函数理解流程图 25 第四讲 互斥性信号量管理 26 1、优先级反转 26 2、信号量SEM使用 26 3、互斥信号量Mutux使用 29 4、关于信号量程序分析 32 5、关于互斥信号量分析 32 6、OSMutexPend()函数流程图 33 7、OSMutexPost()函数流程图 33 第五讲 消息邮箱 34 1、基本概念 34 2、对于OSMboxPend()理解 34 3、对于OSMboxPost()理解 34 4、消息邮箱管理一般程序 35 5、使用OSMboxQuery() 38 6、OSMboxPend()函数Timeout等待超时程序 38 7、OSMboxPost()函数邮箱状态为FUll程序 40 8、关于OSTimeTickHook(void)使用 41 第六讲 信号量集 43 1、信号量集案例 43 2、OSFlagPend()源码 46 3、OSFlagPost()源码 51 第七讲 动态内存 54 1、内存管理基本概念 54 2、内存管理基本概念 54 3、内存管理案例 54 4、案例分析 69 5、教学案例: 71
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大屁桃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值