手动移植FreeRTOS和CubeMX生成FreeRTOS

本文详细介绍了如何在STM32F103上使用CubeMX生成基础工程,并手动移植FreeRTOS,涉及基准时钟选择、文件复制、配置文件调整以及异常处理程序的定义。通过CMSIS_V1接口,作者逐步构建了一个小规模的FreeRTOS示例任务。
摘要由CSDN通过智能技术生成

手动移植FreeRTOS

先使用CubeMX生成一个基本的工程

基准时钟SysTick改到TIM1 或者TIMx      因为系统的嘀嗒定时器要被     操作系统调用作为基准时钟

从https://www.freertos.org/zh-cn-cmn-s/a00104.html上下载FreeRTOS文件

下载这个就行   FreeRTOS 202212.01

解压后将

Source里面的文件复制到MDK文件里面

把接口文件protable

里面只保留这几个文件

Keil

MemMang  内存的管理

RVDS里面,有M3的 接口文件  只保留M3的接口文件

因为我用的是STM32F103

而后再keil里面创建这样的组,并添加文件

FreeRTOS/Port里面的文件在文件夹portable里面

内存的管理,堆选的heap_4 .c

并且把他们添加到头文件路径里面

之后添加配置文件,对系统进行裁剪的  在FreeRTOS文件夹

复制Config文件

并且人为添加宏定义

#define xPortPendSVHandler    PendSV_Handler            //异常处理 //操作系统,通过这3个中断来切换任务

#define xPortSysTickHandler   SysTick_Handler      //滴答定时器

#define vPortSVCHandler     SVC_Handler              //内核

  1. #define xPortPendSVHandler PendSV_Handler:这行代码将PendSV异常处理器与名为PendSV_Handler的函数关联起来。在FreeRTOS中,PendSV异常用于任务切换,当一个任务被挂起(即等待某些事件发生)时,系统会触发PendSV异常来执行任务切换操作。
  1. #define xPortSysTickHandler SysTick_Handler:这行代码将SysTick定时器中断处理器与名为SysTick_Handler的函数关联起来。SysTick定时器是一个由硬件提供的定时器,在FreeRTOS中常用于任务调度和时间管理。
  1. #define vPortSVCHandler SVC_Handler:这行代码将SVC(Supervisor Call)异常处理器与名为SVC_Handler的函数关联起来。SVC异常通常用于操作系统内核中的系统调用,例如任务创建、删除等操作。

是在使用FreeRTOS操作系统时常见的定义,用于将处理器的异常处理程序(例如PendSV、SysTick、SVC)与操作系统内核中的相关函数进行关联。

可以将操作系统,和中断联系起来

编译后重复定义了,把it.c里面的定义给 屏蔽掉

写任务文件

这样就做完了一个小demo!

CubeMX生成FreeRTOS

选择FREERTOS  interface选择CMSIS_V1

ps:CMSIS_V1  一般选这个

CMSIS_V2  兼容更多的CPU ,但代码量更大。

写操作系统,就是写,任务函数。

这样,就写完一个小demo了。

本人水平较低,参考了他人文章,写着也是平时回顾,欢迎各位指正、交流!共勉!

上文:STM32_DMA—串口接收不定长数据-CSDN博客

下文:FreeRTOS启动流程和任务创建_CubeMX-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值