
操作系统
_杰杰_
一个超级可爱的杰杰ღ( ´・ᴗ・` )
展开
-
MQTT移植到stm32开发板——使用FreeRTOS操作系统
手把手教你将MQTT客户端移植到stm32开发板上,使用野火stm32f429官方开发板作为移植实验,使用lwip+以太网连接到云平台。原创 2020-06-26 21:10:03 · 10590 阅读 · 8 评论 -
MQTT移植到stm32开发板——使用TencentOS tiny操作系统
手把手教你将MQTT客户端移植到stm32开发板上,使用TencentOS tiny官方开发板——TencentOS_tiny_EVB_MX_Plus开发板作为移植实验,使用wifi模块连接到云平台。原创 2020-06-23 23:51:08 · 6343 阅读 · 4 评论 -
MQTT移植到stm32开发板——使用RT-Thread操作系统
文章目录ENV介绍env工具下载安装通过env移植MQTT客户端打开 env 控制台打开env并更新软件包列表移植MQTT客户端导出独立的MQTT客户端工程ENV介绍env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。env 工具包含了 RT-Thread 源代码开发编译环境和原创 2020-06-21 22:41:09 · 5438 阅读 · 0 评论 -
我是如何彻底解决嵌入式HTTP客户端痛点的?
文章目录前言高性能、跨平台的HTTP客户端发布http-client整体架构优势文档&说明开发的历程一些测试的例子效果解析URL(超快的,性能杠杠的)GET请求数据POST数据到服务器自动重定向处理下载109M的文件,速度杠杠的项目开源地址:前言你还在自己写HTTP协议吗?你还在找好用的HTTP客户端吗?你还在用难用移植的HTTP客户端吗?你还在苦逼的移植安全加密库吗?你还在用难用的API接口吗?你还 …高性能、跨平台的HTTP客户端发布今天,它它它它它它来了,解决所有的痛点,一个原创 2020-05-27 20:46:28 · 3883 阅读 · 10 评论 -
RT-Thread之mqttclient软件包
关于mqttclient软件包这是一个基于socket API之上的跨平台MQTT客户端,拥有非常简洁的API接口,以极少的资源实现QOS2的服务质量,并且无缝衔接了mbedtls加密库。优势:基于标准BSD socket之上开发,只要是兼容BSD socket的系统均可使用。稳定:无论是掉线重连,丢包重发,都是严格遵循MQTT协议标准执行,除此之外对大数据量的测试无论是收是发,都是非常...原创 2020-02-27 22:09:23 · 4560 阅读 · 8 评论 -
【TencentOS tiny学习】源码分析(5)——信号量
文章目录信号量信号量的数据结构信号量控制块与信号量相关的宏定义信号量实现创建信号量销毁信号量获取信号量释放信号量总结信号量信号量(sem)在操作系统中是一种实现系统中任务与任务、任务与中断间同步或者临界资源互斥保护的机制。在多任务系统中,各任务之间常需要同步或互斥,信号量就可以为用户提供这方面的支持。抽象来说,信号量是一个非负整数,每当信号量被获取(pend)时,该整数会减一,当该整数的值为...原创 2019-08-24 20:06:02 · 2443 阅读 · 0 评论 -
【TencentOS tiny学习】源码分析(2)——调度器
文章目录调度器的基本概念启动调度器Cortex-M内核关中断指令回归正题看看任务栈的初始化查找最高优先级任务任务切换的实现SysTickSysTick初始化SysTick中断调度器的基本概念TencentOS tiny中提供的任务调度器是基于优先级的全抢占式调度,在系统运行过程中,当有比当前任务优先级更高的任务就绪时,当前任务将立刻被切出,高优先级任务抢占处理器运行。TencentOS ti...原创 2019-08-16 02:25:58 · 4318 阅读 · 3 评论 -
初学者到底该选择什么RTOS?
引言前天的推文中,有读者问我,作为初学者到底该选择什么RTOS来学习?答案作为一个深入了解过rtos内核实现的我,先给出个回答吧:选择越简单的操作系统内核越好rtos必须是国内的!其实我个人首推TencentOS tiny,但是目前仅在内测阶段,就算了吧。然后是rt-thread接下来就是LiteOS原因首先吧,还是那句话,越简单越好。第一点:初学者学习操作系统,那必须是先学...原创 2019-08-21 20:04:54 · 17224 阅读 · 4 评论 -
【TencentOS tiny学习】源码分析(3)——队列
文章目录队列基本概念队列的阻塞机制队列实现的数据结构队列控制块消息控制块任务控制块中的消息成员变量与消息相关的宏定义消息池队列创建销毁队列清空队列等待队列(消息)(消息)写入队列总结队列基本概念队列是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递消息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将...原创 2019-08-17 03:06:48 · 7477 阅读 · 2 评论 -
【TencentOS tiny学习】源码分析(6)——互斥锁
文章目录互斥锁优先级翻转优先级继承互斥锁的数据结构互斥锁控制块与互斥锁相关的宏定义创建互斥锁销毁互斥锁获取互斥锁释放互斥锁互斥锁互斥锁又称互斥信号量,是一种特殊的二值信号量,它和信号量不同的是,它具有互斥锁所有权、递归访问以及优先级继承等特性,在操作系统中常用于对临界资源的独占式处理。在任意时刻互斥锁的状态只有两种,开锁或闭锁,当互斥锁被任务持有时,该互斥锁处于闭锁状态,当该任务释放互斥锁时,...原创 2019-08-28 10:10:32 · 2677 阅读 · 0 评论 -
【TencentOS tiny学习】源码分析(7)——事件
文章目录引言事件事件数据结构事件控制块与事件相关的宏定义创建事件销毁事件引言大家在裸机编程中很可能经常用到flag这种变量,用来标志一下某个事件的发生,然后在循环中判断这些标志是否发生,如果是等待多个事件的话,还可能会if((xxx_flag)&&(xxx_flag))这样子做判断。当然,如果聪明一点的同学就会拿flag的某些位做标志,比如这个变量的第一位表示A事件,第二位表示...原创 2019-09-04 08:27:08 · 4358 阅读 · 3 评论 -
TencentOS tiny源码分析(8)—— 软件定时器
文章目录软件定时器的基本概念软件定时器的基本概念TencentOS tiny 的软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,它实现的功能与硬件定时器也是类似的。硬件定时器是芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间值后芯片中断控制器产生时...原创 2019-10-02 18:21:44 · 2888 阅读 · 0 评论 -
【TencentOS tiny学习】源码分析(4)——消息队列
文章目录消息队列系统消息池初始化消息队列创建消息队列销毁从消息队列获取消息向消息队列写入消息消息队列在前一篇文章中【TencentOS tiny学习】源码分析(3)——队列我们描述了TencentOS tiny的队列实现,同时也点出了TencentOS tiny的队列是依赖于消息队列的,那么我们今天来看看消息队列的实现。其实消息队列是TencentOS tiny的一个基础组件,作为队列的底...原创 2019-08-20 01:21:40 · 3165 阅读 · 0 评论 -
TencentOS学习笔记(1)
文章目录IoT Development Board 开箱初识TencentOS tinyIoT Development Board 开箱很荣幸收到 Tencent汪礼超大神 的内测邀请,让我提前了解并且学习了一下 TencentOS tiny,这是一个很小巧的实时操作系统RTOS,很nice。进入正题,先看看IoT Development Board 开发板的开箱~ EVB_MX 是腾讯物联...原创 2019-08-15 10:15:11 · 3946 阅读 · 4 评论 -
liteos源码中的哨兵函数思想
直接进入正题在rtos中,一般来说任务函数是不允许退出的,否则任务将通过lr寄存器返回。但在LiteOS中,系统在任务初始化时将任务的上下文初始化为pc=osTaskEntry,lr=osTaskExit。VOID *osTskStackInit(UINT32 uwTaskID, UINT32 uwStackSize, VOID *pTopStack){ ····· pstC...原创 2019-06-12 14:19:13 · 1137 阅读 · 2 评论 -
【连载】从单片机到操作系统③——走进FreeRTOS
从前面的文章,我们知道,(单核)单片机某一时刻只能干一件事,会造成单片机资源的浪费,而且还有可能响应不够及时,所以,在比较庞大的程序或者是要求实时性比较高的情况下,我们可以移植操作系统。因为这种情况下操作系统比裸机方便很多,效率也高。下面,杰杰将带你们走进FreeRTOS的世界随便看看。首先说明一下:① 鉴于作者水平有限,学习并不深入,只是学习了皮毛而已,出错在所难免,欢迎指正。② 以下文...原创 2018-05-14 12:32:38 · 15762 阅读 · 4 评论 -
【连载】从单片机到操作系统⑤——FreeRTOS列表&列表项的源码解读
FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数据结构,学习过数据结构的同学都知道,数据结构能使我们处理数据更加方便快速,能快速找到数据,在FreeRTOS中,这种列表与列表项更是必不可少的,能让我们的系统跑起来更...原创 2018-06-09 23:46:22 · 3077 阅读 · 0 评论 -
【连载】从单片机到操作系统⑥——FreeRTOS任务切换机制详解
大家晚上好,我是杰杰,最近挺忙的,好久没有更新了,今天周末就吐血更新一下吧!前言 FreeRTOS是一个是实时内核,任务是程序执行的最小单位,也是调度器处理的基本单位,移植了FreeRTOS,则避免不了对任务的管理,在多个任务运行的时候,任务切换显得尤为重要。而任务切换的效率会决定了系统的稳定性与效率。 FreeRTOS的任务切换是干嘛的呢,rtos的实际是永远运行的是具有最高优先级...原创 2018-07-14 01:02:01 · 8277 阅读 · 7 评论 -
【连载】从单片机到操作系统⑦——深入了解FreeRTOS的延时机制
没研究过操作系统的源码都不算学过操作系统 FreeRTOS 时间管理时间管理包括两个方面:系统节拍以及任务延时管理。系统节拍:在前面的文章也讲得很多,想要系统正常运行,那么时钟节拍是必不可少的,FreeRTOS的时钟节拍通常由SysTick提供,它周期性的产生定时中断,所谓的时钟节拍管理的核心就是这个定时中断的服务程序。FreeRTOS的时钟节拍isr中核心的工作就是调用vTa...原创 2018-08-08 21:23:18 · 5848 阅读 · 0 评论 -
RTOS的临界段知识详解
大家周末好,刚回学校,乱七八糟的事情一堆,抽个时间更新下~写在前面的话本章主要讲解RTOS的临界段什么是临界段 代码的临界段也称为临界区,指处理时不可分割的代码区域,一旦这部分代码开始执行,则不允许任何中断打断。为确保临界段代码的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完毕后,要立即打开中断。临界段的作用 其实在RTOS中,使用最多的临界段是OS...原创 2018-09-09 00:34:21 · 7578 阅读 · 0 评论 -
RT-Thread内核实现的思维导图——线程&调度器
前段日子,我深入了解了一下FreeRTOS的源码,发现没那么简单,以我的能力并不能很好写出来,还需再加把劲。 然后最近我跟着火哥的书来捣鼓RT-Thread,发现这个os也很不错,就打算跟着火哥的思路搞一搞内核的实现,很多人都说,没必要造轮子,rtos会用就行了,以前的我也是这么觉得的,现在发现自己错了。 举个栗子吧:曾经我敢写FreeRTOS的源码详解,我就是觉得自己很牛逼了...原创 2018-09-10 13:35:30 · 3437 阅读 · 3 评论 -
继续学习FreeRTOS~
写在前面:杰杰这个月很忙~所以并没有时间更新,现在健身房闭馆装修,晚上有空就更新一下!其实在公众号没更新的这段日子,每天都有兄弟在来关注我的公众号,这让我受宠若惊,在这里谢谢大家的支持啦!!谢谢^在这里我们就跟着火哥的书来学习一下FreeRTOS的消息队列,这本书我觉得写得很好,基本都讲解到了,关于什么是消息队列,就请大家去看书,基础知识我暂时不说了。声明:本书绝大部分内容来自《FreeR...原创 2019-03-13 15:00:56 · 1087 阅读 · 7 评论 -
FreeRTOS消息队列
问题解答曾经有人问我,FreeRTOS那么多API,到底怎么记住呢?我想说,其实API不难记,就是有点难找,因为FreeRTOS的API很多都是带参宏,所以跳来跳去的比较麻烦,而且注释也很多,要找还真不是那么容易,不过也没啥,一般都会有API手册的,我就告诉大家一下:FreeRTOS Kernel: Reference ManualFreeRTOS内核:参考手册,大家可以在官网下载,也能在...原创 2019-01-31 17:55:04 · 20620 阅读 · 0 评论 -
FreeRTOS移植——基于stm32f1
准备在移植之前,我们首先要获取到FreeRTOS的官方的源码包。这里我们提供两个下载链接:一个是官网:http://www.freertos.org/,另外一个是代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/。这里我们演示如何在代码托管网站里面下载。打开网站链接之后,我们选择FreeRTOS的最新版本V9...原创 2019-01-30 13:59:10 · 11739 阅读 · 9 评论 -
FreeRTOS优化与错误排查方法
写在前面主要是为刚接触 FreeRTOS 的用户指出那些新手通常容易遇到的问题。这里把最主要的篇幅放在栈溢出以及栈溢出侦测上,因为栈相关的问题是初学者遇到最多的问题。printf-stdarg.c当调用 C 标准库 的函数时,栈空间使用量可能会急剧上升,特别是 IO 与字符串处理函数,比如 sprintf()、printf()等。在 FreeRTOS 源码包中有一个名为 printf-st...原创 2019-02-13 13:37:19 · 3151 阅读 · 2 评论 -
【连载】从单片机到操作系统④——FreeRTOS创建任务&开启调度详解
创客的兄弟姐妹们大家好,我是杰杰。又到了更新的时候了。开始今天的内容之前,先补充一下上篇文章【连载】从单片机到操作系统③——走进FreeRTOS的一点点遗漏的知识点。 1BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, 2 const char * const pcName, ...原创 2018-05-26 18:16:11 · 4377 阅读 · 0 评论