在FreeRTOS基础系列《FreeRTOS系列第10篇---FreeRTOS任务创建和删除》中介绍了任务创建API函数xTaskCreate(),我们这里先回顾一下这个函数的声明: BaseType_t xTaskCreate(
TaskFunction_tp vTaskCode,
...
分类:
其他好文 时间:
2016-05-03 18:10:18
阅读次数:
1092
FreeRTOS内核调度大量使用了列表(list)这一数据结构。我们如果想一探FreeRTOS背后的运行机制,首先遇到的拦路虎就是列表。对于FreeRTOS内核来说,列表就是它最基础的部分。我们在这一章集中讲解列表和列表项的结构以及操作函数,在下一章讲解任务创建时,会用到本章的知识点。 列表被FreeRTOS调度器使用,用于跟踪任务,处于就绪、挂起、延时的任务,都会被挂接到各自的列表中。...
分类:
其他好文 时间:
2016-04-19 19:43:01
阅读次数:
1113
参考文献: Understanding the FreeRTOS directory structure. 从官网下载下来的FreeRTOS源文件包,对于每一个已经移植完成的处理器,都有一个与之对应的Demo应用程序可供参考。强烈建议新手首先从Demo开始去学习如何使用FreeRTOS. 基本目录结 ...
分类:
其他好文 时间:
2016-04-12 12:25:41
阅读次数:
168
1、官方文档提供了 函数 用来查询 任务 剩余 栈 空间,首先是看官方的文档解释(某位大神 翻译 的 官方 文档。) 参数解释: xTask:被查询任务的句柄——欲知如何获得任务句柄,详情请参见API 函数xTaskCreate()的参数pxCreatedTask。如果传入 NULL 句柄,则任务查
分类:
其他好文 时间:
2016-03-21 12:20:49
阅读次数:
472
1. FreeRTOS 任务不允许以任何方式从实现函数中返回——他们绝不能有一条“return”语句,也不可能执行到函数的末尾。如果一个函数不需要,可以将其删除,如在任务中使用函数vTaskDelete(NULL),将当前任务删除。 2. 在启动任务调度器(osKernelStart() )前,最好
分类:
其他好文 时间:
2016-03-18 16:07:03
阅读次数:
351
FreeRTOS的信号量包括二进制信号量、计数信号量、互斥信号量(以后简称互斥量)和递归互斥信号量(以后简称递归互斥量)。我们可以把互斥量和递归互斥量看成特殊的信号量。 信号量API函数实际上都是宏,它使用现有的队列机制。这些宏定义在semphr.h文件中。如果使用信号量或者互斥量,需要包含semphr.h头文件。 二进制信号量、计数信号量和互斥量信号量的创建API函数是独立的...
FreeRTOS为操作队列提供了非常丰富的API函数,包括队列的创建、删除,灵活的入队方式和出队、带中断保护的入队和出队等等。下面就来详细讲述这些API函数。1.获取队列入队信息数目1.1函数描述 UBaseType_t uxQueueMessagesWaiting( QueueHandle_t xQueue ); 返回队列中存储的信息数目。具有中断保护版本为uxQueueMe...
使用RTOS编程,为每个任务分配多大的堆栈空间就成了一项技术活:分配多了浪费系统资源,分配少了又恐怕会发生堆栈溢出。由于中断和抢占式调度器的存在,我们要估算出一个任务需要多少堆栈是非常困难的,今天我们就介绍一种方法,来获取每个任务的剩余堆栈空间。本文以NXP LPC177x_8x系列微控制器为例。 我们将这个功能做成一个命令,添加到《FreeRTOS系列第15篇---使用任务通知实现命令...
分类:
其他好文 时间:
2016-02-24 09:47:35
阅读次数:
234
http://www.osrtos.com/ NameLicensePlatformsDescriptionLast updated FreeRTOS Modified GPL MSP430 ARM AVR ColdFire PIC x86 FreeRTOS is a popular real-ti
分类:
其他好文 时间:
2016-02-16 06:29:37
阅读次数:
847
在测试FreeRTOS在stm32上运行的时候,需要用到timer的中断,则打开了中断,但是如下的代码则让系统死机: /* 选择优先级分组0 */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /* 开启 TIM2 中断, 0级先占优先级,0级后占优
分类:
其他好文 时间:
2016-02-01 18:29:37
阅读次数:
172