其实关于串口中间件的这个实验本身的应用程序部分很简单,我研究的目的主要是搞清楚整个运行过程以及所谓的驱动程序部分的编写技巧之类.....
先看main函数
OSInit(); //初始化操作系统,该串口实验是在UCOS操作系统上的多任务程序
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0); //创建一个任务TaskStart
OSStart(); //创建了一个任务之后,至少存在三个任务,因为有两个在初始化的时候就创建了,但是优先级是最低的两个
OSStart(); //创建了一个任务之后,至少存在三个任务,因为有两个在初始化的时候就创建了,但是优先级是最低的两个
最后运行OSStart函数,按照道理该函数是不会返回的...这时会首先运行TaskStart任务,看看其代码
void TaskStart(void *pdata)
{
uint8 *cp;
uint8 err;
{
uint8 *cp;
uint8 err;
pdata = pdata; /* 避免编译警告 */
Uart0ReviceMbox = OSMboxCreate(NULL); /* 建立邮箱 */
if (Uart0ReviceMbox == NULL) //当事件控制块没有可用的即为NULL,这时等待...
{
while (1);
}
if (Uart0ReviceMbox == NULL) //当事件控制块没有可用的即为NULL,这时等待...
{
while (1);
}
OSTaskCreate(TaskUart0Revice, (void *)0,
&TaskStk[TASK_STK_SIZE - 1],
&TaskStk[TASK_STK_SIZE - 1],