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()中获得初始数据,如指向任务的指针、程序状态字。不同处理器内部的寄存器个数及每个 位数不同需要根据实际情况修改。
图2 μC/OS-Ⅱ的体系结构 3.3 修改OS_CPU_A.ASM OS_CPU_A.ASM 中的与处理器相关函数OSS-tartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。下面以运行优先级最 高的就绪任务函数OSS-tartHighRdy()为例分别移植到ARM和8086中代码改变情况。 (责任编辑:oumao18) |