商务网站开发意义,做公司简介需要多少钱,室内软装设计,施工企业有哪些前言
上一篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG STM32L476RG 的 裸机工程#xff0c;并且下载了 uC-OS2 V2.93 的源码#xff0c;接下来#xff0c;开始系统移植
开发环境 win10 64位 Keil uVision5#xff0c;MDK V5.36 uC-OS2 V2.93 开发板#xff1a;NUC…前言
上一篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG STM32L476RG 的 裸机工程并且下载了 uC-OS2 V2.93 的源码接下来开始系统移植
开发环境 win10 64位 Keil uVision5MDK V5.36 uC-OS2 V2.93 开发板NUCLEO-L476RG MCU 为 STM32L476RG STM32CubeMX 6.9.1用于生成 STM32的裸机工程
uC-OS2 目录裁剪
首先把 通过 Git 克隆的 uC-OS2 整个目录复制到 STM32 的工程下 开始裁剪 uC-OS2 的代码首先移除 其他平台的 Port 文件只留下 uC-OS2\Ports\ARM-Cortex-M\ARMv7-M 如果包含 uC-OS2 下 包含 .git 目录也可以移除掉当然也可以考虑 Git submodule 的管理 移除不使用的 TLS 与 Trace则 uC-OS2 的代码目录如下 添加 uC-OS2 到 Keil MDK5 工程 当前使用 Keil MDK5 工程管理添加 uC-OS2 Port Cfg 三个目录分别对于 uC-OS2 目录下的三个目录然后添加源文件代码清单如下 注意不需要添加 ucos_ii.c否则会引起编译重定义查看这个文件发现里面直接包含了 C 的源文件 注意不添加 os_dbg_r.c否则会跟 Port 下的 os_dgb.c 重定义 配置头文件的路径 添加一下的路径到 Keil MDK5 工程 ..\uC-OS2\Source ..\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM ..\uC-OS2\Cfg\Template 解决编译问题 直接编译发现有两个宏需要定义CPU_CFG_KA_IPL_BOUNDARY 与 CPU_CFG_NVIC_PRIO_BITS 修改 uC-OS2\Cfg\Template\app_cfg.h新增这两个【宏定义】如下
#ifndef CPU_CFG_KA_IPL_BOUNDARY
#define CPU_CFG_KA_IPL_BOUNDARY 4u
#endif#ifndef CPU_CFG_NVIC_PRIO_BITS
#define CPU_CFG_NVIC_PRIO_BITS 4u
#endif经过以上的操作 uC-OS2 V2.93 在 STM32L476 上基本移植完成接下来可以创建几个任务用于验证 uC-OS2 是否正常运行
小结 本篇注意记录 uC-OS2 V2.93 基于 Keil MDK5 移植到 STM32L476 平台上的操作主要是工程的搭建代码添加到工程 由于有了 Keil MDK5 的裸机工程添加 uC-OS2 会比较的顺利添加源文件配置 uC-OS2 的头文件路径定义所需的两个【宏定义】就可以正常的编译通过 接下来编写 用户的任务让 uC-OS2 运行起来并使用 【Debug】工程调试 uC-OS2 熟悉 uC-OS2 的启动流程、任务切换、各个模块的工作流程