FreeRTOS移植到标准库

源码下载

1:从官网获取freeRTOS源码

freeRTOS官网

2:FreeRtos源码文件阐述

3:移植FreeRtos源码

FreeRTOS移植步骤
1:添加FreeRTOS源码,将FreeRTOS源码添加到基础工程,头文件等路径
2:添加FreeRTOSConfig.h文件,添加FreeRTOSConfig.h配置文件
3:修改SYSTEM文件夹,主要包含sys,delay,和usart
4:修改中断相关文件, 修改Systick中断,SVC中断,PendSV中断
5:添加应用程序,验证移植是否成功

1 -> 在基础例程中创建一个freeRTOS文件夹,该文件夹包含三个子文件夹,分别是ins,src,port分别用于存放freeRTOS的c语言文件,头文件和RTOS的内存操作文件。

在例程src文件夹复制粘贴源码目录下的c语言文件

src文件夹粘贴后的结果展示

 在例程inc文件中复制粘贴源码中的头文件,该文件包含在源码中的include文件夹中

粘贴后的结果展示

后面还有两个文件夹一个是FreeRTOS的内存管理文件在\FreeRTOS\Source\portable\MemMang路径下共有5个,我们使用到的主要是heap_4.c文件,一个是FreeRTOS的RVDS文件夹里面包含的是不同芯片的移植文件我们F103C8T6选择的是ARM_CM3下的两个c文件,把heap_4.c文件和ARM_CM3下的文件复制到我们移植例程的port文件夹中

 

 复制后结果展示

2 -> 在freeRTOS这个文件夹路径下添加FreeRTOS的配置文件

 FreeRTOS问价夹的路径是\FreeRTOS\Demo\CORTEX_STM32F103_Keil

 

3 -> 打开项目例程将文件的路径添加进去(这个组文件是我们自己创建的)

 把组文件中包含的子文件全部添加到keil的工程目录中去

4:配置FreeRTOSConfig

在FreeRTOSConfig文件中把这三行配置文件添加进去

#define xPortPendSVHandler  PendSV_Handler
#define vPortSVCHandler     SVC_Handler
#define xPortSysTickHandler SysTick_Handler

打开stm32f10x_it.c源文件注释掉以下三行代码

测试main.c文件中编写测试用例(暂时还不需要知道这个代码表示的是什么意思仅用于测试)

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "freeRTOS.h"
#include "task.h"

TaskHandle_t myTaskHandler;
void myTask(void * arg){
    
	  while(1){
		  GPIO_ResetBits(GPIOA, GPIO_Pin_1);  
      vTaskDelay(500);
			GPIO_SetBits(GPIOA, GPIO_Pin_1); 
			vTaskDelay(500);
			
		}
}

int main(void)
{
		/*开启时钟*/
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);		//开启GPIOA的时钟
		
		/*GPIO初始化*/
		GPIO_InitTypeDef GPIO_InitStructure;
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
		GPIO_Init(GPIOA, &GPIO_InitStructure);						//将PA1和PA2引脚初始化为推挽输出
		
		/*设置GPIO初始化后的默认电平*/
		GPIO_SetBits(GPIOA, GPIO_Pin_1);				//设置PA1和PA2引脚为低电平
	
	  xTaskCreate(myTask,"myTask",512,NULL,2,&myTaskHandler);
	  vTaskStartScheduler();
	  while(1){
		
		}
}


编译

使用st-link将程序下载到F103最下系统班上查看结果:有实验现象FreeRTOS移植成功


  • 42
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将标准库 FreeRTOS 移植到特定的硬件平台上,您需要完成以下步骤: 1. 选择目标硬件平台:确定您要将 FreeRTOS 移植到的具体硬件平台,例如 ARM Cortex-M 系列微控制器。 2. 准备开发环境:安装适当的开发工具链和调试器,例如 ARM GCC 编译器和 JTAG/SWD 调试器。 3. 下载 FreeRTOS:从 FreeRTOS 官方网站下载最新版本的 FreeRTOS。确保您选择与目标硬件平台兼容的版本。 4. 配置 FreeRTOS:根据目标硬件平台的需求,编辑 FreeRTOS 的配置文件。配置文件通常包含任务堆栈大小、调度器选项、中断优先级等参数。 5. 创建硬件抽象层(HAL):根据目标硬件平台的特性,实现必要的 HAL 接口。HAL 接口通常涉及时钟配置、中断处理、任务切换等。 6. 移植移植代码:根据目标硬件平台的特性,修改或添加必要的移植代码。这些代码通常包括启动文件、任务切换相关代码、定时器驱动程序等。 7. 编译和调试:使用所选的开发工具链编译和链接 FreeRTOS 代码。通过调试器验证代码是否正确运行,并进行必要的调试。 8. 测试和验证:创建一些简单的任务和测试用例,以确保 FreeRTOS 在目标硬件平台上正确运行。验证任务调度器、信号量、消息队列等功能是否按预期工作。 需要注意的是,FreeRTOS 移植对于每个硬件平台可能会有所不同,具体步骤和细节可能会有所差异。建议先阅读 FreeRTOS 移植指南和相关文档,以获得更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值