
TencentOS tiny
文章平均质量分 68
TencentOS tiny实时操作系统
Ch_champion
爱上挨踢,成为一名(软/硬件)合格的攻城狮
联系方式:加这个QQ号:191502656
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TencentOS-tiny 功耗管理 (二十 二)- tickless(低功耗)
一、功耗管理tickless概述TencentOS tiny的tickless机制提供了一套非周期性时钟的方案,在系统无需systick驱动调度的情况下,停掉systick。初级功耗管理方案下,因为还有系统systick的存在,因此系统进入idle任务后,并不会在睡眠模式下停留太久。要想进入到更极致的低功耗状态,需要暂停systick。arm架构提供三级低功耗模式,sleep、s...原创 2020-03-26 10:18:14 · 19091 阅读 · 2 评论 -
TencentOS-tiny 功耗管理 (二十 一)- 低功耗
一、功耗管理低功耗概述TencentOS tiny提供了多级低功耗管理框架。初级低功耗的方案是,当系统处于“空闲”状态,也即进入idle任务时,系统调用处理器(目前支持的架构是arm v7m)低功耗接口进入短暂的睡眠模式。API讲解编程实例对于初级低功耗模式,无需用户编写任何代码,直接通过在tos_config.h打开TOS_CFG_PMR_MGR_EN开关即可:#de...原创 2020-03-25 13:17:07 · 22601 阅读 · 0 评论 -
TencentOS-tiny 内核基础组件(二十)- 优先级队列
一、内核基础组件优先级队列概述提供了基于优先级的队列管理。环形队列的入队出队规则是先入队的先出队(first in, first out),优先级队列的出队顺序是按照优先级来的,优先级较高的元素先出队。API讲解编程实例1、编写main.c示例代码:2、运行效果:源码链接:...原创 2020-03-25 13:16:46 · 19512 阅读 · 0 评论 -
TencentOS-tiny 内核基础组件(十 九)- 二项堆
一、内核基础组件二项堆概述此组件用来内部实现优先级队列,不推荐用户使用。原创 2020-03-25 13:15:56 · 19221 阅读 · 0 评论 -
TencentOS-tiny 内核基础组件(十 八)- 字符流先入先出队列
一、内核基础组件1、字符流先入先出队列概述字符流先入先出队列,提供的是一个面向字符操作的环形队列实现,提供了基本的字符流入队出队操作。本质上就是环形队列中元素为字符(单字节长度)时的特例,实际上字符流先出先出队列底层的实现就是环形队列。API讲解编程实例1、编写main.c示例代码:2、运行效果:源码链接...原创 2020-03-25 13:15:47 · 18261 阅读 · 0 评论 -
TencentOS-tiny 内核基础组件(十 七)- 环形队列
1、环形队列概述环形队列本质上就是支持先入先出操作的环形buffer,是系统的一个基础组件,通常用来作为实现上层机制的底层数据容器。API讲解编程实例1、编写main.c示例代码:2、运行效果:源码链接...原创 2020-03-25 13:15:32 · 18514 阅读 · 0 评论 -
TencentOS-tiny 时间管理(十 六)- 时间片轮转机制
概述TencentOS tiny操作系统内核是一个抢占式内核,抢占式内核的特点是,如果最高优先级的任务不放弃CPU(调用tos_task_delay、tos_task_yeild等主动放权,或者任务间同步通信机制的pend接口等),那么CPU将会一直被此任务独占。假设这样一种场景:系统中包含多个同等优先级的任务,且这几个任务体中都没有放弃CPU的行为,则会出现的情况是,这几个任务始终只有第...原创 2020-03-25 13:15:10 · 19086 阅读 · 0 评论 -
TencentOS-tiny 时间管理(十 五)- 软件定时器
概述软件定时器提供了一套从软件层次实现的定时器机制,相对应的概念是硬件定时器。用户可以创建一系列的软件定时器,并指定软件定时器到期的条件以及执行回调,当软件定时器到期时会执行注册的回调。通常来说,用户注册的软件定时器回调中很可能包含延迟动作或同步等待操作,或者回调函数本身逻辑复杂执行耗时较长,因此系统将软件定时器管理逻辑设计成一个任务,在这个任务中扫描定时器是否过期并执行定时器回调。但是如...原创 2020-03-25 13:14:56 · 17645 阅读 · 0 评论 -
TencentOS-tiny 时间管理(十 四)
概述时间管理,提供了一族与时间相关的函数,可以获取/设置系统时钟滴答数(systick)、systick与毫秒单位之间互相转化、按毫秒、墙上时钟等单位进行任务睡眠的功能。API讲解编程实例1、配置每秒钟的系统滴答数TOS_CFG_CPU_TICK_PER_SECOND:#define TOS_CFG_CPU_TICK_PER_SECOND 1000u2、编写main.c示例...原创 2020-03-25 13:14:34 · 17107 阅读 · 0 评论 -
TencentOS-tiny 内存管理(十 三)- 静态内存
一、内存管理1、静态内存概述静态内存管理模块,提供了一套管理静态内存块的机制,支持用户申请、释放定长的内存块。API讲解创建静态内存池接口:k_err_t tos_mmblk_pool_create(k_mmblk_pool_t *mbp, void *pool_start, size_t blk_num, size_t blk_size);这里详细讲解此api参数意...原创 2020-03-25 13:14:14 · 19162 阅读 · 0 评论 -
TencentOS-tiny 内存管理(十 二)- 动态内存
一、内存管理1、动态内存概述动态内存管理模块,提供了一套动态管理系统内存的机制,支持用户动态的申请、释放不定长内存块。API讲解编程实例1、在tos_config.h中,配置动态内存组件开关TOS_CFG_MMHEAP_EN:#define TOS_CFG_MMHEAP_EN 1u2、在tos_config.h中,配置动态内存池大小:#define TOS_CF...原创 2020-03-25 09:35:33 · 18181 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(十 一)- 优先级邮箱队列
一、任务间通信1、优先级邮箱队列概述优先级邮箱队列相对邮箱队列来说,给邮件附加了一个优先级的概念,较高优先级的邮件会比较低优先级的邮件更快地被其他任务收到(本质上,邮箱队列的底层数据容器是环形队列,优先级邮箱队列的底层数据容器是优先级队列)。API讲解编程实例1、在tos_config.h中,配置优先级邮箱队列组件开关TOS_CFG_PRIORITY_MAIL_QUEUE_...原创 2020-03-24 15:48:20 · 17173 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(十)- 优先级消息队列
一、任务间通信1、优先级消息队列概述优先级消息队列相对消息队列来说,给消息附加了一个优先级的概念,较高优先级的消息会比较低优先级的消息更快地被其他任务收到(本质上,消息队列的底层数据容器是环形队列,优先级消息队列的底层数据容器是优先级队列)。API讲解编程实例1、在tos_config.h中,配置优先级消息队列组件开关TOS_CFG_PRIORITY_MESSAGE_QUE...原创 2020-03-24 15:42:22 · 17138 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(九)- 邮箱队列
一、任务间通信1、邮箱队列概述消息队列传递的是指针,邮箱队列传递的是大片的内存数据。API讲解编程实例1、在tos_config.h中,配置邮箱队列组件开关TOS_CFG_MAIL_QUEUE_EN:#define TOS_CFG_MAIL_QUEUE_EN 1u2、编写main.c示例代码:/* USER CODE END Header *//* Inc...原创 2020-03-24 15:32:24 · 17961 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(八)- 消息队列
一、任务间通信1、消息队列概述消息队列提供了任务间传递指针数据的机制,所谓的“消息“就是指针。消息本身如何解析使用,由传递消息的两个任务自行规定,消息队列不对消息本身做任何规定和限制,消息队列仅承担指针数据的传递义务。API讲解编程实例1、在tos_config.h中,配置消息队列组件开关TOS_CFG_MESSAGE_QUEUE_EN:#define TOS_CFG_...原创 2020-03-24 15:23:47 · 18458 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(七)- 计数锁
一、任务间通信1、计数锁概述计数锁提供了一种“计数信息”同步的概念,计数锁创建的时候会指定一个计数值,每当有任务执行tos_countdownlatch_post时,该计数锁的计数值减一,直到计数锁的计数值为零时,等待此计数锁的任务才会被唤醒。API讲解编程实例1、在tos_config.h中,配置队列组件开关TOS_CFG_COUNTDOWNLATCH_EN:#def...原创 2020-03-24 15:11:48 · 16971 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(六)- 完成量
一、任务间通信1、完成量概述完成量是一种简单的任务间通信机制,用以在任务间同步某一事件是否已“完成”的信息。API讲解编程实例1、在tos_config.h中,配置完成量组件开关TOS_CFG_COMPLETION_EN:#define TOS_CFG_COMPLETION_EN 1u2、编写main.c示例代码:/* USER CODE END Head...原创 2020-03-24 15:04:20 · 15969 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(五)- 事件
一、任务间通信1、事件概述事件提供了一种任务间实现同步和信息传递的机制。一般来说,一个事件中包含了一个旗标,这个旗标的每一位表示一个“事件”。一个任务可以等待一个或者多个“事件”的发生,其他任务在一定的业务条件下可以通过写入特定“事件”唤醒等待此“事件”的任务,实现一种类似信号的编程范式。API讲解编程实例1、在tos_config.h中,配置事件组件开关TOS_CFG...原创 2020-03-24 14:48:50 · 16574 阅读 · 0 评论 -
TencentOS-tiny 任务间通信(四)- 信号量
一、任务间通信1、信号量概述信号量是一种实现任务间同步的机制,一般用于多个任务间有限资源竞争访问。通常来说,一个信号量中持有一个整形数值,用以表示可用资源的数量。当一个信号量的可用资源数量大于0时,任务尝试获取该信号量成功,信号量的可用资源数减一;当一个信号量的可用资源数等于0时,任务尝试获取该信号量失败或进入阻塞状态。信号量的这一模式,当可用资源数为1时,可将其用于资源的互斥访问...原创 2020-03-24 14:36:24 · 16779 阅读 · 0 评论 -
TencentOS-tiny 任务间通讯(三)- 互斥量
一、任务间通信1、互斥量概述互斥量又称互斥锁,一般用于共享资源的互斥排他性访问保护。互斥量在任意时刻处于且仅会处于解锁或锁定状态,当一个任务获取到一把锁后(互斥量锁定),其他任务再尝试获得这把锁时会失败或进入阻塞状态,当该任务释放持有的锁时(互斥量解锁),会唤醒一个正阻塞等待此互斥量的任务,被唤醒的任务将会获取这把锁。在多任务运行环境中,有些共享资源不具有多线程可重入性,对于这...原创 2020-03-19 15:38:38 · 16944 阅读 · 0 评论 -
TencentOS-tiny 任务管理(二)
硬件平台:STM32L051C8T6原创 2020-03-18 17:30:59 · 16346 阅读 · 0 评论 -
移植 TencentOS-tiny 实时操作系统(一)
闲暇之时,利用一点点时间移植一下TencentOS-tiny系统玩玩。硬件(MCU):STM32L051C8T6目前来说TencentOS-tiny比起LiteOS还有一些不足的地方(组件还没有LiteOS完善),但是它占用flash确实是小些,比起LiteOS。直接进入话题,其实,我已在前一个月就移植好了,现在就是做个记录,而且目前来说,网上还没有哪个教程是基于M0内核的MCU作于讲...原创 2020-02-25 16:59:53 · 30374 阅读 · 0 评论