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创建任务程序已经完成了
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)