准备工作
一个是官网:http://www.freertos.org/.
另外一个是代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/.
FREERTOS移植成功的模板
移植的准备工作主要分为2个部分:
> FreeRTOS源码V9.0.0
> 一个空stm32f1系列的工程文档
先学会用,在深入理解,本章就从头开始移植到可以开始使用!
首先把源码解压
解压后的内容
然后我们准备一个空的工程文档
移植过程
1. 首先解压FREERTOS源码的压缩包
2. 源码里面有FreeRTOS和FreeRTOS-Plus主要文件
3. 创建一个新的工程,工程里面新建一个文件夹FREERTOS
4. 把源码里面有FreeRTOS内文件夹内的Source都拷进来
5. 然后把PORTABLE里面的文件夹删除的只剩下自己需要的Keil、MenMang、RVDS等
6. 然后打开KEIL 向工程里面添加FREERTOS的文件 并把.h路径包括进去
7. 其中包括FREERTOS的include和portable
8. portable中的MemMang下的heap_4和RVDS文件夹下的ARM3的port
9. 然后找一个有的FREERTOS文件,把FreeRTOSConf.h拷进源码中的 include 文件夹下
10. 把sys delay usart 换成freertos版本的
11. 在 sys.h 文件里面用宏 SYSTEM_SUPPORT_OS 来定义是否使用 OS, 我们使用了 FreeRTOS,
所以应该将宏 SYSTEM_SUPPORT_OS 改为 1。 将 stm32f10x_it.c 中的三个函数屏蔽掉
SysTick_Handler()、SVC_Handler()和 PendSV_Handler()
1.一个新的工程模板
2.建立一个新的文件夹名字叫:FreeRTOS
3.打开源码中FreeRTOS的文件夹
4.打开Source文件夹
5.把里面的东西都复制
6.把源码里面有FreeRTOS内文件夹内的Source都拷进来工程里面新建的文件夹FREERTOS
7.点击进入porttable文件夹,删除里面的东西,只剩下自己需要的Keil、MenMang、RVDS等
8.进入空的工程中去点击这个按钮
9.创建FREERTOS的内容,并添加内容
10.如图所示,这里的portable中的MemMang下的heap_4和RVDS文件夹下的ARM3的port,因为我们用得stm32f1的芯片,是属于M3内核的。
11.添加freertos的文件路径
12.然后找一个有的FREERTOS文件,把FreeRTOSConf.h拷进源码中的 include 文件夹下
13.同样的,在使用freertos的时候,原子哥中的sys delay usart三个文件也需要都换成freertos,这里的话主要是sys.h中使能OS,usart包含freertos和port的头文件,delay改动比较大。所以可以直接找一个现成的工程直接切换这三个文件夹。
14. 将 stm32f10x_it.c 中的三个函数屏蔽掉SysTick_Handler()、SVC_Handler()和 PendSV_Handler()
15.看一下FreeRTOSConf.h这里是不是这样如果不一样可能会出问题
16.随便写一个程序跑跑 初始化PA8,先创建一个开始任务,然后开始任务调度。在开始任务里面创建一个LED闪烁的任务,假设LED的IO口是PA8