您的位置:首页 > 其它

在keil4中将FreeRTOS V8.2.3移植到STM32F103RCT6 cortex-M3平台上

2017-01-13 13:07 597 查看


在keil4中将FreeRTOS V8.2.3移植到STM32F103RCT6 cortex-M3平台上


移植环境

STM32固件库V3.5.0
FreeRTOS V8.2.3
Keil 4


移植步骤


1、新建STM32工程

先新建一个STM32 的keil 4 工程,按Library 、User、Preject 的文件夹架构设置,


2、下载FreeRTOS的源码

前往FreeRTOS的官网进行下载,目前最新的版本是V8.2.3,下载完了之后进行解压。


3、复制相应的文件到STM32工程目录中

将FreeRTOS的source文件夹放入上面新建的工程目录Library中,并将source 改为FreeRTOS,

FreeRTOS\Source\portable\RVDS\ARM_CM3->port.c,   .h放入include  在debug中加入该路径

FreeRTOS\Source\portable\MemMang->heap2.c 都加入该文件,

;将FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_STM32F103_Keil中的FreeRTOSConfig.h 文件拷贝到STM32工程中User目录下,这个一个必须的头文件。


4、修改中断配置

对比FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_STM32F103_Keil中的STM32F10x.s 修改工程文件中的starup_stm32f10x_hd.s 启动文件,具体如下:
Heap_Size       EQU     0x00000200

AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

PRESERVE8
THUMB


改为: 

Heap_Size EQU 0x00000200
AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

IMPORT xPortPendSVHandler
IMPORT xPortSysTickHandler
IMPORT vPortSVCHandler

PRESERVE8
THUMB


对应后面的中断入口地址需要更改:
DCD     vPortSVCHandler            ; SVC_Handler                ; SVCall Handler
...
DCD     xPortPendSVHandler         ; PendSV_Handler             ; PendSV Handler
DCD     xPortSysTickHandler        ; SysTick_Handler


上面这个是配置的一种方法,另一种方法是增加三个宏定义: 

在FreeRTOSConfig.h中 添加,
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
standard names. */
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler


5、将相应的文件添加到keil 4 工程中

在keil中添加Group并重命名,将各个文件添加进来,并在keil中设置好头文件的路径。 

截图如下: 



还要记得在配置中加上头文件的路径,之后就可进行编译了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: