UCOS明白解析
UCOSII 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用 C 语言编写的。 CPU 硬件相关部分是用汇编语言编写的、总量约 200 行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的 CPU 上。用户只要有标准的 ANSI 的 C 交叉编译器,有汇编器、连接器等软件工具,就可以将 UCOSII 嵌人到开发的产品中。 UCOSII 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。
Void *osmemfreelist ;指向下一个空余内存控制块或者下一个空余内存块的指针,
Int32u osmemblksize ;内存分区中内存块的大小,是建立内存分区时定义的。
Int32u osmemnblks ;内存分区中总的内存块数量,也是建立该内存分区时定义的。
Int32u osmemnfree ;内存分区块中当前获得的空余块数量。
}os_mem;
建立一个内存分区,OSMemCreate()
分配一个内存块,OSMemGet()
释放一个内存块,OSMemPut()
查询一个内存分区的状态,OSQMemQuery()
1.信号量:用于从一个任务向另一个任务传递一个开关量的BOOL信号。
创建信号量指针:OS_EVENT *OSSemFlag。
创建信号量函数:OS_EVENT *OSSemCreate (INT16U cnt)。
发送信号量函数:INT8U OSSemPost(OS_EVENT *pevent)。
请求信号量函数:void OSSemPend( OS_EVENT *pevent, INT16U timeout, INT8U *err);其中需要注意的是Timeout,这个参数为0的时候表示无限等待,大于0就为表示演示多少个时钟节拍。
删除信号量好函数:OS_EVENT *OSSemDel (OS_EVENT *pevent,INT8U opt, INT8U *err)。
创建邮箱指针:OS_EVENT *OSMbox;
创建邮箱函数:OSMboxPost (OS_EVENT *pevent,void *msg)
请求邮箱函数:void *OSMboxPend (OS_EVENT *pevent, INT16U timeout,INT8U *err)其中需要注意的是Timeout,这个参数为0的时候表示无限等待,大于0就为表示演示多少个时钟节拍。
查询邮箱状态函数:OSMboxQuery(OS_EVENT *pevent,OS_MBOX_DATA *pdata) 。
创建信号量集函数:OS_FLAG_GRP *OSFlagCreate (OS_FLAGS flags,INT8U *err )
查询信号量状态函数:OS_FLAG_GRP *OSFlagQuery(OS_FLAG_GRP *pgrp,INT8U *err ),我们可以使用这个函数来不断查询这个信号量集的状态来做一些开关量的控制。
4.消息队列:用于从一个任务向另一个任务传递多个字节的数据。
创建消息队列指针:OS_EVENT * MainMenuUI;
创建消息队列存储数组:void * MsgGrp[16];
创建消息队列函数:OS_EVENT *OSQCreate(void**start,INT16U size)
请求消息队列函数:void*OSQPend(OS_EVENT*pevent,INT16U timeout,INT8U *err)
查询消息队列函数: INT8U OSQQuery(OS_EVENT*pevent,OS_Q_DATA *pdata)
清空消息队列函数: INT8U OSQFlush(OS_EVENT*pevent)
5.软件定时器:用于产生非硬件的定时器中断,可以用计时。
创建软件定时器指针:OS_TMR * ADCheckTime
创建软件定时器函数:OS_TMR *OSTmrCreateINT32U dly, INT32U period, INT8U opt, OS_TMR_CALLBACK callback,void *callback_arg, INT8U *pname, INT8U *perr)
关闭软件定时器函数:BOOLEAN OSTmrStop (OS_TMR *ptmr,INT8U opt,void *callback_arg,INT8U *perr)
UCOS明白解析的更多相关文章
- mybatis源码-解析配置文件(二)之解析的流程
目录 1. 简介 2. 配置文件解析流程分析 2.1 调用 2.2 解析的目的 2.3 XML 解析流程 2.3.1 build(parser) 2.3.2 new XMLConfigBuilder( ...
- Unified Emoji表情for Android
这个是我做Android以来碰到的最烦的东西,该死的emoji表情,恨之入骨..无奈这个问题分配给我了.我也只能硬着头皮做. 0.吐个槽先 首先,你要明白什么是emoji表情,不知道的google,不 ...
- java类到底是如何加载并初始化的?
Java虚拟机如何把编译好的.class文件加载到虚拟机里面?加载之后如何初始化类?静态类变量和实例类变量的初始化过程是否相同,分别是如何初始化的呢?这篇文章就 是解决上面3个问题的. 若有不正之处, ...
- jvm003 类加载的过程
类加载的过程 一.加载 在加载阶段虚拟机需要完成以下三件事: 通过一个类的全限定名称来获取此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类的 ...
- es6属性基础教学,30分钟包会
ES6基础智商划重点在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译.ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得高 ...
- ES6 基础
转载自:ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来 ...
- 新手必看ES6基础
ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两 ...
- es6常用基础合集
es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...
- (转)java类到底是如何加载并初始化的?
Java虚拟机如何把编译好的.class文件加载到虚拟机里面?加载之后如何初始化类?静态类变量和实例类变量的初始化过程是否相同,分别是如何初始化的呢?这篇文章就 是解决上面3个问题的. 若有不正之处, ...
随机推荐
- 100天搞定机器学习:PyYAML基础教程
编程中免不了要写配置文件,今天我们继续Python网络编程,学习一个比 JSON 更简洁和强大的语言----YAML .本文老胡简单介绍 YAML 的语法和用法,以及 YAML 在机器学习项目中的应用 ...
- @Transactional+@Autowired出现的lateinit property xx has not been initialized错误
1 问题描述 用Kotlin编写Spring Boot,在业务层中使用@Transactional+@Autowired时出现如下错误: lateinit property dao has not b ...
- java POI(二)
name.xslx 1 public class Demo6 { 2 3 public static void main(String[] args) throws IOException { 4 I ...
- element UI el-autocomplete 带输入建议的输入框
项目需求:需要用户在输入框中输入公司 全名 但是为了避免用户输入不全 需要做一个带输入建议的输入框 参考:https://www.jianshu.com/p/de922caf337c
- Python表达式进阶——列表表达式
x = 0 y = x*2 if x >= 0 else x print(y) # [表达式for变量in列表] l1 = [] l2 = [i for i in range(100) if i ...
- hdu5062 简单题
题意: 求区间逆序数的个数,逆序数增加了个要求就是必须要是先升序在降序例如12321或者123321这样的. 思路: 水题直接写就行了,数据范围不大,估计直接求也不会超时,我 ...
- hdu4995 (不错的小模拟)
题意: 输入n,m,k ,给你n个点,他们在一个一维坐标上,每个点有两个值,一个是坐标,另一个是价值,然后有m组操作,每次操作给一个坐标,意思就是把当前这个坐标的点距离他最近的k个点(相等 ...
- 简单使用高德地图开放平台API
需求说明 输入经纬度,得到城市名 挑选API 使用高德逆地理编码API,点击查看文档 demo <?php /** * 根据输入的经纬度返回城市名称 * @param $longitude 终点 ...
- 制作 PPT 的新方式出现了——GitHub 热点速览 v.21.19
作者:HelloGitHub-小鱼干 想当初 Markdown 的出现,拯救了多少死在 Word 样式调整上的人,现在,slidev 出现了,它让你 Focus 在本该专注的 PPT 内容制作上而不需 ...
- IDEA 新建 Java 项目 (图文讲解, 良心教程)
IDEA 新建 Java 项目 (图文讲解, 良心教程) 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载 ...