μC/OS-Ⅱ的移植
μC/OS-Ⅱ的大部分代码是用ANSIC写成的,在对μC/OS-Ⅱ进行移植到不同处理器平台时,需要解决的主要问题有:数据类型的重定义、堆栈结构的设计和任务切换时的状态保存与恢复。在μC/OS-Ⅱ移植过程中涉及以上三个问题的代码都有包含在文件OS_CPU.H、OS_CPU_C.C、OS_CPU_A.S中。下面以μC /OS-Ⅱ在LPC2104上的移植为例进行探讨,介绍移植过程中的主要步骤和需要修改的部分。
OS_CPU.H
主要包括了数据类型、堆栈单位、堆栈增长方向、关中断和开中断的宏以及进行任务切换的等宏定义。
OS_CPU_C.C
在OS_CPU_C.C文件中需要用C语言编写6个与操作系统相关的函数:
OSTaskStklnit();
OSSTaskCreateHook();
OSTaskDelHook();
OSTaskSwHook();
OSTaskStatHook();
OSTimeTickHook()。
其中OSTaskStkInit()务堆栈初始化函数,后5个函数称为功能扩展函数。
OS_CPU_A.S
这部分需要对处理器的寄存器进行操作,所以必须用汇编语言来编写,在该文件中用ARM指令编写了和3个与处理器相关的函数:
OSStartHighRdy()最高优先级任务调用函数;
OSCtxsw()任务切换函数;
OSIntCtxSw()中断任务切换函数
μC/OS-Ⅱ的移植相关推荐
- 【第3版emWin教程】第8章 emWin6.x的带OS方式移植(STM32H7之RGB接口)
教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第8章 emWin6.x的带OS方式移植(STM32H7之R ...
- -uc/OS系统移植(基于STM32F103C8T6,超详细讲解)
完成STM32F103C8基于HAL库的-uc/OS系统移植 一.创建HAL库 二.下载uc/OSIII源码及移植准备 1.下载uc/OSIII源码 2.将uc/OS源码文件复制到工程 三.将uc/O ...
- T2080 U-BOOT与OS内核移植 准备篇(二)——开发调试环境入门(Trace32、QorIQ Linux SDK和QCVS)
T2080 U-BOOT与OS内核移植 准备篇(二)--开发调试环境入门(Trace32.QorIQ Linux SDK和QCVS) 一.Trace32 1. 工具配置和软件安装 2. 使用PRACT ...
- T2080 U-BOOT与OS内核移植 u-boot移植篇(一)——创建新目标板的u-boot工程
T2080 U-BOOT与OS内核移植 u-boot移植篇(一)--创建新目标板的u-boot工程 一.创建新目标板文件夹并修改相应文件 1.创建新目标板文件夹 2.修改t2080tpm文件夹中的相应 ...
- T2080 U-BOOT与OS内核移植 准备篇(一)——开发调试环境简介
T2080 U-BOOT与OS内核移植 准备篇(一)--开发调试环境简介 1.本项目选择的工具 2.几个常用工具简介 2.1 Trace32 2.2 Code Warrior 2.3 QorIQ Li ...
- STM32F103-uc/OS系统移植
目录 前言 一.获取uc/OS-III源码 二.项目导入文件夹 2.1文件的整理 2.2导入源码 2.3STM32CubeMX创建框架 三.添加代码 3.1将源码文件复制到指定文件夹下 3 ...
- 基于STM32的uc/OS系统移植及用Saleae Logic 16抓取分析波形
文章目录 一.关于uc/OS系统 1.操作系统与裸机的区别 2.uc/OS运行流程 二.详细移植过程 1.STM32Cubex创建工程 2.为工程添加源码 3.添加头文件路径 4.添加代码 1)bsp ...
- 腾讯 tiny os shell移植
默认你已经调通tos,如果没有请移步官网 准备好要移植的文件 需要把shell文件夹下c和h文件加入到工程中(不会的请自行搜索) 因为是需要串口进行接收,需要用过平台调用st的库 调用 调用 shel ...
- 怎样把电脑换linux系统软件,如何将OS/2应用程序移植到Linux操作系统 -电脑资料...
当从 OS/2 移植到 Linux 时,关键的编程问题是什么? 在转换到 Linux 之前注意一下,提早发现陷阱, 本文是 LAN Distributed Platform(LANDP)for Lin ...
- STM32F103C8T6移植uc/OS
STM32F103C8T6移植uc/OS STM32F103C8T6移植uc/OS STM32F103C8T6移植uc/OS 一.题目要求 二.使用STM32CubeMX建立HAL库 三.准备uCOS ...
最新文章
- DotNetNuke CSS hierarchy
- grenndao 插入表数据报错
- Loj#6247-九个太阳【单位根反演】
- 六级核心词汇pdf_人民日报总结的500个四六级【核心词汇】,祝你一次必过!
- 运维人员如何最大限度避免误删除文件
- Docker监控:基于阿里云容器服务构建自己的Docker监控框架
- python基础编程练习题_Python随笔18:Python基础编程练习题1~2
- delphi和python比较_Python For Delphi---更好地协同
- 华中科技大学2005年计算机组成原理试题,华中科技大学200年计算机组成原理考研试题.doc...
- 认真学习系列:数据结构与算法——慕课网笔记
- ios 配置java环境变量_Ios 入门 ----基本的控件
- js TextArea获取光标详解说明与实例
- 群晖服务器自动同步到本地电脑,安装群晖Drive,实现多台电脑文件同步
- tomcat 如何查看tomcat版本及位数
- 基于MATLA的图像复原系统
- 每日一Tip:Jetbrains旗下集成环境(pycharm、IDEA等)使用Ctrl +鼠标滚轮上下滑放大缩小快捷键设置
- android缩放组件,Android控件实现图片缩放功能
- Spark SQL 内置函数(五)Aggregate Functions(基于 Spark 3.2.0)
- 安全漏洞修复-Common FileUpload-CVE-2016-100031
- PX4代码学习系列博客(5)——在px4中添加自己的模块