首先在网上看到大部分移植FreeRTOS 都是挑选修正他的发动文件,我个人感觉这样不是很好,毕竟是汇编,当你选用不同的芯片型号时,又要修正不同的xx.S文件,所以我挑选修正FreeRTOSconfig.h文件。
1. 下载STM32官方源码:我的是根据V3.5的官方库(有工程模板的能够不必)。
2. 树立好一个MDK的工程,我这儿选用的是野火的工 程。
3. 在工程模板目录下新建一个FreeRTOS文件夹,在FreeRTOS文件夹在建一个includewen文件夹(寄存.h文件,便利办理)。
(1)从FreeRTOS7.0.2 的源文件中找到 crouTIne.c, TImers.c,list.c, queue.c, tasks.c这五个源文件,方位为: FreeRTOS7.0.2-》Source;复制文件至FreeRTOS文件夹下。
(2)从FreeRTOS7.0.2的源文件中找到heap_2.c文件,方位Source-》portable-》MemMang-》heap_2.c,复制至FreeRTOS文件夹。
(3)复制.h文件到指定文件夹(。./FreeRTOS/include文件夹)中: 1. 复制FreeRTOS7.0.2的源代码下的include文件夹里的悉数.h文件至新树立的include文件夹里,方位: :FreeRTOSv7.0.2-》Source-》include
(4)从FreeRTOS7.0.2的源文件中找到portmacro.h文件复制至新树立的include文件夹里,文件方位 :FreeRTOSv7.0.2-》Source-》portable-》RVDS-》ARM_CM3 -》portmacro.h
(5)由于我运用的是Keil-MDK作为开发工具,运用的是STM32F103VET6为方针芯片,所以需求从FreeRTOS7.0.2的源文件中找到匹配我这个开发工具与方针芯片的config.h的配置文件。这个文件在Demo文件夹中,把这个配置文件复制到include文件夹内,配置文件方位在CORTEX_STM32F103_Keil文件夹下: FreeRTOSv7.0.2-》Demo-》CORTEX_STM32F103_Keil-》FreeRTOSConfig.h
4. 在工程中增加各体系文件(这儿就不必我说了吧),配上一张图
5. 设置好途径,
6. 接下来便是修正文件了
7. 1. 在FreeRTOS的demo文件夹中复制对应的FreeRTOSConfig.h文件后,需求参加一行: #define configUSE_MUTEXES 1
在FreeRTOSConfig.h文件中界说如下几行,这姿态就不必改规范的发动文件了!(不必百度的办法)这儿选用重定向的办法。
#definevPortSVCHandlerSVC_Handler#definexPortPendSVHandlerPendSV_Handler#definexPortSysTIckHandlerSysTIck_Handler12345
stm32fxxx_it.c 中需求删去默许的3个中止空函数,便是上面define的3个空函数。由于FreeRTOS的port.c中界说了它需求的这3个中止函数。也便是SysTick_Handler、PendSV_Handler、SVC_Handler这三个函数。
在编译一下就好了,完结移植了。