前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FreeRTOS(三)

FreeRTOS(三)

作者头像
Jasonangel
发布2021-12-01 20:21:32
1.1K0
发布2021-12-01 20:21:32
举报

博主手里有一个正点原子 STM32F103ZET6,行情最贵的时候买的,得好好利用。

手里还有一块韦东山 JZ2440,正点原子 imx6ull开发板,是 Linux 开发板。

后来工作遇到了安卓,想买安卓开发板,发现做安卓教程的比较少,或许是它真的太大太复杂。能跑安卓的板子比如:tiny4412,RK3399,香橙派。

玩了嵌入式 Linux 以后,发现单片机真简单;后来接触了安卓,觉得还是 Linux 简单。

嵌入式有三个方向:单片机、嵌入式 Linux 、Android,系统复杂性依次提高。

这里没有什么高低贵贱,适合什么就用什么。单片机便宜,裸机不行就上 RTOS ,也可以满足需求。

接下来就在 STM32F103 单片机上移植 FreeRTOS。

移植 FreeRTOS

以正点原子的跑马灯工程为基础,在上面扩展。在基础工程中新建一个名为 FreeRTOS 的文件夹:

创建 FreeRTOS 文件夹以后就可以将 FreeRTOS 的源码添加到这个文件夹中,,添加完以后 如图所示:

portable 文件夹,我们只需要留下 keil、MemMang 和 RVDS 这三个文件夹,其他的都可以删除掉:

打开基础工程,新建分组 FreeRTOS_CORE 和 FreeRTOS_PORTABLE,然后向这两个分组 中添加文件

分组 FreeRTOS_CORE 中的文件就是 FreeRTOS 源码。FreeRTOS_PORTABLE 分组中的 port.c 和 heap_4.c ,port.c 是 RVDS 文件夹下的 ARM_CM3 中的文件,因为 STM32F103 是 Cortex-M3 内核的,因此要选择 ARM_CM3 中的 port.c 文件。heap_4.c 是 MemMang 文件夹中的,前面说了 MemMang 是跟内存管理相关的,里面有 5 个 c 文件:heap_1.c、heap_2.c、heap_3.c、heap_4.c 和 heap_5.c。这 5 个 c 文件是五种不同的内存管理方法。这 5 个文件都可以用来作为 FreeRTOS 的内存管理文件,只是它们的实现原理不同,各有利弊。这里我们选择 heap_4.c。

添加相应的头文件路径:

头文件路径添加完成以后编译一下,看看有没有什么错误,结果会发现提示打不开 “FreeRTOSConfig.h”这个文件

这是因为缺少 FreeRTOSConfig.h 文件,这个文件在哪里找呢?你可以自己创建,显然这不是一个明智的做法。我们可以找找 FreeRTOS 的官方移植工程中会不会有这个文件,打开 FreeRTOS 针对 STM32F103 的移植工程文件,文件夹是 CORTEX_STM32F103_Keil,打开以后官方的移植工程中有这个文件,我们可以使用这个文件,但是建议大家使用正点原子例程中的 FreeRTOSConf.h 文件,这个文件是 FreeRTOS 的系统配置文件,不同的平台其配置不同。

FreeRTOSConfig.h 是何方神圣?看名字就知道,他是 FreeRTOS 的配置文件,一般的操作系统都有裁剪、配置功能,而这些裁剪及配置都是通过一个文件来完成的,基本都是通过宏定义来完成对系统的配置和裁剪的。

到这里我们再编译一次,没有错误!如果还有错误的话大家自行根据错误类型查找和修改错误!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式Linux系统开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档