freeRTOS 一步步学习(一)
来源:互联网 发布:淘宝3c证书编号 编辑:程序博客网 时间:2024/05/12 09:07
源自:http://www.FreeRTOS.org
文档名: USING THE FREERTOS REAL TIME KERNEL 中文: FREERTOS实时内核实用指南
翻译作者----》》》》》》》》》》》》》》》》》》》》》》》》》》
硬实时功能必须在给定的时间限制之内完成——如果无法做到即意味着整个系统的绝对失败。大多数嵌入式系统不仅能满足硬实时要求,也能满足软实时要求。
在 FreeRTOS 中,每个执行线程都被称为”任务”。在嵌入式社区中,对此并没有一个公允的术语,但我更喜欢用”任务”而不是”线程”,因为从以前的经验来看,线程具有更多的特定含义。
任务函数
任务是由 C 语言函数实现的。唯一特别的只是任务的函数原型,其必须返回 void,
而且带有一个 void 指针参数。
void ATaskFunction( void *pvParameters );
每个任务都是在自己权限范围内的一个小程序。其具有程序入口,通常会运行在一
个死循环中,也不会退出。
FreeRTOS 任务不允许以任何方式从实现函数中返回——它们绝不能有一
条”return”语句,也不能执行到函数末尾。如果一个任务不再需要,可以显式地将其删除。 一个任务函数可以用来创建若干个任务——创建出的任务均是独立的执行实例,拥有属于自己的栈空间,以及属于自己的自动变量(栈变量),即任务函数本身定义的变量。
任务中创建多个任务与独立创建多个任务的区别
包含式
/* Init task */
xTaskCreate(Main_task, (int8_t *)"Main", configMINIMAL_STACK_SIZE * 2, NULL,MAIN_TASK_PRIO, NULL);
/**
* @brief Main task
* @param pvParameters not used
* @retval None
*/
void Main_task(void * pvParameters)
{
xTaskCreate(vTask1, (int8_t *)"Task1", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);
xTaskCreate(vTask2, (int8_t *)"Task2", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);
xTaskCreate(vTask3, (int8_t *)"Task3", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);
for( ;; )
{
vTaskDelete(NULL);
}
}
独立的
xTaskCreate( vTask1, /* 任务函数 */
"Task 1", /* 任务名 */
500, /* stack大小,单位word,也就是4字节 */
NULL, /* 任务参数 */
1, /* 任务优先级*/
NULL ); /* 任务句柄 */
xTaskCreate( vTask2, /* 任务函数 */
"Task 2", /* 任务名 */
500, /* stack大小,单位word,也就是4字节 */
NULL, /* 任务参数 */
2, /* 任务优先级*/
NULL ); /* 任务句柄 */
xTaskCreate( vTask3, /* 任务函数 */
"Task 3", /* 任务名 */
500, /* stack大小,单位word,也就是4字节 */
NULL, /* 任务参数 */
3, /* 任务优先级*/
&xHandleTask3 ); /* 任务句柄 */
- freeRTOS 一步步学习(一)
- freeRTOS 一步步学习(二)
- freeRTOS 一步步学习(三)
- FreeRTOS 学习总结(一)
- FreeRTOS学习笔记(一)基础篇
- STM32Fxx FreeRTOS学习一
- FreeRTOS学习笔记一
- 一步步学习C语言(一)入门
- FreeRTOS学习------队列(实践)
- FreeRTOS学习------信号量(实践)
- 一步步学习Reporting Services(一) 创建第一张报表
- 一步步学习 Spring Data 系列之JPA(一)
- 一步步学习 Spring Data 系列之JPA(一)
- 【一步步学习MongoDB】——MongoDB简单介绍(一)
- 一步步学习kotlin for android(一)配置kotlin
- freeRTOS 学习
- FreeRTOS系列学习笔记一---FreeRTOS编码标准及风格指南
- STM32L152RC+cubeMX+FreeRTOS学习(1)
- Log4j2的XML和properties配置方式
- 自制操作系统OS-1
- mysql alter 语句用法,添加、修改、删除字段
- SoapUI:the maximum head size (-Xmx)might be too large ……
- Linux64位机器运行32位程序
- freeRTOS 一步步学习(一)
- unbuntu下gcc g++安装
- Integer Inquiry 大数加法模板
- hannoi塔(汉诺塔)移动过程解析
- 10.4 在组件中显示信息
- mp4文件结构
- beego获取用户请求参数的方法
- 使用C#邮件发送需要邮箱开通smtp功能
- Hibernate报错问题解决