freeRTOS使用笔记一(移植篇)
目录
一,移植准备
(1)从官网或者github获取源码
1,官网:https://www.freertos.org/a00104.html,进去后点击如下红框即可下载源码
2,github:
从以上地址克隆到自己电脑就行,但是要记得刚刚克隆下来的是master开发版本,需要执行指令切换到最新release版本。
比如用vs code打开freeRTOS文件夹,然后在左下角点击红色方框处:
然后在出现的分支选项内选择最新的release版本即可:
(2)创建自己的工程目录
freeRTOS移植其实是比较简单的,打开IAR或者keil,创建自己单片机的基础工程目录就行。
二,开始移植
(1)复制源码
1,在自己的工程目录新建freeRTOS文件夹;
2,将freeRTOS源码目录的FreeRTOS\Source下的所有.c文件复制到新建的freeRTOS文件夹,如下图:
3,继续在此文件下复制include文件夹到新建的freeRTOS文件夹;
4,进入portable文件夹,可以看到有很多东西,如下图所示:
我们在之前新建的freeRTOS下也新建文件夹portable,新建好了之后就需要把上图的一些东西放进去,那么复制什么东西进去呢?
其实只要2个东西:
- MemMang文件夹下的所有东西
- 自己要使用的对应的IDE下的东西
第一个简单,将MemMang文件复制到咱们工程目录里之前新建的portable文件下就可以了
第二个也不难,以keil为例,如果咱们的单片机是stm32f103,那么就在RVDS文件下把ARM_CM3这个目录复制到咱们的portable目录即可,那么为什么不是keil目录呢?其实在freeRTOS下keil是空目录,它keil下的东西官方重新定位到了RVDS文件夹,其实这一步是将freeRTOS官方移植好的内核相关的代码复制到自己的目录,所以根据自己的单片机内核找一找就好了。
还有最后一个东西别忘了复制,否则会报错的呦,那就是FreeRTOSConfig.h这个配置文件,这个文件主要是对freeRTOS的一些功能配置,一般在和自己用的单片机内核相同的源码Demo里复制一份放到自己工程的根目录即可,如下图:
(2)修改工程
这个就比较简单,要做的是如下几个工作:
- 在自己的工程里新建freeRTOS组,添加之前复制的所有的.c文件到工程里,但是有一个文件里的东西例外,就是MemMang文件夹,这里复制过来一般是这样的:
这个文件夹意思是内存管理的5种方式,咱们一般选一种就可以了,所以咱们只需要添加heap_4.c一个c文件到自己的工程即可,这个你们可以自己在研究研究,看选哪种符合你的需求。
- 然后在自己的工程添加头文件路径,这个是老生常谈的了,这里就不详细说了,具体看看新建的freeRTOS下哪些路径有头文件,然后添加到工程就可以了。
至此编译通过,移植结束!