糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > keil+stm32cubemx创建STM32F767芯片的uCOSIII工程

keil+stm32cubemx创建STM32F767芯片的uCOSIII工程

时间:2020-09-09 16:29:02

相关推荐

keil+stm32cubemx创建STM32F767芯片的uCOSIII工程

使用该种方式,能够去除繁琐的添加库文件与添加头文件路径,大大简化了ucos的移植。

1.在keil安装ucos-iii:点击pack Installer按钮,在弹出的 窗口中找到Pack页面下的Micrium::RTOS,如下图所示

2. 使用Project->new uVision Project创建工程,设置工程名字,保存工程路径后选择芯片型号。

3.接下来在Manage Run-Time Environment界面配置使用的库,配置使用uCOS-III与stm32cubemx,如下图 所示,点击OK后,就会自动添加uCOS-III代码。

4.配置好后,点击ok按钮,会弹出如下选择框,点击StartSTM32CubeMX启动软件。

5.进入Stm32CubeMX可以发现工程已经自动创建好了,我们需要进行必要的配置。

首先系统正常运行必须需要时钟,使用选择HSE(根据自己的硬件选择)。

6. 再依次配置LED控制引脚与USART1(这里省略)。

7.进入Clockconfiguration页面,配置HCLK为最大的216MHz

8. 进入ProjectManager页面,配置工程路径,工程名,堆栈大小,使用的IDE等,尤其是可以在Advancedsetting中配置使用HAL库还是使用LL库,如下图所示

9在Project页面还有一项非常重要的配置,Toolchain/IDE一定要选择GPDSC,否则keil工程会编译出错,说找不到gpdsc文件

10. 点击“GENERATECODE”按钮生成代码工程

11.添加cpu与os_cpu文件

假设你使用的是cortex-m3或者cortex-m4的芯片,到此处就可以成功编译工程了,但是我们使用的是cortex-m7的芯片,针对该类型的芯片,keil有几个文件还无法自动添加,需要我们手动添加,需要手动添加的文件如下图所示,该6个文件位于目录:

C:\Keil_v5\ARM\PACK\Micrium\RTOS\1.0.0\Software\uC-CPU\ARM-Cortex-M3\RealView 与

C:\Keil_v5\ARM\PACK\Micrium\RTOS\1.0.0\Software\uCOS-III\Ports\ARM-Cortex-M3\Generic\RealView

我们可以将该6个文件拷贝到我们的工程目录下后再添加.

12.配置ucos-iii任务切换时使用的PendSV_Handler中断

将os_cpu_a.asm 文件中的所有 OS_CPU_PendSVHandler改为 PendSV_Handler,

并注释掉stm32f7xx_it.c文件中的void PendSV_Handler(void)

13.配置ucos-iii时钟

将os_cpu_c.c中的 OS_CPU_SysTickHandler改为SysTick_Handler

并注释掉stm32f7xx_it.c文件中的void PendSV_Handler(void)

14.修改os_cpu_c.c文件

文件中的#include "../../../../Source/os.h"改为#include "os.h"

15. 关闭 STM32 的 Lazy Stacking 功能

修改 startup_stm32f767xx.s 文件,添加如下代码段

IF {FPU} != "SoftVFP"; Enable Floating Point Support at reset for FPULDR.W R0, =0xE000ED88 ; Load address of CPACR registerLDR R1, [R0] ; Read value at CPACRORR R1, R1, #(0xF <<20) ; Set bits 20-23 to enable CP10 and CP11 coprocessors; Write back the modified CPACR valueSTR R1, [R0] ; Wait for store to completeDSB; Disable automatic FP register content; Disable lazy context switchLDR.W R0, =0xE000EF34 ; Load address to FPCCR registerLDR R1, [R0]AND R1, R1, #(0x3FFFFFFF) ; Clear the LSPEN and ASPEN bitsSTR R1, [R0]ISB ; Reset pipeline now the FPU is enabledENDIF

16开启FPU功能

将文件 stm32f767xx.h 中的宏__FPU_PRESENT 为 1设置Target中的FloatingPointHardware

17 到此ucosiii移植完成

如果觉得《keil+stm32cubemx创建STM32F767芯片的uCOSIII工程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。