打印
[应用相关]

Free-RTOS移植到STM32

[复制链接]
1538|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
准备工作:Free-RTOS源码、STM32基础工程。
将下载的源码进行解压,解压过程如下。

使用特权

评论回复
沙发
gaoke231|  楼主 | 2019-5-31 18:56 | 只看该作者
解压后会得到FreeRTOSv9.0.0文件夹,该文件夹包含了FreeRTOS的所有内容。

使用特权

评论回复
板凳
gaoke231|  楼主 | 2019-5-31 18:56 | 只看该作者
重点看下FreeRTOS与FreeRTOS-Plus文件夹的内容,FreeRTOS文件夹下有Demo、License、  Source三个文件。

使用特权

评论回复
地板
gaoke231|  楼主 | 2019-5-31 18:57 | 只看该作者
Demo文件夹里面就是移植好的FreeRTOS的相关例程,这里列举了一些处理器包括ARM7、ARM9、AVR等。

使用特权

评论回复
5
gaoke231|  楼主 | 2019-5-31 18:57 | 只看该作者
可见FreeRTOS为很多MCU做了相关DEMO,这里也少不了ST的MCU,下面框出了ST的M4 M4内核的F4系列和F7系列。

使用特权

评论回复
6
gaoke231|  楼主 | 2019-5-31 18:57 | 只看该作者
这个是基于M3内核的F103系列的工程DEMO,我们重点关注CORTEX_STM32F103_Keil

使用特权

评论回复
7
gaoke231|  楼主 | 2019-5-31 18:58 | 只看该作者
License文件夹我们暂时不用关注,如果您的产品商业化了需要仔细阅读。

使用特权

评论回复
8
gaoke231|  楼主 | 2019-5-31 18:59 | 只看该作者
Source文件夹就知道是重头戏了,这里是FreeRTOS的源码,这些源码是以后我们学习需要熟悉的。大体上看没有UCOSIII那么多。

使用特权

评论回复
9
gaoke231|  楼主 | 2019-5-31 18:59 | 只看该作者
在include文件夹中主要包含了一些重要的头文件,移植的时候是我们所需要的。

使用特权

评论回复
10
gaoke231|  楼主 | 2019-5-31 18:59 | 只看该作者
Portable文件夹主要是用于FreeRTOS与硬件连接的桥梁,实现在不同的编译器和不同的MCU之间架起通向FreeRTOS的桥梁。

使用特权

评论回复
11
gaoke231|  楼主 | 2019-5-31 19:00 | 只看该作者
本平台建立在keil的编译器上,打开keil文件夹可以看到一个See-also-the-RVDS-directory.txt文本,让参考RVDS 文件夹下的路径内容。

使用特权

评论回复
12
gaoke231|  楼主 | 2019-5-31 19:00 | 只看该作者
打开RVDS文件夹,看到CM0、CM3、CM4、CM7内核都在,重点关注ARM_CM3文件夹

使用特权

评论回复
13
gaoke231|  楼主 | 2019-5-31 19:00 | 只看该作者
ARM_CM3文件夹中有port.c和portmacro.h文件,这两个文件是移植的时候所需要的。

使用特权

评论回复
14
gaoke231|  楼主 | 2019-5-31 19:06 | 只看该作者
关于FreeRTOS-Plus文件夹同样也有Demo和Source文件夹。

使用特权

评论回复
15
gaoke231|  楼主 | 2019-5-31 19:06 | 只看该作者
Demo 文件夹下也是一些相关的示例,Source文件夹下相对于FreeRTOS文件夹下的增加了一些功能,如CLI、FAT等,就系统本身而言和FreeRTOS是一样的,因此我们只需要掌握FreeRTOS即可。

使用特权

评论回复
16
gaoke231|  楼主 | 2019-5-31 19:07 | 只看该作者
在基础工程中新建一个FreeRTOS的文件夹

使用特权

评论回复
17
gaoke231|  楼主 | 2019-5-31 19:07 | 只看该作者
本帖最后由 gaoke231 于 2019-5-31 19:42 编辑

添加好FreeRTOS的文件夹后将FreeRTOS下的Source目录下的源码复制到该目录下

1.png (101.69 KB )

1.png

使用特权

评论回复
18
gaoke231|  楼主 | 2019-5-31 19:42 | 只看该作者
可以将portable文件下不需要的文件夹删除,保留我们需要的,以keil平台为例,只需要保留Keil、MemMang、RVDS三个文件夹,其余的均可以删除。

使用特权

评论回复
19
gaoke231|  楼主 | 2019-5-31 19:43 | 只看该作者
在keil基本工程上添加两个分组,分别是FreeRTOS_CORE和FreeRTOS_PORT。

使用特权

评论回复
20
gaoke231|  楼主 | 2019-5-31 19:43 | 只看该作者
向FreeRTOS_CORE分组中添加 croutine.c、event_groups.c、list.c、queue.c、tasks.c、timers.c文件。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

1310

帖子

5

粉丝