3 FreeRTOS移植(从FREERTOS官网移植进自己的工程)


P6-P8

1 获取FreeRTOS源码(熟悉)

途径:
1 FreeRTOS官网
2 正点原子开发板的资料 A盘 V10.4.6的版本

1.1 介绍源码内容

在这里插入图片描述

注:
1 FreeRTOS-Plus中,多使用第三方的组件。不使用FreeRTOS的。
2 只关心内核即可。

1.2 FreeRTOS内核

内核文件夹中
在这里插入图片描述

1.2.1 Demo文件夹

Demo文件夹就是FreeRTOS的演示例程
在这里插入图片描述

1.2.2 Source文件夹

FreeRTOS源码本尊(内容比UCOS少很多)(FreeRTOS是轻量级,可被裁剪的)
在这里插入图片描述

列表、队列、任务相关的文件是3个核心典型文件。
加上前两个文件夹,共5个。
其他,按需要添加。

1.2.2.1 portable文件夹

FreeRTOS操作系统是一个软件层面的东西,是如何于硬件联系在一起的呢?
对硬件操作就需要操作寄存器。
portable文件夹里面的东西,就是连接“软件”与“硬件”的桥梁。
在这里插入图片描述

2 FreeRTOS手把手移植(掌握)(重要)

  目的:实现正点原子所有开发板的FreeRTOS移植。(没有使用CubaMX,手动移植后,也加深对工程文件的理解)
移植准备:
  1 FreeRTOS源码(FreeRTOS 202112.00)
  2 基础工程
  由于后续实验需使用LED、LCD定时器、内存管理等,所以使用阿波罗F429HAL库版本的“内存管理”的实验工程为基础工程,进行FreeRTOS的移植。

也就是将FreeRTOS移植进自己的工程。

自己使用阿波罗F767的内存管理实验和定时器实验,进行复刻。
FreeRTOS源码版本是FreeRTOS 202212.01。官网和Github都有下载。
按照STM32F767FreeRTOS开发手册V1.1进行移植复刻。
注:这个开发手册不是开发指南。跟视频里用的教程(开发手册)有出入。

详细移植步骤见"3.1 FreeRTOS详细移植步骤"

2.1 移植步骤

1 添加FreeRTOS源码
  将FreeRTOS源码添加至基础工程、头文件路径等。
2 添加FreeRTOSConfig.h配置文件。
  该文件是拆分FreeRTOS的功能,以及API函数的使能。
3 修改SYSTEM文件夹
  修改其中的sys.c、delay.c、uart.c。这几个文件是基于裸机和UCOS实现的。要应用到FreeRTOS是不能直接使用的,要进行修改。
4 修改中断相关的文件
  修改Systick中断(提供时间片)、SVS中断、PendSV中断。(这三个中断,是与任务切换相关的)
通过条件编译#if(!SYSTEM_SUPPORT_OS) #endif 将stm32f7xx_it.c中的三个函数处理掉。
5 添加应用程序
  验证移植是否成功。

详细移植步骤的细节,根据《FreeRTOS开发指南》的第二章操作。
按照第二章进行操作
后面自己移植时,可以来补充适用自己的文档。

3 系统配置文件说明(熟悉)

  FreeRTOSConfig.h配置文件的作用:
  对FreeRTOS进行功能配置和裁剪(通过宏),以及API函数的使能。
学习途径:
1 官方在线文档,查看每个宏的说明(全英文)。
2 正点原子《FreeRTOS开发指南》第三章的内容,FreeRTOS系统配置。
相关宏大致可分为三大类:
1 INCLUDE 配置FreeRTOS中可选的API函数。
2 config 完成FreeRTOS的功能配置和裁剪
3 其他配置项 对PendSV中断服务函数进行宏定义 对SVC中断服务函数进行宏定义,宏定义后,与port.c进行连接。(两个中断服务函数)

宏很多,目前只需要有感性的认识即可,随着后面宏的使用,就会逐渐熟悉起来。
浅识

下面根据移植的工程,进行说明。

位、字节、字的关系
位(bit):一位二进制数
字节(Byte):8位
字(Word):计算机进行数据储存和数据处理的运算单位。
32位计算机,1字=32位(=4字节)
64位计算机,1字=64位(=8字节)

1 CPU不能闲置,需创建“空闲任务”,优先级为0,最低。
2 动态分配内存时,从总堆栈(定义为10k,10x1024Byte=10KB)分配。静态时,定义数组,进行分配。
3 HOOK(钩子)函数,回调函数。类似于中断服务函数,里面的内容需要自己写。
4 “断言?” 打印错误信息的宏定义。

4 课堂总结(掌握)

4分钟总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值