FreeRTOS
oshan2012
这个作者很懒,什么都没留下…
展开
-
FreeRtos软件定时器相关API函数
动态方法创建软件定时器xTimerCreate,新创建的软件定时处于休眠状态TimerHandle_t xTimerCreate( const char * const pcTimerName, //软件定时器名字,用于调试使用 const TickType_t xTimerPeriodInTicks, //软件定时器的定时器周期,单位是时钟节拍数 const UBaseTy转载 2018-01-02 13:45:05 · 1208 阅读 · 0 评论 -
FreeRTOS任务通知API函数
vTaskNotifyGiveFromISR()发送通知中断版本,发送通知,不带通知值并且不保留接收任务的通知值,此函数会将接收任务的通知值加1.void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify, //任务句柄,指定任务通知是发送给哪个任务的 BaseType_t *pxHigherPriori转载 2018-01-03 14:17:35 · 396 阅读 · 0 评论 -
FreeRTOS任务通知模拟消息邮箱
main.c#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "beep.h"#include "lcd.h"#include "key.h"//#include "timer.h"//#include "malloc.h"#include "FreeRTOS.h"#inc转载 2018-01-03 16:21:20 · 1234 阅读 · 0 评论 -
FreeRTOS 队列常用API函数
队列创建xQueueCreate,此宏最终调用函数xQueueGenericCreate()QueueHandle_t xQueueCreate( UBaseType_t uxQueueLength, //要创建的队列的队列长度,这里是队列的项目数 UBaseType_t uxItemSize ) //队列中每个项目(消息)的长度,单位为字节向队列发转载 2017-12-28 13:38:13 · 768 阅读 · 0 评论 -
FreeRTOS 队列测试 keyprocess是正常的
#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "beep.h"#include "lcd.h"#include "key.h"//#include "timer.h"//#include "malloc.h"#include "FreeRTOS.h"#include "t转载 2017-12-28 14:46:28 · 428 阅读 · 0 评论 -
FreeRTOS 二值信号量实验
main.c#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "beep.h"#include "lcd.h"#include "key.h"#include #include "FreeRTOS.h"#include "task.h"#include "queue.h"转载 2017-12-28 16:49:50 · 718 阅读 · 0 评论 -
FreeRTOS tickless低功耗模式
宏配置 configUSE_TICKLESS_IDLE 此宏要置为1表示启用低功耗模式,在FreeRTOS.h文件的708行configEXPECTED_IDLE_TIME_BEFORE_SLEEP ,在FreeRTOS.h文件的700行,此宏要置默认为2,其值不能小于2,否则低功耗时钟节拍太短没有意义main.c#include "sys.h"#include转载 2018-01-04 10:18:32 · 1848 阅读 · 0 评论 -
STM32F4使用FreeRTOS的中断
在使用stm32f4-discovery的FreeRTOS是设置一个按键中断,但是中断发生之后程序就卡住了,通过调试,发现程序卡在port.c中的configASSERT()语句。通过查找资料发现是中断优先级设置的问题。CORTEX内核的优先级是数值越小优先级越高,即0是最高优先级。FreeRTOS为了满足某些应用对中断实时性要求高的需求,使得中断优先级高于某个值之后,就不能调用操作系统的内核函数...转载 2018-05-25 11:25:13 · 1306 阅读 · 0 评论 -
任务通知模拟计数型信号量
main.c#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "beep.h"#include "lcd.h"#include "key.h"#include "malloc.h"#include #include "FreeRTOS.h"#include "task.h转载 2018-01-03 14:52:55 · 527 阅读 · 0 评论 -
FreeRTOS任务通知模拟二值信号量
usart.c#include "sys.h"#include "usart.h" ////////////////////////////////////////////////////////////////////////////////// //如果使用ucos,则包括下面的头文件即可.#if SYSTEM_SUPPORT_OS#include "FreeRTOS.h"转载 2018-01-03 14:23:04 · 518 阅读 · 0 评论 -
任务相关的API函数-uxTaskGetSystemState
uxTaskGetSystemState:此函数用于获取系统中所有的任务状态,每个任务的状态信息保存在一个TaskStatus_t类型的结构体里面.要使用此函数必须把 configUSE_TRACE_FACILITY 打开,在FreeRtos.h文件的744行(V9.0)返回值:统计到任务状态的个数,也就是填写到数组pxTaskStatusArray中的个数,此值应该等于函数uxTaskGet转载 2017-12-27 11:01:12 · 3430 阅读 · 0 评论 -
任务相关的API函数-xTaskGetHandle()+vTaskGetInfo
xTaskGetHandle此函数根据任务名字获取的任务句柄,在使用函数xTaskCreate()或xTaskCreateStatic()创建任务的时候会给任务分配一个任务名,函数xTaskGetHandle()就是使用任务名字来查询其对应的任务句柄的.要使用此函数的话宏INCLUDE_xTaskGetHandle应该设置为1,此宏在FreeRTOS.h文件的194行TaskHandl转载 2017-12-27 13:04:31 · 3792 阅读 · 0 评论 -
任务相关的API函数-eTaskGetState
eTaskGetState此函数用于查询某个任务的运行状态,比如:运行态,阻塞态,挂起态,就绪态等,返回值是个枚举类型.要使用函数宏INCLUDE_eTaskGetState必须为1,此宏在FreeRTOS.h 第202行(v9.0)函数原型如下:eTaskState eTaskGetState( TaskHandle_t xTask )eTaskState Tas转载 2017-12-27 14:02:51 · 3431 阅读 · 0 评论 -
任务相关API函数-任务运行时间信息vTaskGetRunTimeStats
FreeRTOS可能通过vTaskGetRunTimeStats()来统计每个任务使用CPU的时间,以及所使用的时间占总时间的比例.相关宏设置configGENERATE_RUN_TIME_STATS必须为1,还要定义其他两个宏:portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(); 配置一个高精度定时器/计数器提供时基portGET_RUN_TIM转载 2017-12-27 14:56:25 · 4704 阅读 · 0 评论 -
FreeRTOS事件标志组API函数
创建一个事件标志组 xEventGroupCreate,事件标志组可用的bit数取决于configUSE_16_BIT_TICKS=1 16位时8个bit =0时 即32位时24个bitEventGroupHandle_t xEventGroupCreate( void )返回值:NULL:事件标志组创建失败其他值:创建成功的事件标志组句柄将指定的事件位置1 xEventGroupS转载 2018-01-03 10:47:08 · 556 阅读 · 0 评论 -
FreeRTOS事件组
exti.c#include "exti.h"#include "delay.h" #include "key.h"#include "FreeRTOS.h"#include "event_groups.h"////////////////////////////////////////////////////////////////////////////////// ////转载 2018-01-03 11:36:15 · 480 阅读 · 0 评论 -
嵌入式FreeRTOS操作系统中断优先级配置(重要)
本章节为大家讲解FreeRTOS中断优先级配置,此章节非常重要,初学者经常在这里犯迷糊。对于初学者来说,本章节务必要整明白。12.1 NVIC基础知识12.2 使用FreeRTOS时如何配置外设NVIC12.3 FreeRTOS配置选项中NVIC相关配置12.4 不受FreeRTOS管理中的的深入讨论12.5总结 12.1 NVIC基础知识转载 2018-01-03 11:55:53 · 1551 阅读 · 0 评论 -
FreeRTOS任务优先级和中断优先级的区别
FreeRTOS任务优先级和中断优先级的区别 首先中断优先级和任务优先级这两个之间没有任何关系,不管中断的优先级是多少,中断的优先级永远高于任何任务的优先级,即任务在执行的过程中,中断来了就开始执行中断服务程序。另外对于STM32F103,F407和F429来说,中断优先级的数值越小,优先级越高。而FreeRTOS的任务优先级是,任务优先级数值越小,任务优先级越低。转载 2018-01-03 11:56:45 · 1861 阅读 · 0 评论 -
FreeRTOS中队列复写的问题
FreeRTOS应该是所有嵌入式人员都经常使用的操作OS了,最近博主在使用的时候遇到了一个问题,具体情况如下:在hal库中,其封装好了队列QUEUE的复写函数 xQueueOverwrite( xQueue, pvItemToQueue )那么其宏定义如下 #define xQueueOverwrite( xQueue,pvItemToQueue ) xQueueGenericSend...转载 2018-06-19 09:42:22 · 617 阅读 · 0 评论