一 UcosII基本介绍
1.1 UCOSII特点
A:源代码开发
B:微内核
C:内核与应用软件没有区分
(共享同一个地址空间,一个映像,一个main()入口函数)
D:易移植
基本结构图如下:
1.2 UCOSII源代码组成
核心部分:os_core.c
操作系统的处理核心。包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里
任务处理部分:os_task.c
与任务的操作密切相关,包括任务的建立、删除、挂起、恢复等等。
时钟部分:os_time.c
uC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作在这里完成的
任务同步和通信部分: os_sem.c os_mutex.c os_flag.c os_mbox.c os_q.c
事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。
与CPU的接口部分
主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。由于涉及SP等系统指针,通常用汇编语言编写。
UCOS源码V2.92
http://pan.baidu.com/s/1kV4m4kv
Source文件夹下
Ports文件夹下:移植相关文件
os_cpu.h: 进行数据类型定义,处理器相关代码和几个函数原型。
os_cpu_c.c: 定义一些用户 hook 函数。
os_cpu_a.asm: 移植需要用汇编代码完成的函数,主要就是任务切换函数。
os_dbg.c: 内核调试相关数据和函数,可以不改
1.3 新建工程
工程里面建立了三个文件夹来存放ucosii的代码。根据自己的喜好建立
1、将Source文件夹里面的文件拷贝到CORE文件夹里面,这里面的文件是ucos的核心代码,不用修改。
2、将Ports文件夹里面的文件拷贝到PORTS文件夹里面,这里就是移植的核心部分。
3、返回上一级文件夹,将“os_cfg.h”这个文件拷贝到CONFIG这个文件夹里面, ...\ucos\App\”这个路径下,“includes.h”这个文件,拷贝到CONFIG这个文件夹里面。
4、在MDK添加文件,如下图所示