[应用相关] Free-RTOS移植到STM32

[复制链接]
2185|33
 楼主| gaoke231 发表于 2019-5-31 18:55 | 显示全部楼层 |阅读模式
准备工作:Free-RTOS源码、STM32基础工程。
将下载的源码进行解压,解压过程如下。
732335cf1082bc8e5f.png

 楼主| gaoke231 发表于 2019-5-31 18:56 | 显示全部楼层
解压后会得到FreeRTOSv9.0.0文件夹,该文件夹包含了FreeRTOS的所有内容。
68255cf1083e99d97.png
 楼主| gaoke231 发表于 2019-5-31 18:56 | 显示全部楼层
重点看下FreeRTOS与FreeRTOS-Plus文件夹的内容,FreeRTOS文件夹下有Demo、License、  Source三个文件。
185065cf10876e1b62.png
 楼主| gaoke231 发表于 2019-5-31 18:57 | 显示全部楼层
Demo文件夹里面就是移植好的FreeRTOS的相关例程,这里列举了一些处理器包括ARM7、ARM9、AVR等。
475465cf1088d3eb92.png
 楼主| gaoke231 发表于 2019-5-31 18:57 | 显示全部楼层
可见FreeRTOS为很多MCU做了相关DEMO,这里也少不了ST的MCU,下面框出了ST的M4 M4内核的F4系列和F7系列。
739365cf108a08db47.png
 楼主| gaoke231 发表于 2019-5-31 18:57 | 显示全部楼层
这个是基于M3内核的F103系列的工程DEMO,我们重点关注CORTEX_STM32F103_Keil
871225cf108b0ef31c.png
 楼主| gaoke231 发表于 2019-5-31 18:58 | 显示全部楼层
License文件夹我们暂时不用关注,如果您的产品商业化了需要仔细阅读。
141655cf108e23c970.png
 楼主| gaoke231 发表于 2019-5-31 18:59 | 显示全部楼层
Source文件夹就知道是重头戏了,这里是FreeRTOS的源码,这些源码是以后我们学习需要熟悉的。大体上看没有UCOSIII那么多。
455725cf108f299613.png
 楼主| gaoke231 发表于 2019-5-31 18:59 | 显示全部楼层
在include文件夹中主要包含了一些重要的头文件,移植的时候是我们所需要的。
318495cf10908efaf4.png
 楼主| gaoke231 发表于 2019-5-31 18:59 | 显示全部楼层
Portable文件夹主要是用于FreeRTOS与硬件连接的桥梁,实现在不同的编译器和不同的MCU之间架起通向FreeRTOS的桥梁。
876475cf109198b75d.png
 楼主| gaoke231 发表于 2019-5-31 19:00 | 显示全部楼层
本平台建立在keil的编译器上,打开keil文件夹可以看到一个See-also-the-RVDS-directory.txt文本,让参考RVDS 文件夹下的路径内容。
399085cf10938221a4.png
 楼主| gaoke231 发表于 2019-5-31 19:00 | 显示全部楼层
打开RVDS文件夹,看到CM0、CM3、CM4、CM7内核都在,重点关注ARM_CM3文件夹
232135cf1094782dce.png
 楼主| gaoke231 发表于 2019-5-31 19:00 | 显示全部楼层
ARM_CM3文件夹中有port.c和portmacro.h文件,这两个文件是移植的时候所需要的。
237445cf109599dfba.png
 楼主| gaoke231 发表于 2019-5-31 19:06 | 显示全部楼层
关于FreeRTOS-Plus文件夹同样也有Demo和Source文件夹。
161665cf10a9b3699e.png
 楼主| gaoke231 发表于 2019-5-31 19:06 | 显示全部楼层
Demo 文件夹下也是一些相关的示例,Source文件夹下相对于FreeRTOS文件夹下的增加了一些功能,如CLI、FAT等,就系统本身而言和FreeRTOS是一样的,因此我们只需要掌握FreeRTOS即可。
526965cf10aad95259.png
 楼主| gaoke231 发表于 2019-5-31 19:07 | 显示全部楼层
在基础工程中新建一个FreeRTOS的文件夹
82125cf10aea3db94.png
 楼主| gaoke231 发表于 2019-5-31 19:07 | 显示全部楼层
本帖最后由 gaoke231 于 2019-5-31 19:42 编辑

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

1.png
 楼主| gaoke231 发表于 2019-5-31 19:42 | 显示全部楼层
可以将portable文件下不需要的文件夹删除,保留我们需要的,以keil平台为例,只需要保留Keil、MemMang、RVDS三个文件夹,其余的均可以删除。
771475cf1132e080ce.png
 楼主| gaoke231 发表于 2019-5-31 19:43 | 显示全部楼层
在keil基本工程上添加两个分组,分别是FreeRTOS_CORE和FreeRTOS_PORT。
72625cf1134406ed6.png
 楼主| gaoke231 发表于 2019-5-31 19:43 | 显示全部楼层
向FreeRTOS_CORE分组中添加 croutine.c、event_groups.c、list.c、queue.c、tasks.c、timers.c文件。
204825cf113541ce39.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

1310

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部