从零开始的学习UCOSII
这里面讲解了学习UCOSII的过程。
关键的讲解UCOSII的API的实现原理
总结小型的嵌入式的区别
如何把UCOSII升级到UCOSIII
conding123
嵌入式音视频软件开发(海思,MSTAR,国科,君正)
2753381576@qq.com
展开
-
从零开始学习UCOSII操作系统1--UCOSII的基础知识
从零开始学习UCOSII操作系统1--UCOSII的基础知识前言:首先比较主流的操作系统有UCOSII、FREERTOS、LINUX等,UCOSII的资料相对比其余的两个操作系统的资料是多很多的。更重要的原因是自己本身还没有能力深入的研究Linux操作系统。本次学习UCOSII主要是学习内核的设计原理。此次专栏涉及到的API的使用是非常小的,仅仅作为本人学习的记录。后期也会对比UCOSIII说出实...原创 2018-03-24 19:13:20 · 57731 阅读 · 7 评论 -
从零开始学习UCOSII操作系统2--UCOSII的内核实现
从零开始学习UCOSII操作系统2--UCOSII的内核实现参考书籍:《嵌入式实时操作系统μCOS-II原理及应用》、《嵌入式实时操作系统uCOS-II 邵贝贝(第二版)》1、任务的结构--任务控制块首先这个任务控制块是非常的大的,这里面使用很多的宏定义,估计是可以让使用者使用的时候按需配置。所以这里只是整理一些必须要用到的功能,不常用的不讲,讲了就会变成一本书了。(1)任务的关键 OS_ST...原创 2018-03-25 19:15:19 · 16688 阅读 · 3 评论 -
从零开始学习UCOSII操作系统3--UCOSII启动过程
从零开始学习UCOSII操作系统3--UCOSII启动过程1、初始化UCOSII(1)在调用UCOSII在任何的其他的服务之前,UCOSII要求首先调用初始化函数OSInit();这个函数的目的就是在整个系统启动之前,初始化所有的变量和数据结构。(2)其中,在OSInit()函数中建立空闲任务OS_TaskIdle();这个任务总是处于就绪态的,空闲任务的优先级是设置为最低原创 2018-03-29 18:31:14 · 8798 阅读 · 1 评论 -
从零开始学习UCOSII操作系统4--任务管理
从零开始学习UCOSII操作系统4--任务管理1、重讲任务(1)任务可以是一个无限的循环,也可以在一次执行完毕后被删除。这里需要注意的是,任务的代码并不是真正的删除了,而是UCOSII不再理会该任务代码,所以该任务代码不会再执行。(2)建立任务,OSTaskCreate()如果想让UCOSII管理用户的任务,必须先建立任务,可以通过将任务的地址(函数名)和其他参数传递到原创 2018-03-29 20:07:08 · 7636 阅读 · 1 评论 -
从零开始学习UCOSII操作系统5--时间管理
从零开始学习UCOSII操作系统5--时间管理1、UCOSII的定时中断(1)绝大多数的内核要求提供定时中断,以实现延时与超时控制等功能。这个定时中断叫做时钟节拍。(2)时钟的中断子程序ISR和时钟节拍函数OSTimeTick()该函数用于通知UCOSII,发生了时钟的节拍中断。2、UCOSII的5个关键的时钟函数(1)OSTimeDly();后面的4个函数原创 2018-03-29 20:08:57 · 4818 阅读 · 0 评论 -
从零开始学习UCOSII操作系统6--事件控制块
从零开始学习UCOSII操作系统6--事件控制块1、任务和任务,任务和中断子程序是如何进行通信的?--事件控制块事件控制块使用的几点须知:(1)任务或者中断服务子程序可以给事件控住块ECB发送信号。(2)中断服务子程序不能等待事件控制块ECB给它发送信号的。(3)等待事件可以设置超时时间,后面会详细的说明实现的原理。(4)多个任务可以同时等待同一个事件发生,在这种情况下面,当事件发生后,所有等待该...原创 2018-03-30 21:36:01 · 4814 阅读 · 0 评论 -
从零开始学习UCOSII操作系统7--信号量
从零开始学习UCOSII操作系统7--信号量参考博客:@ http://blog.youkuaiyun.com/gatiemehttps://blog.youkuaiyun.com/gatieme/article/details/21071379前言:这里一定要分析清楚,因为信号量分析清楚后,后面的邮箱等其他的通信的东西都是大同小异的。1、信号量的组成(1)一部分是16位无符号的整型信原创 2018-03-31 09:20:58 · 4761 阅读 · 0 评论 -
从零开始学习UCOSII操作系统8--互斥型信号量
从零开始学习UCOSII操作系统8--互斥型信号量1、互斥型信号量的定义(1)任务可以用互斥型信号量实现对共享资源的独占式处理,互斥型信号量也称为mutex,mutex是二值信号量,不但具有UCOSII普通信号量的机制外,还具有其他的一些特性。(2)最重要的一点是,可以解除优先级反转的问题。当高优先级的任务需要使用某个共享资源的时候,而该资源已被一个低优先级反转的问题,就会发生原创 2018-03-31 17:16:31 · 2946 阅读 · 0 评论 -
从零开始学习UCOSII操作系统9--事件标志组
从零开始学习UCOSII操作系统9--事件标志组1、事件标志组管理(1)UCOSII的事件标志组由2部分组成:一是用来保存当前事件组中各事件状态的一些标志位。二是等待这些标志位置位或者清除的任务列表。(2)UCOSII提供了6个函数,完成事件标志组的各种功能:OSFlagAccept(),OSFlagCreate(),OSFlagDel(),OSFlagPend原创 2018-04-01 18:31:25 · 4878 阅读 · 0 评论 -
从零开始学习UCOSII操作系统10--消息邮箱
从零开始学习UCOSII操作系统10--消息邮箱1、什么是消息邮箱?UCOSII中的另一种的通信机制,可以使得一个任务或者中断服务子程序向另一个任务发送一个指针型的变量,通常指针指向一个包含了消息的特定数据结构。提供了6种操作邮箱的接口函数:OSMboxCreate():创建邮箱也就是初始化邮箱的函数OSMboxPend():请求邮箱的函数,也就是没有邮箱发送过来的话,原创 2018-04-03 19:08:54 · 13061 阅读 · 0 评论 -
从零开始学习UCOSII操作系统11--消息队列
从零开始学习UCOSII操作系统11--消息队列1、什么是消息队列?(1)传递多个邮箱的一种任务之间进行通信的方式(2)消息队列时UCOSII中的另一种的通信机制,他允许一个任务或者中断服务子程序向另一个任务发送以指针方式定义的变量或者其他的任务。因为具体的应用不同,每个指针指向的包含了消息的数据结构的变量类型也有所不同。(3)UCOSII提供了9个对消息队列进行操原创 2018-04-04 20:34:00 · 5443 阅读 · 0 评论 -
从零开始学习UCOSII操作系统12--内存管理
从零开始学习UCOSII操作系统12--内存管理前言:在标准的C语言中,可以用malloc()和free()2个动态的分配内存和释放内存,但是在嵌入式中,调用malloc()和free()却是非常危险的。因为多次调用这两个函数,会把原来的很大的一块连续的内存区域逐渐的分割成许多非常小的而且彼此又不相邻的内存块,也就是所谓的内存碎片。这样子的话,使得程序后面连一段非常小的内存都分原创 2018-04-04 20:59:02 · 2921 阅读 · 0 评论 -
从零开始学习UCOSII操作系统13--系统移植理论篇
从零开始学习UCOSII操作系统13--系统移植理论篇1、什么是系统移植?(1)UCOSII移植到不同的处理器上,所谓的移植就是将一个实时的内核能在其他的微处理器或者微控制器上运行。为了方便移植,UCOSII的大部分的代码都是C语言写的,因为不同机器的汇编代码是不一样的。这是由于UCOSII在设计的时候已经充分考虑到了可移植性这一点。但是仍然有一部分的代码是需要用C语言原创 2018-04-05 09:07:39 · 6012 阅读 · 0 评论 -
从零开始学习UCOSII操作系统14--系统移植实战篇
从零开始学习UCOSII操作系统14--系统移植实战篇前言:本篇文章就是为了简单的学习使用的,知道原理之后就可以随意的移植到你自己想要的CPU中,所以我使用最简单的芯片S3C2440,目的就是为了让人们了解怎么移植UCOSII。1、移植UCOSII的关键的三个文件根据我们上一讲说过的部分:我们需要移植的部分就是OS_CPU.hOS_CPU_A.ASM,OS_CPU_C.c原创 2018-04-05 12:19:03 · 3489 阅读 · 1 评论 -
从零开始学习UCOSII操作系统15--总结篇
从零开始学习UCOSII操作系统15--总结篇前言:在大学的时候,我们班级上面都有很多人觉得学习UCOSII(包括UCOSIII)是没什么厉害的,因为很多人都喜欢去学习Linux操作系统,但是,但是,真实的对整个UCOSII操作系统进行学习,我可以保证,如果你是基于源码级别的阅读的话,绝对是不简单的。仅仅是调用几个API的话,是永远用不好UCOSII的操作系统的。还有你真正学通了UCO原创 2018-04-06 11:17:19 · 45625 阅读 · 7 评论