|  于是今天就尝试自己做uC/OS-II的移植:(记下几个关键的步骤) 1.        OS_CPU.H OS_CRITICAL_METHOD=1       (51单片机使用方式1)
 #define OS_ENTER_CRITICAL()       EA=0#define OS_EXIT_CRITICAL()          EA=1
 
 因此       OS_STK_GROWTH      0
 任务切换由OSCtxSw()完成,OSCtxSw()由汇编语言写!
 InitHardware (void)reentrant              初始化硬件时钟中断
   2.        OS_CPU_C.C OSTaskStkInit()     关于堆栈。最后仅仅理解大致的步骤是怎样,但是目前要我自己写还是很有难度,最后则拷贝了网上下的对应的文件。
   3.        OS_CPU_A.ASM   4.        关于INCLUDES.H和uC/OS-II.C等一系列文件都要修改下头文件;而且源文件对于函数声明都要设置为可重入reentrant(KEIL在缺省情况下编译代码为不可重入) eg.   uC/OS-II.H    (790)void OS_TaskIdle (void *data);
 改为
 void OS_TaskIdle (void *data)reentrant;     (类似的要修改的实在太多了)
 
   5.        最后在网上找到一篇关于uC/OS-II移植到51的心得,很值得细看,许多问题都提到了:     好好坚持! btw-任务切换:OSTCBHighRdy必须指向优先级最高的任务控制块OS_TCB
 OSTCBHighRdy->OSTCBPrio     任务的优先级
 
 -任务在OSTaskCreate之后即进入就绪表。
 -就绪表:OSRdyGrp& OSRdyTbl[]
 
 -任务调度:OS_Sched中OS_TASK_SW()中都系汇编语言,未用心去睇。
 
 
 |