GD32F103移植FreeRTOS

开发环境

C编辑器:    Keil MDK-ARM Plus V5.21a

开发板:       GD32103E-EVAL 

固件库:       V2.1.0 firmware for GD32F10x

FreeRTOS: V202104.00

 

1. FreeRTOS官网下载 FreeRTOS

      从 https://www.freertos.org/ 下载,当前版本为FreeRTOS 202104.00

 

2. 拷贝文件

      解压下载的文件后,如下图所示。我们只要 FreeRTOS\Source 中的内容。

### 关于将FreeRTOS移植GD32F103微控制器 #### 移植概述 FreeRTOS 是一种轻量级的操作系统,适用于嵌入式环境中的实时应用开发。将其移植GD32F103 微控制器可以显著提升系统的多任务处理能力[^1]。 #### 文件结构准备 在开始移植之前,需要创建合理的文件夹结构来组织 FreeRTOS 的源码及相关配置文件。通常的做法是在项目的根目录下建立 `FreeRTOS` 文件夹,并进一步划分为以下几个子文件夹: - **inc**: 存放头文件。 - **src**: 存放核心 C 源文件。 - **port**: 存放特定硬件架构的端口层代码。 具体操作如下: 1. 将 `\FreeRTOS\FreeRTOS-Kernel\include` 下的所有 `.h` 文件复制到新创建的 `./FreeRTOS/inc` 文件夹中[^2]。 2. 删除不必要的非 `.h` 文件以保持整洁。 3. 把以下关键的 C 源文件复制到 `./FreeRTOS/src` 中: - `tasks.c` - `queue.c` - `list.c` - `timers.c` #### 端口层设置 由于不同 MCU 架构可能有不同的中断模型和寄存器定义,因此需要引入适合 ARM Cortex-M3 的端口层支持文件。这些文件可以从官方 FreeRTOS 发布包中的路径获取并放置到 `./FreeRTOS/port` 目录下[^3]。 #### 工程配置调整 完成上述准备工作之后,还需要对编译工具链进行适当修改以便识别新增加的内容。这一步骤涉及 IDE 设置部分,例如 Keil uVision 用户需执行下列动作之一作为例子说明: 打开目标设备 (Target) 的选项对话框 (`Options`) ,切换至 C/C++ 标签页,在 Include Paths 列表里追加两个必要的搜索位置: - `FreeRTOS/include` - `FreeRTOS/portable/RVDS/ARM_CM3` 这样做的目的是让编译器能够正确解析来自 FreeRTOS 库以及对应处理器体系结构特化的声明语句[^3]。 #### 示例代码片段展示如何初始化 FreeRTOS 并启动调度程序 以下是简化版的 FreeRTOS 初始化流程演示代码: ```c #include "FreeRTOS.h" #include "task.h" void vTaskFunction(void *pvParameters); int main() { // 创建第一个任务实例 xTaskCreate(vTaskFunction, /* Task function */ "TaskName", /* Name of task */ configMINIMAL_STACK_SIZE,/* Stack size in words */ NULL, /* Parameter passed to the task */ tskIDLE_PRIORITY, /* Priority at which the task is created */ NULL); /* Handle by which the task can be referenced */ // 启动 RTOS 调度器 vTaskStartScheduler(); // 如果到达这里,则表明内存不足无法启动调度器 for (;;); } // 定义的任务函数体 void vTaskFunction(void *pvParameters){ while(1){ // 主循环逻辑写在此处... } } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值