FreeRtos+emwin在STM32F103ZET6上的移植笔记一(FreeRtos移植)

经过几天的奋斗,终于成功移植了freeRtos和emwin,又增加了一项吹牛逼的利器,这里总结一下移植过程中的心得和踩过的坑-。-

FreeRtos移植

freertos的移植个人感觉真的太简单了,在学freertos操作系统移植的时候,我并没有参考正点原子的移植文档,因为我觉得他们自己写了很多文件,并将修改好的文件直接扔给你,对于我来说不是太友好,我希望在第一次接触操作系统移植的时候应该是从原始文件入手,然后一步步将其加入到自己的工程中,不借助任何第三方文件或代码,只有这样才会对移植过程有一个比较清新的认识,这个学会了之后再去参考正点原子的代码也不迟,先苦后甜!为此我在网上查找了很多前人的移植笔记,逐渐有了一些思路。。。

1)下载freertos源码

下载过程不多说,可以去官网下载,在可以在csdn或者github,gittee上下载,官网下载太慢。

2)分析freertos源码文件目录

我这里下载的是v10.3.1版本的,源码目录及文件分析这里不多做介绍,网上一大把参考

3)移植过程总结

1、将FreeRTOS/Source下的所有.c文件加入工程中,添加include头文件包含路径

2、打开FreeRTOS/Source/portable,这里包含了很多平台的接口文件,我这里用的keil,所以打开keil,里面有一个txt文档,文档名说让你去看RVDS文件夹,那我们去打开RVDS文件夹,我们是ARM-CM0内核,所以我们打开ARM-CM0文件夹,将里面的port.c和portmacro.h也添加到工程中

3、打开FreeRTOS\Demo\CORTEX_STM32F103_Keil,将FreeRTOSConfig.h复制到工程中,Demo文件夹很有用,有些缺失的文件我们都可以去demo文件夹下找,如果demo文件夹下没有我们可参考的demo文件,也可以自己照着FreeRTOSConfig.h中的代码修改。

4、修改启动代码,重新定位中断向量地址

在freertos的port.c中有三个自己写好的中断代码分别是vPortSVCHandler,xPortPendSVHandler,xPortSysTickHandler分别对应启动文件中的SVC_Handler,PendSV_Handler,SysTick_Handler,所以将启动代码修改如下:

FreeRtos+emwin在STM32F103ZET6上的移植笔记一(FreeRtos移植)

FreeRtos+emwin在STM32F103ZET6上的移植笔记一(FreeRtos移植)

到此基本就ok了,有问题了可以留言,必定回复!

还有一点,freertos操作系统强制使用systick作为其系统时基,所以我们的单片机时基要选择systick外的其他时基。