微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 剖析uCOS

剖析uCOS

时间:05-07 来源:互联网 点击:

写的模式

kernel提供给用户一些功能函数,使得用户的系统建立更加方便,但是kernel内部不会处理用户的工作,对于整个系统的具体应用工作还得需要用户自己去考虑,如何利用好这些功能服务函数就成为一个比较重要的问题.

1.main函数的结构

voidmain(void)

{

初始化系统的硬件;

OSInit();

任务的建立,消息机制的建立;

OSStart();

}

这里需要的是在OSStart()执行之前不得启动中断,硬件系统还不能工作.必须先让软件系统进入工作状态后才行.

2.中断的结构

ISR:

{

保存处理器寄存器的值;

调用OSIntEnter();

执行用户的工作;

调用OSIntExit();

恢复处理器寄存器的值;

RTI;

}

用户的中断形式和以前一样,没有什么大的变化,仅仅是在原来用户ISR的基础上在固定的位置加了两个函数:OSIntEnter(),OSIntExit().

3.各个任务的结构

voidYourTask(void)

{

for(;;)

{

用户代码

调用的系统服务

}

}

在任务启动函数执行完后,系统会切换到最高优先级的任务去执行,此时,可以将系统硬件部分的启动放在该任务的最前边,仅仅是启动时执行一次,主要是启动系统的节拍中断,或者一些必须在多任务系统调度后才能初始化的部分,使系统的真正开始工作,达到软件硬件的基本同步.

VoidHighestPrioTask(void)

{

OSStartHardware();

For(;;)

{

用户代码

调用的系统服务

}

}

用户可以按照这些格式去编写自己的任务,建立自己的应用系统。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top