FreeRTOS入门

一、关于FreeRTOS

(一)FreeRTOS简介:FreeRTOS是一个源码公开的免费的嵌入式实时操作系统
(二)FreeRTOS操作系统功能
作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。

FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。
参考:https://blog.csdn.net/lxl584685501/article/details/46622365?

二、STM32下一个基于FreeRTOS的多任务程序

共执行执行3个周期性task

实现多任务句柄

static void AppTaskCreate(void);/* ÓÃÓÚ´´½¨ÈÎÎñ */

static void LED_Task(void* pvParameters);/* LED_TaskÈÎÎñʵÏÖ */
static void USART_Task(void* pvParameters);/* USART_TaskÈÎÎñʵÏÖ */
static void Temperature_Task(void* pvParameters);/* Temperature_TaskÈÎÎñʵÏÖ */

static void BSP_Init(void);/* ÓÃÓÚ³õʼ»¯°åÔØÏà¹Ø×ÊÔ´ */


实现每间隔500ms闪烁(变化)一次LED主要函数

static void LED_Task(void* parameter)
{	
    while (1)
    {
				printf("LED is ON!\n");
        LED1_ON;
        vTaskDelay(500);   /* ÑÓʱ500¸ötick */
        
				printf("LED is OFF!\n");
        LED1_OFF;     
        vTaskDelay(500);   /* ÑÓʱ500¸ötick */		 		
    }
}

实现每间隔2000ms,向串口发送一次指令数据“helloworld!"

static void USART_Task(void* pvParameters)
{
	while(1)
	{
		printf("Hello Windows!\n");
		vTaskDelay(2000);
	}
	
}

实现每间隔5000ms,从AHT20采集一次温湿度数据

static void Temperature_Task(void* pvParameters)
{
	while(1)
	{
		printf("¼ì²âζȣ¡\n");
		vTaskDelay(5000);
	}
}

使用野火调试助手
在这里插入图片描述

在这里插入图片描述
FreeRTOS V9.0.0 源码:
https://sourceforge.net/projects/freertos/files/FreeRTOS/V9.0.0/
使用现成源码注意添加文件路径
在这里插入图片描述

三、总结:

注意添加FreeRTOS头文件的文件路径,注意开发板接线

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于 FreeRTOS入门,我可以给你一些基本的指导。 FreeRTOS 是一个开源的实时操作系统(RTOS),它被广泛用于嵌入式系统开发。下面是一些入门的步骤: 1. 下载和安装 FreeRTOS:首先,你需要从 FreeRTOS 的官方网站(https://www.freertos.org/)下载 FreeRTOS 的最新版本。根据你的需求选择合适的版本,可能是源代码或者预编译好的二进制文件。安装方法可以参考官方提供的文档。 2. 阅读文档:FreeRTOS 提供了详细的文档,包括参考手册、编程指南和示例代码等。你应该仔细阅读这些文档,了解 FreeRTOS 的基本概念、API 接口和使用方法。 3. 配置 FreeRTOS:在开始使用 FreeRTOS 之前,你需要根据你的硬件平台和应用需求进行配置。这包括选择适当的内核配置选项、任务调度策略、堆栈大小等。你可以根据文档中的指导进行配置。 4. 创建任务:在 FreeRTOS 中,任务是系统的基本执行单位。你可以使用 FreeRTOS 提供的 API 创建和管理任务。首先,你需要定义任务函数,然后使用 xTaskCreate() 函数创建任务。 5. 运行 FreeRTOS:一旦你创建了任务,你可以使用 vTaskStartScheduler() 函数启动 FreeRTOS 内核,并开始任务调度。FreeRTOS 内核会按照你配置的调度策略和优先级来调度任务执行。 6. 调试和优化:在开发过程中,你可能会遇到一些问题,比如任务调度错误、内存泄漏等。你可以使用 FreeRTOS 提供的调试工具和技术来诊断和解决这些问题。同时,你也可以根据应用的需求对系统进行优化。 以上是 FreeRTOS 入门的基本步骤。希望对你有所帮助!如果你有更多的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值