摘要: 软件定时器的基本概念 TencentOS tiny 的软件定时器是由操作系统提供的一类 ,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,本质上软件定时器的使用相当于扩展了定时器的数量,允许创建更多的定时业务,它实现的功能与硬件定时器也是类似的。 硬件定时器是芯片本身提 阅读全文
posted @ 2019-10-16 22:56 杰杰IoT 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 引言 大家在裸机编程中很可能经常用到 这种变量,用来标志一下某个事件的发生,然后在循环中判断这些标志是否发生,如果是等待多个事件的话,还可能会 这样子做判断。当然,如果聪明一点的同学就会拿 的`某些位 A`事件,第二位表示 事件,当这两个事件都发生的时候,就判断 的值是多少,从而判断出哪个事件发生了 阅读全文
posted @ 2019-10-16 22:53 杰杰IoT 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 互斥锁 互斥锁又称互斥互斥锁,是一种特殊的信号量,它和信号量不同的是,它具有 等特性,在操作系统中常用于对临界资源的 处理。在任意时刻互斥锁的状态只有两种, ,当互斥锁被任务持有时,该互斥锁处于闭锁状态,当该任务释放互斥锁时,该互斥锁处于开锁状态。 一个任务持有互斥锁就表示它拥有互斥锁的所有权,只有 阅读全文
posted @ 2019-10-16 22:42 杰杰IoT 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 信号量 信号量( )在操作系统中是一种实现系统中任务与任务、任务与中断间同步或者临界资源互斥保护的机制。在多任务系统中,各任务之间常需要同步或互斥,信号量就可以为用户提供这方面的支持。 抽象来说,信号量是一个非负整数,每当信号量被获取( )时,该整数会减一,当该整数的值为 时,表示信号量处于无效状态 阅读全文
posted @ 2019-10-16 22:40 杰杰IoT 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 消息队列 在前一篇文章中 "【TencentOS tiny学习】源码分析(3)——队列" 我们描述了TencentOS tiny的队列实现,同时也点出了TencentOS tiny的队列是依赖于消息队列的,那么我们今天来看看消息队列的实现。 其实消息队列是TencentOS tiny的一个 基础组件 阅读全文
posted @ 2019-10-16 22:37 杰杰IoT 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 队列基本概念 队列是一种常用于任务间通信的数据结构,队列可以在 传递消息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定任务等待消息的时间 ,在这段时间中,如果队列为空,该任务将 状态以等待队列数据有效。当 阅读全文
posted @ 2019-10-16 22:35 杰杰IoT 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 温馨提示:本文不描述与浮点相关的寄存器的内容,如需了解自行查阅(毕竟我自己也不懂) 调度器的基本概念 中提供的任务调度器是基于优先级的全抢占式调度,在系统运行过程中,当有比当前任务优先级更高的任务就绪时,当前任务将立刻被 ,高优先级任务 处理器运行。 内核中也允许创建相同优先级的任务。相同优先级的任 阅读全文
posted @ 2019-10-16 22:32 杰杰IoT 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 任务的基本概念 从系统的角度看,任务是竞争系统资源的最小运行单元。TencentOS tiny是一个支持多任务的操作系统,任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行,理论上任何数量的任务都可以共享同一个优先级,这样子处于就绪态的多个相同优先级任务将会以时间片切换的方式共享 阅读全文
posted @ 2019-10-16 22:30 杰杰IoT 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 移植前的准备工作 1. 获取STM32的裸机工程模板 STM32的裸机工程模板直接使用野火STM32开发板配套的固件库例程即可。可以从我 上获取 "https://github.com/jiejieTop/TencentOS Demo" 下载TencentOS tiny 源码 TencentOS t 阅读全文
posted @ 2019-10-16 22:27 杰杰IoT 阅读(1865) 评论(0) 推荐(0) 编辑
摘要: 新闻 2019年9月18日,腾讯宣布将 `自主研发 轻量级`物联网实时操作系统 TencentOS tiny 。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对 阅读全文
posted @ 2019-10-16 22:23 杰杰IoT 阅读(856) 评论(0) 推荐(0) 编辑
摘要: ButtonDrive 自己写的一个按键驱动,支持单双击、连按、长按;采用回调处理按键事件(自定义消抖时间),使用只需3步,创建按键,按键事件与回调处理函数链接映射,周期检查按键。 源码地址: "https://github.com/jiejieTop/ButtonDrive" 前言 前几天写了个按 阅读全文
posted @ 2019-10-16 22:13 杰杰IoT 阅读(1805) 评论(2) 推荐(2) 编辑
摘要: 基于Linux的kfifo移植到STM32(支持os的互斥访问) 关于kfifo kfifo是内核里面的一个First In First Out数据结构,它采用环形循环队列的数据结构来实现;它提供一个无边界的字节流服务,最重要的一点是,它使用并行无锁编程技术,即当它用于只有一个入队线程和一个出队线程 阅读全文
posted @ 2019-10-16 22:11 杰杰IoT 阅读(769) 评论(0) 推荐(1) 编辑
摘要: 队列的概念 在此之前,我们来回顾一下队列的基本概念: 队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。 队列的特点 类似售票排队窗口,先到的人看到能先买到票,然后先走,后来的人只能后买到票 队 阅读全文
posted @ 2019-10-16 22:08 杰杰IoT 阅读(4121) 评论(1) 推荐(0) 编辑
摘要: 本文介绍一种Cortex M内核中的精确延时方法 前言 为什么要学习这种延时的方法? 1. 很多时候我们跑操作系统,就一般会占用一个硬件定时器——SysTick,而我们一般操作系统的时钟节拍一般是设置100 1000HZ,也就是1ms——10ms产生一次中断。很多裸机教程使用延时函数又是基于SysT 阅读全文
posted @ 2019-10-16 22:05 杰杰IoT 阅读(1232) 评论(0) 推荐(0) 编辑
摘要: STM32之串口DMA接收不定长数据 引言 在使用stm32或者其他单片机的时候,会经常使用到串口通讯,那么如何有效地接收数据呢?假如这段数据是不定长的有如何高效接收呢? 同学A:数据来了就会进入串口中断,在中断中读取数据就行了! 中断就是打断程序正常运行,怎么能保证高效呢?经常把主程序打断,主程序 阅读全文
posted @ 2019-10-16 22:02 杰杰IoT 阅读(6365) 评论(1) 推荐(3) 编辑