1. 移植前准备
1.1 源码下载
UCOS-III Kernel Source: https://github.com/weston-embedded/uC-OS3.git
Micriμm CPU Source : https://github.com/weston-embedded/uC-CPU.git
Micriμm Lib Source: https://github.com/weston-embedded/uC-LIB.git
1.2. 源码介绍
1.2.1 源码组织结构图

1.2.2 源码简介
1)应用层模块
2)BSP 与板子相关的BSP模块 (需要移植) 主要为系统时钟、时间戳相关API
3)µC-OS3/Source 内核源码 与CPU无关的模块
4)µC-OS3/Ports 与CPU相关的模块 (需要移植 )
5)uC-CPU 与特定平台CPU相关的模块(由uc-cpu提供)
6)uC-LIB 与CPU无关的库函数模块
7) µC-OS3/Cfg 配置头文件(需要配置的部分)
调用关系: UC/OS-III/Ports-->uC-CPU --> CPU_BSP
2. 移植配置列表
1)移植 uC-OS3 CPU 相关部分: os_cpu.h, os_cpu_a.asm, os_cpu_c.c
2)移植 uC/CPU 相关部分: cpu_a.asm , cpu_c.c
3)移植板级支持包(BSP) 部分: bsp.c ,bsp.h
4)配置UC/OS-III 以下部分:
µC/OS-III 功能配置 (os_cfg.h)
µC/OS-III 堆栈、系统任务和其他数据大小 (os_cfg_app.h)
µC/OS-III 数据类型 (os_type.h)
具体配置参考: http://t.csdnimg.cn/GNZcY
3. 移植 uC-OS3 CPU
3.1 找到MCU使用的CPU架构
以GD32F303为例,翻阅其手册,查找CPU对应的架构信息如下:

3.2 找到CPU架构对应的文件
在uC-OS3/Ports目录下查找ARMv7-M,找到 ARMv7-M路径: ARM-Cortex-M/ARMv7-M
3.3 开发编译环境列表
ARM-Cortex-M/ARMv7-M 目录下有4个文件夹,分别对应不同的编译器
- ARM: ARM公司提供的编译器,如Keil MDK开发环境。
- CCS: TI的Code Composer Studio编译器。
- GNU: GNU工具链(如GCC)
- IAR: IAR 开发环境
3.4 使用Keil MDK编译器
uC-OS3/Template/bsp_os_dt.c , 有以下系统时钟相关接口需要移植:
BSP_OS_TickInit() //初始化系统时钟滴答定时器
BSP_OS_TickISR() //系统时钟滴答中断服务程序
uC-OS3/Ports/Template目录里的os_cpu.h ,有以下上下文切换相关接口需要实现:
void OSCtxSw (void); // 任务级上下文切换,触发PendSV异常
void OSIntCtxSw (void); // 中断上下文中进行任务切换,触发PendSV异常
void OSStartHighRdy (void); // 启动最高优先级的就绪任务
void OS_CPU_PendSVHandler (void); // PendSV 异常处理程序,用切换当前任务的上下文到下一个准备就

最低0.47元/天 解锁文章

1425

被折叠的 条评论
为什么被折叠?



