【FreeRTOS】学习笔记(三)

1. FreeRTOS配置文件

FreeRTOSConfig.h配置文件作用:对FreeRTOS进行功能配置和裁剪,以及API函数使能,文件中的宏大致可分为三类:

  1. INCLUDE:配置FreeRTOS中的可选API函数
  2. config:完成FreeRTOS的功能配置和裁剪
  3. 其他配置项:中断库函数PendSV宏定义、SVC宏定义,与port.c有关

关于文件中各个宏的意义可以在官网中查看。

2. FreeRTOS移植

FreeRTOS就是一个软件库,在你写工程时提供一些好用的接口。FreeRTOS中存在一些配置会与HAL库冲突,如果工程中同时需要这两个库,则FreeRTOS移植过程中需要将这些冲突点解决才能成功编译工程。

2.1 移植过程

  1. 添加FreeRTOS源码:在工程中建立FreeRTOS文件夹,将源码中Source文件夹下的文件添加到该文件夹下。

需要注意heap_x.c和port.c文件:

  • heap_x.c为FreeRTOS提供的内存管理算法,x表示对应5中算法中的一种。
  • port.c文件是FreeRTOS与MCU连接的桥梁,可以进入portable/RVDS文件下看到各种不同的port.c,选择匹配的加入工程即可,可以理解为驱动。
  1. 添加FreeRTOSConfig.h:可以从FreeRTOS内的演示工程中获取相关机型的配置文件,不过不一定适用。
  2. 修改中断相关文件(冲突点)

在FreeRTOS的移植过程中会用到三个重要的中断,分别是FreeRTOS系统时基定时器的中断(Systick中断)、SVC中断、PendSV中断,这三个中断的中断服务函数在HAL库提供的文件中都有定义,因此需要将HAL库提供的这三个中断服务函数注释掉。

  1. 添加应用程序,实现功能

2.2 注意

FreeRTOSConfig.h文件中有如下定义:

#define configPRIO_BITS __NVIC_PRIO_BITS

其中__NVIC_PRIO_BITS在HAL库中有相关定义,一般被定义为:

#define __NVIC_PRIO_BITS 4U

这个值是正确的,但是如果将__NVIC_PRIO_BITS 定义成 4U 的话,在编译 FreeRTOS 工
程的时候,Keil 会报错,具体的解决方法就是将 4U 改成 4,代码修改后如下所示:

#define __NVIC_PRIO_BITS 4
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值