![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FreeRTOS学习笔记
文章平均质量分 62
匠在江湖
这个作者很懒,什么都没留下…
展开
-
FreeRTOS学习简易笔记
第1章FreeRTOS引入及堆栈1.1 FreeRTOS学习三阶段1)、理解RTOS总原理,会移植官方Demo,会使用。2)、知道内部机制,源码还没看!3)、知道内部实现,能看懂源码!并能轻松移植任何单片机。1.2 RTOS操作系统 与 裸机开发(前后系统)区别RTOS:根据任务需要 人为的为任务切换CPU资源,有的任务可能不能完整运行完,并对运行环境进行保护管理,相当虚拟了多个CPU。裸机开发(前后系统):每个任务只能顺序获得CPU资源。一个任务运行一遍了才轮到下个任务。.原创 2022-06-06 17:13:42 · 1341 阅读 · 0 评论 -
FreeRTOS调试—Error: L6218E: Undefined symbol xQueueCreateCountingSemaphore
或在 FreeRTOSConfig.h中定义,并改成1。尽量在 FreeRTOSConfig.h中定义不去动FreeRTOS.h#define configUSE_COUNTING_SEMAPHORES 1原创 2022-05-17 16:12:29 · 624 阅读 · 0 评论 -
FreeRTOS笔记—第四章 同步互斥与通信
4.1 同步与互斥的概念这两个概念比较容易混淆,这里用通俗的举例解释。同步:任务之间的依赖,比如A任务的运行依赖于B任务产生的数据。例如:在团队活动里,同事A写完报表,经理B才能拿去向领导汇报。经理B必须等同事A完成报表,AB之间有依赖。互斥:对资源同时访问时,只能有一个获得资源,一个使用完后才能轮到下一个,往往需要进行互斥访问。例如:打印机同一时间内只能打印一个任务;A、B两人抢厕所,A先一步占用了,B只能等A用完再用。4.2 实现同步、互斥的内核方法对比能实现同...原创 2022-05-14 17:17:59 · 584 阅读 · 0 评论 -
FreeRTOS笔记—第三章 任务管理
3.1 基本概念3.1.1 什么是任务FreeRTOS任务同我日常生活所说的任务概念是一样,指定担任的工作;指定担负的责任。只是FreeRTOS任务是指函数(函数也是为了完成某种功能)。以日常生活为例,比如你做了两件事情,写作业,回复朋友信息。写作业、回复信息就是两个任务。3.1.2 什么是多任务运行一段时间段内,同时执行多个相对独立的工作(代码)。例如,写一下作业,再回复一下信息,一段时间内同时执行了两件事,这...原创 2022-05-12 22:56:47 · 947 阅读 · 0 评论 -
STM32CubeMX移植FreeRTSO
这里只是简单介绍了STM32CubeMX移植FreeRTSO基本步骤,对于其他STM32相关配置及工程建立参考其他的。1、右侧界面下拉System Core选择SYS,在右侧的Timebase Sourse选择TIM1或其他的,不要选择SysTick,因为FreeRTOS要用。这样HAL_Delay()用到的时基就是你选择的定时器了,而不是默认的SysTick。2、在打开的界面上下拉Interface选择CMSIS_V1,CMSIS是一种接口标准,目的是屏蔽软硬件差异以提高软件的兼容性,简单原创 2022-05-12 15:10:44 · 691 阅读 · 0 评论 -
FreeRTOS移植Error: L6218E: Undefined symbol xTaskGetSchedulerSt
#ifndef INCLUDE_xTaskGetSchedulerState #define INCLUDE_xTaskGetSchedulerState 1#endif原创 2022-05-11 23:04:50 · 394 阅读 · 0 评论 -
FreeRTOS移植Error: L6218E: Undefined symbol xTaskGetCurrentTaskHandle (referred from stream_buffer.o).
错误提示:修改前修改后#ifndef INCLUDE_xTaskGetCurrentTaskHandle #define INCLUDE_xTaskGetCurrentTaskHandle 1#endif原创 2022-05-11 21:27:51 · 594 阅读 · 0 评论 -
什么是任务句柄、任务控制块
任务句柄就是一个指针,指向任务控制块(也有人所指向任务堆栈地址,是因为任务堆栈地址放在任务控制块最前面)。任务控制块 是一个基于链表的数据结构。是对任务的描述,例如任务名称、任务优先级、堆栈地址等等信息。typedef struct tskTaskControlBlock /* The old naming convention is used to prevent breaking kernel aware debuggers. */{ volatile StackType原创 2022-05-11 17:41:46 · 2008 阅读 · 0 评论 -
FreeRTOS笔记—第二章 内存管理
2.1 为什么要自己实现内存管理为了让FreeRTOS更容易使用,内核对象一般都是动态分配:用到时分配,不使用时释放。使用内存的动态管理功能,简化了程序设计,不再需要小心翼翼地提前规划各类对象,简化API函数的涉及,甚至可以减少内存的使用。在C语言的库函数中,有mallc、free等函数,但是在FreeRTOS中,它们不适用: 不适合用在资源紧缺的嵌入式系统中 这些函数的实现过于复杂、占据的代码空间太大 并非线程安全的(thread-safe...原创 2022-05-10 21:26:23 · 1643 阅读 · 0 评论 -
FreeRTOS笔记—第一章 FreeRTOS概述
1.1 认识FreeRTOS1.1.1什么是操作系统操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。简单说就是一种管理计算机资源的软件。目的是为了高效、合理、简单、安全的利用有限的计算机硬件与软件资源。最初的电脑没有操作系统,人们通过各种按钮来控制计算机,后来出现了汇编语言,操作人员通过有孔的纸带将程序输入电脑进行编译。这些将语言内置的电脑只能由制作人员自己编写程序来运行,不利于程序、设备的共用。为了解决这种问题,就...原创 2022-05-09 00:36:10 · 3711 阅读 · 0 评论