ucosii在PC上移植所用的文件

来源:互联网 发布:linux运行nodejs 编辑:程序博客网 时间:2024/05/17 04:16

首先下载安装BC45软件和Tasm软件,关于软件的下载和安装,百度里有一大堆资料,自己去找。

下面我来看看ucosii内核结构

在PC中移植主要用到的文件为uCOS-II.C ,  OS_CPU_C.C  , OS_CPU_A.ASM  .   PC.C  和自己写

的TEST.C文件

为什么要用这些文件呢?

uCOS-II.C文件的内容:

#include "\software\ucos-ii\source\os_core.c"

#include "\software\ucos-ii\source\os_flag.c"

#include "\software\ucos-ii\source\os_mbox.c"

#include "\software\ucos-ii\source\os_mem.c"

#include "\software\ucos-ii\source\os_mutex.c"

#include "\software\ucos-ii\source\os_q.c"

#include "\software\ucos-ii\source\os_sem.c"

#include "\software\ucos-ii\source\os_task.c"

#include "\software\ucos-ii\source\os_time.c"

uCOS-II.C中包含了所有uCOS-II.C内核的内容,所以肯定要用到的。

 

OS_CPU_C.C文件的内容是一些挂钩函数和OSTaskStkInit(),挂钩函数是以供用户在系统调用函

数中书写自己的代码用,他可以不包含任何代码,但必须声明,而OSTaskStkInit()是必要的函数

因为任务创建中要调用OSTaskStkInit()来初始化任务的堆栈。故移植时要用 OS_CPU_C.C。

 

OS_CPU_A.ASM文件内容是4个汇编函数:OSStartHighRdy(); OSCtxSW();OSIntCtxSw();OSTickISR();

在多任务启动OSStart()函数中调用OSStartHighRdy()来使就绪任务中优先级最高的任务开始运

行;

OSCtxSW(),OSIntCtxSw()分别为任务级的切换和中断级的切换,他们的代码差不多,区别只

是,在中断ISR中已经保存了CPU的寄存器而不需要在OSIntCtxSw()中保存CPU的寄存器。

OSTickISR()为时钟节拍中断服务程序,一般都是在OSStart()运行后的第一个任务中初始化节拍中

断。他提供的是时间延迟和超时的功能。

 

PC.C文件主要包含3类服务:字符显示、运行时间测量及一些其他服务。

 

原创粉丝点击