UCOS-III 系统移植

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 源码组织结构图

c342bb608e4744bcaa189f4d3d6fe483.png

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对应的架构信息如下:

60f91b6e4275402e83972edb778b3be9.png

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 异常处理程序,用切换当前任务的上下文到下一个准备就
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIoT@突破自我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值