当前位置: 主页 > 产品支持 >

了解操作系统的基本概念、基本原理,掌握操作(2)

时间:2015-07-29 23:12来源:未知 作者:oumao18 点击:
3.1 修改OS_CPU.H OS_CPU.H中的与处理器和编译器相关的代码包括了用#define语句定义的、与处理器相关的常数、宏以及类型、与ARM 处理器相关宏开启/关闭中断的

3.1 修改OS_CPU.H

OS_CPU.H中的与处理器和编译器相关的代码包括了用#define语句定义的、与处理器相关的常数、宏以及类型、与ARM 处理器相关宏开启/关闭中断的代码。绝大多数的微处理器和微控制器的堆栈是从上往下长的。但是某些处理器是用另外一种方式工作的。μC/OS-Ⅱ被设计成 两种情况都可以处理,只要在结构常量OS_STK_GROWTH中指定堆栈的生长方式即可。如设置OS_STK_GROWTH为0表示堆栈从下往上增长; 设置OS_STK_GROWTH为1表示堆栈从上往下增长。

3.2 修改OS_CPU_C.C

OS_CPU_C.C中的与操作系统相关的函数 OSTaskStkInit(),OSInitHookBegin(),OSInitHookEnd(),OSTaskCreateHook(),OSTaskDelHood(),OSTaskSwHook(),OSTaskStatHook(),OSTCBInitHook(),OSTimeTickHook(),OSTaskIdleHook()。 如系统启动任务时,CPU从堆栈初始化OSTaskStkInit()中获得初始数据,如指向任务的指针、程序状态字。不同处理器内部的寄存器个数及每个 位数不同需要根据实际情况修改。

3.png

图2 μC/OS-Ⅱ的体系结构

3.3 修改OS_CPU_A.ASM

OS_CPU_A.ASM 中的与处理器相关函数OSS-tartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。下面以运行优先级最 高的就绪任务函数OSS-tartHighRdy()为例分别移植到ARM和8086中代码改变情况。

(责任编辑:oumao18)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
尚未注册畅言帐号,请到后台注册