嵌入式实时操作系统μC/OS II(一)

165 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

嵌入式实时操作系统μC/OS II

为什么要学习μC/OS-II ㈠.凡从事嵌入式系统开发工作的人,必须对嵌入式操作系统有足够的了解。 ㈡.对于初学者,从μC/OS-II开始是个明智的选择。 1.μC/OS-II麻雀虽小,却五脏俱全(它是个微内核)。 2.可以学习实时系统的一些编程技巧。 3.可以把在课堂上学到的操作系统抽象概念具体化。 4.具有很强的实用性。 5.学习数据结构应用的好例子。

一、μC/OS II概述

㈠ μC/OS II的特点

⑴μC/OS II的体系结构如图所示,μC/OS II是一个微内核,它只对计算机的处理器硬件时钟进行了抽象和封装,而没有提供其他硬件抽象层。移植μC/OS II时,主要工作就是根据具体硬件换一个或者添加一个硬件抽象层。 在这里插入图片描述⑵μC/OS II具有较强的可移植性,μC/OS II是基于优先级的可剥夺型内核,系统中的所有任务都有一个唯一的优先级别,它适合应用在实时性要求较强的场合。μC/OS II不区分用户空间和系统空间,适用于比较简单的处理器。μC/OS-II总是近似地每时每刻让优先级最高的就绪任务处于运行状态,所以调度算法被频繁执行。 ⑶μC/OS-II总是近似地每时每刻让优先级最高的就绪任务处于运行状态,所以调度算法被频繁执行。

㈡μC/OS II的文件结构

⑴与应用程序相关的文件

文件内容:把工程项目中应包含的头文件都集中放到这里。 使项目开发者无须再去考虑项目中的每一个文件究竟应该需要或者不需要哪些头文件了。 在这里插入图片描述在这里插入图片描述在这里插入图片描述

⑵与处理器相关的文件在这里插入图片描述在这里插入图片描述

⑶与处理器硬件无关的文件(系统内核的各种服务文件)

在这里插入图片描述

二、预备知识

㈠操作系统的作用

⑴它在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。 ⑵通过提供函数(应用程序接口(API)),从而使应用程序的设计人员得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。 从用户的角度来看,它就是一大堆函数(API和系统函数),用户可以调用(普通调用或系统调用)它们来对系统资源进行操作 在这里插入图片描述

㈡操作系统中常用的数据结构

⑴数组

⒈数组: ①同一数据类型数据的集合; ②占用连续内存空间; ③其中的所有元素名称都相同,但每个元素都有一个编号; ④元素名去掉编号(下标),得到的是数组名,数组名是个指针。 ⒉使用上的特点: ①分类存放; ②检索速度快且恒定; ③缺点:占用连续空间大。 ⒊应用:记录同类事物的表。 在这里插入图片描述

⑵位图

⒈位图是数组的一种特殊应用。 ⒉应用:登记表。 在这里插入图片描述

⑶结构

⒈结构: ①不同数据类型数据的集合; ②占用连续内存空间。 ⒉使用上的特点: ①不分类存放,但用来描述同一事物; ②检索速度快且恒定。 ⒊应用:通讯录中的一条记录、工具箱、厨房等等。 在这里插入图片描述

⑷链表

⒈链表: ①同数据类型数据的集合; ②不占用连续内存空间。 ⒉使用上的特点: ①分类存放,但空间上不连续(不需要大量的连续存储空间; ②检索速度慢,且耗费的时间不固定。 ⒊应用:存放大量的较大的表,类似档案柜。 在这里插入图片描述

⑸队列

⒈队列: ①队列是一种特殊的线性表。在队列中,仅允许一端进行插入,在另一端进行删除。 ②允许插入的一端叫做队尾(rear);允许删除的另一端叫做队头(front)。 ③队列又称先进先出(First in First Out,简写为FIFO)表。 在这里插入图片描述

⑹堆栈

⒈堆栈: ①限定只能在表的一端进行插入和删除的线性表。 ②在表中允许插入和删除的一端叫做栈顶(top),表的另一端叫做栈底(bottom)。 ③栈又称后进先出(Last In First Out,简写为LIFO)表。 在这里插入图片描述