ucos代码阅读(1)

os_core.c 是 ucosii 的核心,它包含了内核初始化,任务切换,事件块管理等,
其中事件块是各个同步量(这里我把互斥量,信号量,邮箱,队列统称为同步量,
不是很科学,图个方便。事件标志组不是以事件块为基础的,不过原理也差不多)
的基础。os_task.c    任务管理代码。
os_flag.c 
os_mbox.c 
os_mutex.c 
os_q.c 
os_sem.c    各个同步量管理代码。
os_mem.c   内存管理代码。
os_time.c    时间管理代码,主要做各种延时。

os_tmr.c 

os_cpu.h:           进行数据类型定义,处理器相关代码和几个函数原型。
os_cpu_c.c:       定义一些用户 hook 函数。
os_cpu_a.asm:  移植需要用汇编代码完成的函数,主要就是任务切换函数。
os_dbg.c:           内核调试相关数据和函数,可以不改。


而版本286的结构

PORT


Source


APP


其中source中的所有模块都包括了ucos_ii.h这个文件的内容是定义所有模块都会用到的类型,和函数声明

1) #include <app_cfg.h>  debug  应用程序的配置
#include <os_cfg.h>                         操作系统的配置
#include <os_cpu.h>                       CPU的配置

2) 宏定义

3)类型定义

4)全局变量(声明、定义)

5)函数的声明

这个顺序很好


main函数中队ucos的使用

OSInit(); 

OSTaskCreate(startup_task, (void *)0, &startup_task_stk[STARTUP_TASK_STK_SIZE - 1], STARTUP_TASK_PRIO); 

OSTaskCreate(task1,        (void *)0, &task1_stk[APP_TASK_1_STK_SIZE-1],            APP_TASK_1_PRIO);

OSTaskCreate(task2,        (void *)0, &task2_stk[APP_TASK_2_STK_SIZE-1],            APP_TASK_2_PRIO);

               OSStart(); 

过程是系统初始化,然后创建任务,然后开启多任务




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值