剖析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(;;)
{
用户代码
调用的系统服务
}
}
用户可以按照这些格式去编写自己的任务,建立自己的应用系统。
- UCOS-II 操作系统在数码相框中的应用(03-02)
- ucOS-II消息邮箱的使用(06-14)
- uCOS-II在ARM移植中的中断处理(06-28)
- 7个基于STM32单片机的精彩设计实例,附原理图、代码等相关资料(06-04)
- 从入门到开发,STM32F407单片机全中文教程(06-04)
- STM32F407单片机使用攻略:中文手册、实战问答20篇(06-04)