MDK移植freeRTOS及多任务创建

本文介绍了如何在STM32上移植FreeRTOS操作系统,包括从FreeRTOS官网下载源码、新建工程文件夹、配置FreeRTOSConfig.h,以及在Keil环境下将FreeRTOS包导入工程。在main.c中,完成了硬件初始化和任务创建,创建了三个任务,但任务一因硬件未到位未展示,任务二的结果得以呈现。
摘要由CSDN通过智能技术生成

MDK移植freeRTOS及多任务创建

准备

  • freeRTOS官网下载源码,下载后解压。在这里插入图片描述

  • 在电脑中新建一个freeRTOS文件夹,将之前解压文件夹中的 FreeROTS\Source\ 目录下的所有文件复制到新建文件夹中在这里插入图片描述

  • portable/RVDS中的CM3复制到keil文件夹中在这里插入图片描述

  • 将解压的源码文件夹中的FreeRTOS\Demo\CORTEX_stm32f103_keil中的FreeRTOSConfig.h复制到自己新建的文件夹中在这里插入图片描述

freeROTS移植及多任务的创建

-打开商家提供的程序,将刚才新建的文件夹复制进去,打开工程,如下图所示在这里插入图片描述

可以看到,此时的该工程文件已完成拷贝 FreeRTOS Package 到裸机工程。此时在main.c主程序下去看,包含几个部分如下:
1、硬件初始化;
2、创建任务。
我们要做的有三个任务,因此需要创建三个任务如下:

/* 创建任务句柄 */
static TaskHandle_t AppTaskCreate_Handle = NULL;
/* 创建LED1句柄 */
static TaskHandle_t LED1_Task_Handle = NULL;
static TaskHandle_t hello_Task_Handle = NULL;
/* 创建AHT20句柄 */
static TaskHandle_t AHT_Task_Handle = NULL;

具体main.c程序代码如下:

#include "FreeRTOS.h"
#include "task.h"
#include "bsp_led.h"
#include "bsp_usart.h"

static TaskHandle_t AppTaskCreate_Handle = NULL;
static TaskHandle_t LED1_Task_Handle = NULL;
static TaskHandle_t hello_Task_Handle = NULL;
static TaskHandle_t AHT_Task_Handle = NULL;

static void AppTaskCreate(void);
static void LED1_Task
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移植 FreeRTOS 到 Cortex-M3 上,编译工具和编译依赖是非常重要的。下面是一些常用的编译工具和编译依赖: 1. 编译工具 - Keil MDK-ARM:Keil 是德国公司 ARM 公司旗下的子公司,Keil MDK-ARM 是一款功能强大的 ARM 开发工具。它集成了编译器、调试器、仿真器、IDE 等多种开发工具,支持多种编程语言和处理器架构。Keil MDK-ARM 支持 Cortex-M3 处理器,并且已经预配置了 FreeRTOS 的编译环境。 - GNU ARM Embedded Toolchain:GNU ARM Embedded Toolchain 是一款基于 GCC 的编译工具,支持 ARM 处理器架构。它是一个免费的工具集,可以在 Windows、Linux 和 Mac OS X 系统上运行。GNU ARM Embedded Toolchain 支持 Cortex-M3 处理器,可以通过配置 Makefile 来编译 FreeRTOS。 2. 编译依赖 - CMSIS:CMSIS 是 Cortex-M 处理器系列的标准接口,提供了一系列的 API 接口和标准库,方便开发者进行软件编写。在移植 FreeRTOS 到 Cortex-M3 上,需要使用 CMSIS 标准库来访问 Cortex-M3 处理器的硬件资源。 - FreeRTOS Kernel:FreeRTOS Kernel 是一个基于任务的实时操作系统,可以在 Cortex-M3 处理器上运行。它提供了多任务管理、调度、同步、通信等功能,方便开发者进行软件开发。 - FreeRTOS Porting:FreeRTOS Porting 是针对特定处理器架构的 FreeRTOS 移植版本,包括任务调度器、中断处理器、时钟管理器、内存管理器等,方便开发者进行移植。 以上是一些常用的编译工具和编译依赖,开发者可以根据自己的需求选择适合自己的工具和依赖,进行 FreeRTOS移植和编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值