UCOS III移植步骤
- 第一步:
首先打开找到Mirium的官网,找到下载区域,按照MCU制造商来查找(看图)来下载对应的UCOS III系统,由于官方并没有直接对stm32f407系列的移植,所以我们就在官网上找到和stm32f407相近的芯片stm32f429(直接ctrl+F查找429即可)
tips:需要注册登录才可以下载,由于不可描述的原因,下载比较慢,这里我把下载好的文件放一份链接在这里
http://t.cn/AikpPdht
- 第二步:
添加一个已经配置好时钟的工程(LED)到复制到你创建好的一个工程文件夹(STMUCOSIII移植),然后将下载的UCOS III系统也解压到这个文件夹
- 第三步:
把工程文件夹重命名为STM32F407UCOSIII,然后进入文件夹STM32F407UCOSIII,创建新的文件夹UCOSIII,在UCOSIII文件夹下面分别创建这几个文件夹
- 第四步:
参考下图的路径,把这几个文件复制到刚刚创建的APP目录下
- 第五步:
同上,步骤类似具体看图
- 第六步:
复制下图路径三个文件夹到UCOSIII目录下
- 第七步:
因为main.c当中已经有了一个main()函数,本着主函数有且只能有一个的原则,我们要把这个main.c删除,同时工程里面对应的main.c也需要删除
- 添加APP组对应的代码文件
- 添加BSP组和APP组的过程一样,不再重复
- 添加剩余三个组的文件
tips:
这里三个组和其他两个组不太一样,他们还需要添加对应目录下的一个 RealView 的 文件夹里面的所有文件
添加完成后该有的文件
- 添加对应的头文件路径
- 修改启动文件 startup_stm32f40_41xxx.s
ctrl+F查找 " PendSV_Handler " 修改为 OS_CPU_PendSVHandler 千万要注意需要删除那个横线
如下图
ctrl+F查找 " SysTick_Handler " 修改位 OS_CPU_SysTickHandler 千万要注意需要删除那个横线
13. 添加浮点型支持代码到startup_stm32f40_41xxx.s
浮点型代码在这个目录下的这个文件里
//浮点型支持代码
IF {FPU} != "SoftVFP"
; Enable Floating Point Support at reset for FPU
LDR.W R0, =0xE000ED88 ; Load address of CPACR register
LDR R1, [R0] ; Read value at CPACR
ORR R1, R1, #(0xF <<20) ; Set bits 20-23 to enable CP10 and CP11 coprocessors
; Write back the modified CPACR value
STR R1, [R0] ; Wait for store to complete
DSB
; Disable automatic FP register content
; Disable lazy context switch
LDR.W R0, =0xE000EF34 ; Load address to FPCCR register
LDR R1, [R0]
AND R1, R1, #(0x3FFFFFFF) ; Clear the LSPEN and ASPEN bits
STR R1, [R0]
ISB ; Reset pipeline now the FPU is enabled
ENDIF
添加完成的样子
-
修改板卡驱动的bsp.h和bsp.c文件
然后删除剩下的BSP开头的函数 -
在 app_cfg.h 文件删除堆栈限制函数
-
修改 app.c 相关文件
删除不必要的函数
删除后续的无关代码
完成!