1、将uCos-II移植到ARM9开发板上

   1)搞清应用程序(user子目录)、uCos-II内核文件(ucosii目录)、移植文件(ports子目录)和BSP(ports子目录)之间的关系。

   2)移植文件(ports子目录文件)介绍

   bsp.h:宏定义一些芯片外设寄存器地址和自定义函数声明;

   bsp.c:OS_CPU_ExceptHndlr()用户编写的中断处理函数,

          myInitHookBegin()任务初始化时的钩子函数 完成初始化工作;

   startup.s:芯片上电后的初始化工作;

   os_cfg.h:为ucos-ii定义配置常量;

   os_dbg.c:为ucos-ii及其配置提供在线调试信息;

   os_cpu.c:自定义数据类型,

             关闭中断OS_ENTER_CRITICAL(),

             恢复CPSR寄存器状态OS_EXIT_CRITICAL(),

             任务级的切换调用宏函数 OS_TASK_SW(),

             用户需要编写的异常处理函数 OS_CPU_ExceptHndlr();

   os_cpu_c.c:“钩子”函数

                 OSInitHookBegin() { 。。myInitHookBegin();。。}自定义的系统初始化函数,

                 OSTaskStkInit()完成任务的入栈操作,

                 OSTaskCreateHook() {。。App_TaskCreateHook();。一般放在bsp.c或其他用户编写的文件中。}等;

   os_cpu_a.asm:OSStartHignRdy函数 出栈操作,OSCtxSw 和 OSintCtxSw 代码段。

2、uCos-ii内核与面向任务程序设计

1)内核OS_CORE.c   

   (1)任务控制块OS_TCB

   (2)事件控制块OS_EVENT

   (3)就绪表OSRdyGrp和OSRdyTb1

   (4)空闲任务OS_TaskIdleHook()和统计任务OS_TaskStat()

   (5)时钟节拍  中断服务程序调用 OSTimeTick()

2)任务OS_Task.c

   (1)OSTaskCreat() 和 OSTaskCreatExt() 任务创建

   (2)OSTaskDelReq() 和 OSTaskDel() 任务退出请求 和 执行

   (3)OSTaskNameSet()和 OSTaskNameGet()任务名字设置 和 读取

   (4)OSTaskSuspend() 和 OSTaskResume() 任务挂起 和 重启

   (5)OSTaskQuery() 和 OSTaskChangePrio()

3)时间OS_TIME.c

    (1)OSTimeDly()

    (2)OSTimeDlyHMSM()

    (3)OSTimeGet()

    (4)OSTimeTick()