
从0到1攻破FreeRTOS
将从FreeRTOS 内核--->FreeRTOS 内核应用开发--->简单外设
Sumjess
嵌入式
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十四)任务通知 NO.2 函数接口讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十四)任务通知 NO.2 函数接口讲解一、发送任务通知函数1、xTaskGenericNotify() xTaskGenericNotify()函数是一个通用的任务通知发送函数,在任务中发送通知的 API函数 , 如 xTaskNotifyGive() 、 xTaskNotify() 、 xTaskNoti...原创 2019-09-24 21:09:47 · 1823 阅读 · 1 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十三)任务通知 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十三)任务通知 NO.1 基本概念一、任务通知的基本概念: 每个任务都有一个 32 位的通知值,在大多数情况下,任务通知可以替代二值信号量、计数信号量、事件组, 也可以替代长度为 1 的队列(可以保存一个 32 位整数或指针值) 。 相对于以前使用 FreeRTOS 内核通信的资源,必须创建队...原创 2019-09-24 08:48:52 · 349 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十二)软件定时器 NO.3 软件定时器实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十二)软件定时器 NO.3 软件定时器实验软件定时器实验软件定时器实验是在FreeRTOS中创建了两个软件定时器,其中一个软件定时器是单次模式,5000个tick调用一次回调函数,另一个软件定时器是周期模式,1000个tick调用一次回调函数。实验步骤:定义软件定时器句柄 实现回调函数 void (*TimerC...原创 2019-09-23 21:52:40 · 431 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十一)软件定时器 NO.2 函数接口讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十一)软件定时器 NO.2 函数接口讲解目录一、软件定时器创建函数 xTimerCreate()二、软件定时器启动函数:三、软件定时器停止函数:四、软件定时器任务:五、软件定时器删除函数 xTimerDelete()一、软件定时器创建函数 xTimerCreate() xTimerCre...原创 2019-09-23 21:51:40 · 564 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十)软件定时器 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十)软件定时器 NO.1 基本概念目录一、软件定时器的基本概念:二、软件定时器应用场景:三、软件定时器的精度:四、软件定时器的运作机制:五、软件定时器控制块:一、软件定时器的基本概念:① 硬件定时器是芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制...原创 2019-09-23 21:50:16 · 567 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十九)事件 NO.3 事件实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十九)事件 NO.3 事件实验 事件标志组实验是在FreeRTOS中创建了两个任务,一个是设置事件任务,一个是等待事件任务,两个任务独立运行,设置事件任务通过检测按键的按下情况设置不同的事件标志位,等待事件任务则获取这两个事件标志位,并且判断两个事件是否都发生,如果是则输出相应信息,LED进行翻转。等待事件任务的...原创 2019-09-23 21:49:13 · 470 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十八)事件 NO.2 事件函数接口讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十八)事件 NO.2 事件函数接口讲解目录一、事件创建函数 xEventGroupCreate()二、事件删除函数 vEventGroupDelete()三、事件组置位函数 xEventGroupSetBits()(任务)四、事件组置位函数 xEventGroupSetBitsFromISR()(中断)五、等待...原创 2019-09-23 21:45:45 · 945 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十七)事件 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十七)事件 NO.1 基本概念目录一、事件的基本概念:二、FreeRTOS 提供的事件具有如下特点:三、事件运作机制:四、事件控制块:一、事件的基本概念:① 事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同...原创 2019-09-23 18:47:27 · 413 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十六)互斥量 NO.3 互斥量实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十六)互斥量 NO.3 互斥量实验目录实验一:模拟优先级翻转实验:实验二:互斥量实验实验一:模拟优先级翻转实验: 模拟优先级翻转实验是在FreeRTOS中创建了三个任务与一个二值信号量,任务分别是高优先级任务,中优先级任务,低优先级任务,用于模拟产生优先级翻转。低优先级任务在获取信号量后运行的时候,被中...原创 2019-09-22 16:31:43 · 554 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十五)任务通知 NO.3 任务通知实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十五)任务通知 NO.3 任务通知实验一、任务通知代替消息队列: 任务通知代替消息队列是在FreeRTOS中创建了三个任务,其中两个任务是用于接收任务通知,另一个任务发送任务通知。三个任务独立运行,发送消息任务是通过检测按键的按下情况来发送消息通知,另两个任务获取消息通知,在任务通知中没有可用的通知之前就一直等...原创 2019-09-24 21:45:12 · 505 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十八)中断管理 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十八)中断管理 NO.1 基本概念目录一、异常与中断的基本概念:二、中断管理的运作机制:三、中断延迟的概念;四、中断管理讲解:一、异常与中断的基本概念: 异常是指任何打断处理器正常执行,并且迫使处理器进入一个由有特权的特殊指令执行的事件。 异常通常可以分成两类:同步异常和异步异常。由内部事件(...原创 2019-09-28 19:56:18 · 578 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS + 基础外设 :(二)利用按键挂起、恢复任务
从0到1学习FreeRTOS:FreeRTOS + 基础外设 :(二)利用按键挂起、解挂任务特别说明:本文主要讲解FreeRTOS和外设的合并。想要学习FreeRTOS请移步至从0到1攻破FreeRTOS:汇总帖选择相关内容进行观看即可。想要学习关于GPIO和按键检测请移步至再造STM32:汇总贴选择相关内容进行观看即可。目录特别说明:一、知识点1、GPIO2...原创 2019-10-08 20:56:26 · 2267 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS + 基础外设 :(一)点亮板载LED灯
从0到1学习FreeRTOS:FreeRTOS + 基础外设 :(一)点亮板载LED灯特别说明:本文主要讲解FreeRTOS和外设的合并。想要学习FreeRTOS请移步至从0到1攻破FreeRTOS:汇总帖选择相关内容进行观看即可。想要学习关于GPIO和点亮板载LED请移步至再造STM32:汇总贴选择相关内容进行观看即可。目录特别说明:一、知识点1、GP...原创 2019-10-08 18:00:09 · 2867 阅读 · 0 评论 -
梳理STM32F429之通信传输部分---NO.3 串口空闲IDEL中断+DMA+FreeRTOS
梳理STM32F429之通信传输部分---NO.3 串口空闲IDEL中断+DMA+FreeRTOS目录一、串口空闲IDEL中断:二、串口及串口中断的配置:三、stm32f4xx_it.h 的配置:四、DMA的配置:五、主函数如果大家有什么问题,欢迎在下面评论交流!串口部分的详解:梳理STM32F429之通信传输部分---NO.1 串口通讯DMA直接存储器访问:...原创 2019-10-02 08:56:25 · 3078 阅读 · 1 评论 -
FreeRTOS报错:Error:..\FreeRTOS\port\RVDS\ARM_CM4F\port.c,768
FreeRTOS报错:Error:..\FreeRTOS\port\RVDS\ARM_CM4F\port.c,768程序卡死在:configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue );最终:优先级出错!这里说明了:说当这个宏定义配置为 5 的时候,中断...原创 2019-10-02 00:25:57 · 7210 阅读 · 1 评论 -
从0到1攻破FreeRTOS:汇总帖
实验平台 :STM32 F429操作系统:FreeRTOSIDE:MDK5.27FreeRTOS 内核--->FreeRTOS 内核应用开发--->简单外设目前更新完:FreeRTOS 内核应用开发下一步:基于FreeRTOS的简单外设目录FreeRTOS 内核汇总:FreeRTOS 内核应用开发汇总:基于FreeRTOS的简单外设汇总:...原创 2019-10-05 21:46:56 · 2128 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(三十)CPU 使用率统计
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(三十)CPU 使用率统计一、CPU 利用率的基本概念:CPU使用率其实就是系统运行的程序占用的CPU资源,表示机器在某段时间程序运行的情况。二、CPU 利用率的作用:一个系统设计的好坏,可以使用CPU使用率来衡量,一个好的系统必然是能完美响应急需的处理,并且系统的资源不会浪费。三、CPU 利用率统计:...原创 2019-09-28 20:51:01 · 1197 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十九)中断管理 NO.2 中断管理实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十九)中断管理 NO.2 中断管理实验 中断管理实验是在FreeRTOS中创建了两个任务分别获取信号量与消息队列,并且定义了两个按键KEY1与KEY2的触发方式为中断触发,其触发的中断服务函数则跟裸机一样,在中断触发的时候通过消息队列将消息传递给任务,任务接收到消息就将信息通过串口调试助手显示出来。而且中断管理...原创 2019-09-28 20:20:33 · 640 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十七)内存管理 NO.2 内存管理的实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十七)内存管理 NO.2 内存管理的实验 内存管理实验使用heap_4.c方案进行内存管理测试,创建了两个任务,分别是LED任务与内存管理测试任务,内存管理测试任务通过检测按键是否按下来申请内存或释放内存,当申请内存成功就像该内存写入一些数据,如当前系统的时间等信息,并且通过串口输出相关信息;LED任务是将LED翻转...原创 2019-09-28 17:24:13 · 316 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十六)内存管理 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二十六)内存管理 NO.1 基本概念目录一、内存管理的基本概念:二、内存管理方案详解:(1)heap_1.c(2)heap_2.c(3)heap_3.c(4)heap_4.c(5)heap_5.c一、内存管理的基本概念: FreeRTOS 操作系统将内核与内存管理分开实现,操作系统...原创 2019-09-28 17:03:23 · 627 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十五)互斥量 NO.2 互斥量函数接口讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十五)互斥量 NO.2 互斥量函数接口讲解目录一、互斥量创建函数 xSemaphoreCreateMutex():二、递归互斥量创建函数 xSemaphoreCreateRecursiveMutex():三、互斥量删除函数 vSemaphoreDelete():四、互斥量获取函数 xSemaphoreTake...原创 2019-09-22 15:39:31 · 851 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十四)互斥量 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十四)互斥量 NO.1 基本概念一、互斥量基本概念:① 互斥量又称互斥信号量(本质是信号量),是一种特殊的二值信号量,它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性,用于实现对临界资源的独占式处理。② 用于互锁的互斥量可以充当保护资源的令牌,当一个任务希望访问某个资源时,它必须先获取令牌。当任务使...原创 2019-09-22 13:53:44 · 464 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二)创建单任务—SRAM 静态内存
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(二)创建单任务—SRAM 静态内存目录一、硬件初始化:二、定义任务函数:三、空闲任务与定时器任务堆栈函数实现:四、定义任务栈:五、定义任务控制块:六、静态创建任务:七、启动任务:八、main.c 文件内容全貌: 创建一个单任务,任务使用的栈和任务控制块都使用静态内存,即预先定义...原创 2019-09-17 22:26:29 · 1106 阅读 · 1 评论 -
STM32 CubeMX FreeRTOS中FreeRTOS任务应用函数的作用
任务应用函数是一组辅助类函数,一般用于调试信息输出、获取任务句柄、获取任务状态、操作任务标签值等等。1.获取任务系统状态1.1函数描述 UBaseType_t uxTaskGetSystemState( TaskStatus_t * constpxTaskStatusArray, ...转载 2019-09-17 17:45:34 · 1550 阅读 · 0 评论 -
STM32 CubeMX FreeRTOS中FreeRTOSConfig.h(Inclued parameters)各参数的作用
STM32 CubeMX FreeRTOS中Inclued parameters各参数的作用 vTaskPrioritySet 说明:当该参数设置为(Enable)时,系统Inclued vTaskPrioritySet( ) API函数; void vTaskPrioritySet( TaskHandle_t pxTask, UBaseType_t uxNewPr...转载 2019-09-17 17:35:25 · 1851 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分
一、修改替换FreeRTOSConfig.h后可能出现的错误:问题1:找不到串口文件解决1:将工程中改为自己的串口 xxxxx.h 文件即可。问题2:重复定义:Symbol SVC_Handler multiply defined (by port.o and stm32f4xx_it.o).和Error: L6200E: Symbol PendSV_Handler ...原创 2019-09-17 17:29:21 · 754 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第一部分
一、STM32 的裸机工程模板:相信学FreeRTOS的同学一定学过stm32,所以可以用自己的工程作为模板即可。或者去火哥论坛下一份模板程序。二、下载 FreeRTOS V9.0.0 源码:获取FreeRTOS 的官方的源码包。官 网 : https://www.freertos.org/ 下载三、FreeRTOS 文件夹内容简介:1、Fre...原创 2019-09-11 21:18:44 · 1958 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS内核学习:(三)数据结构—列表与列表项的实现—C语言链表简介
今晚更原创 2019-09-10 21:28:30 · 399 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS内核学习:(二)裸机系统与多任务系统
一、裸机系统:裸机系统通常分成轮询系统和前后台系统。1、轮询系统:轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情。2、前后台系统:相比轮询系统,前后台系统是在轮询系统的基础上加入了中断。外部事件的响应在中断里面完成,事件的处理还是回到轮询系统中完成,中断在这里我们称为前台, main 函数里面的无限循环我们称为后台。二...原创 2019-09-10 21:03:17 · 1118 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(三)创建双任务—SRAM 动态内存
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(三)创建双任务—SRAM 动态内存一、动态内存空间的堆从哪里来: 在创建单任务—SRAM 静态内存的例程中,任务控制块和任务栈的内存空间都是从内部的 SRAM 里面分配的,具体分配到哪个地址由编译器决定。 现在我们开始使用动态内存,即堆,其实堆也是内存,也属于 SRAM。 FreeRTOS...原创 2019-09-17 23:22:34 · 1080 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(四)FreeRTOS 的启动流程
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(四)FreeRTOS 的启动流程1、未到主函数之前: 我们知道,在系统上电的时候第一个执行的是启动文件里面由汇编编写的复位函数Reset_Handler,具体见下面的代码清单。复位函数的最后会调用 C 库函数__main。 __main 函数的主要工作是初始化系统的堆和栈,最后调用 C 中的 main 函数,从而去...原创 2019-09-18 21:10:52 · 2228 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十三)信号量 NO.3 信号量实验
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十三)信号量 NO.3 信号量实验目录一、实验一:二值信号量同步实验二、实验二:二值信号量同步实验一、实验一:二值信号量同步实验明确实验目的: 信号量同步实验是在FreeRTOS中创建了两个任务,一个是获取信号量任务,一个是释放信号量任务,两个任务独立运行,获取信号量任务是一直在等待信号量,其等待时...原创 2019-09-22 12:15:37 · 575 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十二)信号量 NO.2 常用信号量函数接口讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十二)信号量 NO.2 常用信号量函数接口讲解目录一、创建信号量函数:1、创建二值信号量 xSemaphoreCreateBinary():2. 创建计数信号量 xSemaphoreCreateCounting():二、信号量删除函数:1、信号量删除函数 vSemaphoreDelete():三、信号量释放...原创 2019-09-22 10:51:19 · 1079 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十一)信号量 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十一)信号量 NO.1 基本概念目录一、信号量基本概念:1、二值信号量:2、计数信号量:3、互斥信号量:4、递归信号量:二、二值信号量应用场景:三、二值信号量运作机制:四、计数信号量运作机制:五、信号量控制块:一、信号量基本概念: 信号量(Semaphore)是一种实现任务...原创 2019-09-22 09:12:04 · 865 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十)消息队列 NO.3 消息队列使用注意事项和实验现象
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十)消息队列 NO.3 消息队列使用注意事项和实验现象目录一、消息队列使用注意事项:二、消息队列使用总结:三、消息队列实验:一、消息队列使用注意事项: 如果队列存储的数据较大时,那最好是利用队列来传递数据的指针而不是数据本身,因为传递数据的时候是需要CPU一字节一字节地将数据拷贝进队列或从队列拷贝出...原创 2019-09-21 21:36:33 · 1047 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(九)消息队列 NO.2 消息队列常用函数讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(九)消息队列 NO.2 消息队列常用函数讲解目录一、消息队列创建函数 xQueueCreate():二、消息队列静态创建函数 xQueueCreateStatic():三、消息队列删除函数 vQueueDelete():四、向消息队列发送消息函数:五、从消息队列读取消息函数:使用队列模块的典型流程如下: ...原创 2019-09-21 21:01:45 · 1203 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(八)消息队列 NO.1 基本概念
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(八)消息队列 NO.1 基本概念目录一、消息队列的基本概念:二、消息队列的特性:三、消息队列的运作机制:四、消息队列的阻塞机制:五、消息队列的应用场景:六、消息队列控制块:一、消息队列的基本概念: 队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间...原创 2019-09-21 18:22:31 · 520 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(七)任务管理 NO.3 任务设计的要点和实验现象
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(五)任务管理 NO.3 任务设计的要点和实验现象一、任务的设计要点:1、中断服务函数是一种需要特别注意的上下文环境,它运行在非任务的执行环境下(一般为芯片的一种特殊运行模式(也被称作特权模式)),在这个上下文环境中不能使用挂起当前任务的操作,不允许调用任何会阻塞运行的 API 函数接口。另外需要注意的是,中断服务程序最好保持精...原创 2019-09-21 15:37:35 · 693 阅读 · 0 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(六)任务管理 NO.2 常用的任务函数讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(五)任务管理 NO.2 常用的任务函数讲解目录一、任务挂起函数:①vTaskSuspend()② vTaskSuspendAll()2、任务恢复函数:① vTaskResume()② xTaskResumeFromISR()③ xTaskResumeAll()3、任务删除函数:① vT...原创 2019-09-21 13:16:00 · 788 阅读 · 1 评论 -
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(五)任务管理 NO.1 概念讲解
从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(五)任务管理 NO.1 概念讲解目录一、任务的基本概念:二、任务调度器的基本概念:三、任务状态概念:四、任务状态迁移:一、任务的基本概念: ① 在任何时刻,只有一个任务能得到运行,由FreeRTOS调度器决定运行哪个任务。调度器会在合适的时候的启动、停止一个任务,宏观看上去所有的任务都在同...原创 2019-09-21 08:27:38 · 690 阅读 · 2 评论