![](https://img-blog.csdnimg.cn/03f25c69b420467187eacd9b4a8f6e0e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
FreeRtos
文章平均质量分 95
关于实时操作系统更深层的理论知识可以去看看韦东山老师的教程讲的非常详细,网上的资料实在太多了,这里理论就少些一些主要记录一些我平常在用的一些api函数,如有疏忽请多包涵;
凉开水白菜
有嵌入式arm及qt软件开发方面三年经验,嵌入式qt领域专家,csdn/掘金平台优质作者,擅长嵌入式软硬件项目方案设计,qt界面开发,单片机程序设计等。
展开
-
【FreeRTOS】中断管理
前面的章节多数的API使用都讲到中断专用和任务专用是分开的,为什么FreeRTOS会设计两套api函数呢?他们又有那些区别?原创 2022-11-10 15:04:17 · 1176 阅读 · 0 评论 -
【FreeRTOS】任务通知的使用
任务通知和信号量、队列、事件等用法相同,在任务之间进行数据传输或者事件传输对比队列和信号量等效率更高,因为任务通知的变量是跟随任务创建时创建的无需像队列事件一样创建结构体可以更节省内存;原创 2022-11-07 23:47:20 · 1264 阅读 · 0 评论 -
【FreeRTOS】事件组的使用
事件组与信号量类似,我们可以把事件组理解为一个整数(在FreeRTOSConfig.h文件中),用其中一位来表示一个任务的状态0-1,我们可以通过这些任务的组合来进行任务执行的判断标准;他与信号量不同的是事件组能针对1对多,多对多的任务,例如我们按键按下事件组可以通知多个任务开始执行,或者某个任务可以等待多个任务完成后在执行等;如果configUSE_16_BIT_TICKS是1,那么这个整数就是16位的,低8位用来表示事件。原创 2022-11-07 17:29:58 · 717 阅读 · 0 评论 -
【FreeRTOS】软件定时器的使用
软件定时器使用tick作为时间片轮转调度以及延迟操作的时间度量单位,tick是实现定时触发功能的基础。tick计数发生在每次时钟中断处理的过程,时钟中断是定时产生的,系统在默认情况下为1ms触发一次,即一个tick代表1ms,用户可根据应用需要调整该时间。软件定时器是用来在指定时间或者触发一次或多次某个功能函数的调用。这种由定时器来执行的函数叫做定时器回调函数,定时器回调函数以及触发时间由应用程序来设定。当定时器的触发时间到来,则定时器的回调函数会被执行。原创 2022-11-07 12:39:01 · 1967 阅读 · 0 评论 -
【FreeRTOS】互斥锁的使用
可以看到互斥量的api和信号量的api是一样的,因为互斥量的本质是一个特殊信号量,但是需要注意互斥量不能在ISR中使用;互斥量的使用场景一般是在多个任务中操作同一个变量的时候会出现使用;互斥量是一种特殊的二进制信号量,使用互斥量时,先创建、然后去获得、释放它。:pdTRUE表示成功,如果二进制信号量的计数值已经是1,再次调用此函数则返回失败;如果计数型信号量的计数值已经是最大值,再次调用此函数则返回失败;: 返回句柄,非NULL表示成功。:信号量句柄,释放哪个信号量。:信号量句柄,释放哪个信号量。原创 2022-11-04 17:48:37 · 4372 阅读 · 0 评论 -
【FreeRTOS】信号量的使用
什么是信号量?什么是计数型信号量?什么是二进制信号量?以及互斥信号量和递归信号量信号也就是发出通知的信号,量表示信号发出的数量;让信号的数量没有限制的时候就是计数型信号量;当数量只有两种状态一种是有(1)一种是无(0)也就是二进制信号量;原创 2022-11-04 16:32:44 · 2501 阅读 · 0 评论 -
【FreeRTOS】队列的使用
基于 FreeRTOS 的应用程序由一组独立的任务构成——每个任务都是具有独立权限的小程序。这些独立的任务之间很可能会通过相互通信以提供有用的系统功能。FreeRTOS 中所有的通信与同步机制都是基于队列实现的;原创 2022-11-03 18:01:15 · 2094 阅读 · 0 评论 -
【FreeRTOS】多任务创建
在上一章我们完成了工程的创建后面代码都会基于这个模板来编写,本章就学习一下实时操作系统给我们带来最直观的优势,多任务执行;原创 2022-11-03 11:35:42 · 679 阅读 · 0 评论 -
【FreeRTOS】系统移植:资料下载
在裸机系统中,所有的程序基本都是自己写的,所有的操作都是在一个无限的大循环里面实现。现在还有一些项目开发用的都是裸机系统,而且也能够满足需求。为什么还要学习 RTOS 编程,偏偏还要整个操作系统进来。一是项目需要,随着项目要实现的功能越来越多,单纯的裸机系统已经不能够完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,我们可以考虑引入RTOS 实现多任务管理,这是使用 RTOS 的最大优势。二是学习的需要,进入实时操作系统的学习对于我们后面学习Linux系统开发会有不少的帮助;原创 2022-11-02 15:41:38 · 1426 阅读 · 1 评论