电力电子技术
登录
直播中
张涛
7年用户
1301经验值
私信
关注
[问答]
μC/OS-III学习笔记分享
开启该帖子的消息推送
μC/OS-III 学习笔记
回帖
(7)
彭小海
2020-12-21 14:33:07
嵌入式实时操作系统内核主要工作就是对任务进行管理和调度,为我们提供丰富的、高度封装的多任务管理函数对任务进行管理。
比如任务的创建,挂起,删除和调度等。因此弄清μC/OS-III操作系统中,什么是任务,任务结构,任务管理方法,就显得尤为重要。
根据嵌入式系统任务的执行特点,任务通常是一个无限循环结构。因为应用中有很多需要重复的工作(例如,读取输入值、更新显示、控制操作等)。
此外,μC/OS-III系统最为重要的特性是一个多任务系统。但什么是多任务系统呢?
简单说就是由一个处理器并发(注意不是同时)地运行多个程序的计算机管理系统。
那,什么又是并发呢?并发的意思是说,由同一个处理器轮换地运行多个程序。或者说是由多个程序轮班地占用处理器这个资源。且在占用这个资源期间,并不一定能够把程序运行完毕。
虽然uC/OS-III支持多任务且对任务数量没有限制, 但任务数仅取决于处理器内存的大小(RAM)。多任务调度是任务间占用CPU的过程 。
嵌入式实时操作系统内核主要工作就是对任务进行管理和调度,为我们提供丰富的、高度封装的多任务管理函数对任务进行管理。
比如任务的创建,挂起,删除和调度等。因此弄清μC/OS-III操作系统中,什么是任务,任务结构,任务管理方法,就显得尤为重要。
根据嵌入式系统任务的执行特点,任务通常是一个无限循环结构。因为应用中有很多需要重复的工作(例如,读取输入值、更新显示、控制操作等)。
此外,μC/OS-III系统最为重要的特性是一个多任务系统。但什么是多任务系统呢?
简单说就是由一个处理器并发(注意不是同时)地运行多个程序的计算机管理系统。
那,什么又是并发呢?并发的意思是说,由同一个处理器轮换地运行多个程序。或者说是由多个程序轮班地占用处理器这个资源。且在占用这个资源期间,并不一定能够把程序运行完毕。
虽然uC/OS-III支持多任务且对任务数量没有限制, 但任务数仅取决于处理器内存的大小(RAM)。多任务调度是任务间占用CPU的过程 。
举报
张佳婧
2020-12-21 14:33:18
μC/OS-III 的启动和初始化
①系统初始化,其实就是和使用外设一样,在启动μC/OS-III前,我们必须现在main函数里将μC/OS-III进行初始化。调用API函数CPU_Init()初始化μC/OS-III。
②创建任务,随后我们都在main函数中创建一个开始任务用于创建其他的任务函数、事件或者信号等。创建任务是调用API函数OSTaskCreate(),将任务的信息填入其中即可。并将这一段创建任务的函数置于临界区中避免打断。
③启动系统,我们自己创建完第一个任务后,便可以调用API函数OSStart();开启μC/OS-III。
在 uC/OS-III 中,可以创建无数多个任务,让这些任务并发运行,就好像有多个主函数在运行一样。 在 uC/OS-III 初始化的时候,至少会创建空闲任务 OS_IdleTask()和时基任务OS_TickTask() 这 两 个 任 务 , 另 外 还 有 三 个 可 选 择 的 内 部 任 务 , 软 件 定 时 器 任 务OS_TmrTaks() 、中断延迟提交任务 OS_IntQTask()和统计任务 OS_StatTask()。
μC/OS-III 的启动和初始化
①系统初始化,其实就是和使用外设一样,在启动μC/OS-III前,我们必须现在main函数里将μC/OS-III进行初始化。调用API函数CPU_Init()初始化μC/OS-III。
②创建任务,随后我们都在main函数中创建一个开始任务用于创建其他的任务函数、事件或者信号等。创建任务是调用API函数OSTaskCreate(),将任务的信息填入其中即可。并将这一段创建任务的函数置于临界区中避免打断。
③启动系统,我们自己创建完第一个任务后,便可以调用API函数OSStart();开启μC/OS-III。
在 uC/OS-III 中,可以创建无数多个任务,让这些任务并发运行,就好像有多个主函数在运行一样。 在 uC/OS-III 初始化的时候,至少会创建空闲任务 OS_IdleTask()和时基任务OS_TickTask() 这 两 个 任 务 , 另 外 还 有 三 个 可 选 择 的 内 部 任 务 , 软 件 定 时 器 任 务OS_TmrTaks() 、中断延迟提交任务 OS_IntQTask()和统计任务 OS_StatTask()。
举报
杨秀英
2020-12-21 14:33:26
任务状态
uC/OS-III支持的是单核的CPU,不支持多核,这样在某一时刻只有一个任务会获得CPU的使用权进入运行态。其他任务就会进入其他状态,uC/OS-III中的任务有多个状态,
任务状态之间的具体切换情况如下图所示。
任务状态
uC/OS-III支持的是单核的CPU,不支持多核,这样在某一时刻只有一个任务会获得CPU的使用权进入运行态。其他任务就会进入其他状态,uC/OS-III中的任务有多个状态,
任务状态之间的具体切换情况如下图所示。
举报
蒋进如
2020-12-21 14:33:33
任务控制块
任务控制块,本质上其实就是由一个struct结构体,用来保存任务的信息(知道这一点就可以了)。在使用API函数OSTaskCreate()时,就会给创建的任务分配一个任务控制块。
任务控制块
任务控制块,本质上其实就是由一个struct结构体,用来保存任务的信息(知道这一点就可以了)。在使用API函数OSTaskCreate()时,就会给创建的任务分配一个任务控制块。
举报
更多回帖
rotate(-90deg);
回复
相关问答
μ
C
/
OS-III
学习
笔记分
享
2020-12-31
1049
μ
C
/
OS-III
学习
笔记分
享
2021-01-26
1129
μ
C
/
OS-III
中断管理和时间管理介绍
2021-01-11
1129
请问有µ
C
/
OS-III
V3.04.05版本的程序吗?
2020-03-27
1294
μ
C
/
OS-III
系统内部的5个系统内部任务详解
2020-12-25
805
有没有哪位大神将UC/
OS-III
3.06.00移植到STM32F407上的?
2020-05-25
1002
uC/
OS-III
移植的具体步骤有哪些
2021-11-03
1735
采用μ
C
/
OS-III
及STM32设计的多功能控制器
2021-02-05
1440
哪里可以买到《嵌入式实时操作系统uc/
os-III
应用开发》这本书?
2019-09-26
1025
uC/
OS-III
和FreeRTOS的区别是什么?
2020-06-09
1509
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分