FreeRTOS(操作系统下载创建的一个任务)

发布时间:2026/8/28 22:22:24
FreeRTOS(操作系统下载创建的一个任务) 目录一FreeRTOS介绍二程序下载基于stm32标准外设库三创建第一个任务一、FreeRTOS介绍FreeRTOS 是一款开源轻量级实时操作系统 (RTOS)专为单片机、MCU 设计代码量小、占用 RAM/ROM 少广泛用于嵌入式开发。核心能力任务调度、优先级抢占、信号量、队列、互斥锁、事件组实现多任务并发运行。 特点免费、可裁剪、移植简单支持绝大多数 ARM、RISC‑V 芯片工业、智能硬件、机器人项目大量使用。简单来说:打比方来说FreeRTOS就像一个母亲一手喂饭给孩子又一手回同时信息系统将单片机的任务切成一个个时间流片通过快速的频率切换执行“喂饭”和“回消息”的两大任务让人感觉两任务并行运行但严格上来说“喂饭”和“回消息”独立运行互不影响并且轮流执行。下面将结合stm32从0开始简单入门FreeRTOS。二、程序下载(基于stm32标准外设库)官方链接https://www.freertos.org/zh-cn-cmn-s点击链接下载FreeRTOS 202604.01 LTS(其他版本也尚可)其中FreeRTOS-Kernel是RTOS的操作系统本体内核FreeRTOS-Cellular-Interface为4G/5G 模组 AT 命令抽象库FreeRTOS‑Plus‑TCP为以太网 TCP/IP 协议栈芯片连接网络用我们在这里只要用到FreeRTOS-Kernel即可下载完操作系统本体后需要下载相应历程示例示例https://github.com/FreeRTOS/FreeRTOS下在完成后点开FreeRTOS将之前操作系统内核FreeRTOS-Karnel的所有内容复制放在FreeRTOS文件夹目录下的Source目录下那么到现在已经成功移植好了FreeRTOS,那么现在可以写的一个FreeRTOS项目了打开Demo文件夹下的CORTEX_STM32F103_Keil芯片本体。三、创建第一个任务示例一:使用2个函数分别创建2个任务int main( void ) { prvSetupHardware(); xTaskCreate(vTask1, Task 1, 1000, NULL, 1, NULL); xTaskCreate(vTask2, Task 2, 1000, NULL, 1, NULL); /* 启动调度器 */ vTaskStartScheduler(); /* 如果程序运行到了这里就表示出错了, 一般是内存不足 */ return 0; } void vTask1( void *pvParameters ) { const char *pcTaskName T1 run\r\n; while(1) { printf( pcTaskName ); } } void vTask2( void *pvParameters ) { const char *pcTaskName T2 run\r\n; while(1) { printf( pcTaskName ); } }如果打开串口看的话到现在第一个FreeRTOS创建任务程序已经完成了