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()
本文出自 “Mr~钟” 博客,请务必保留此出处http://6386296.blog.51cto.com/6376296/1175721