码迷,mamicode.com
首页 > 其他好文 > 详细

UCOS 信号量

时间:2014-11-22 13:13:25      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   os   使用   sp   div   art   


5 OS_EVENT * Sem;//声明一个信号量 6 7 OS_STK xdata Task1Stack[CPU_MAX_STK_SIZE]; 8 OS_STK xdata Task2Stack[CPU_MAX_STK_SIZE]; 9 10 void Task1(void xdata * ppdata) reentrant 11 { 12 ppdata = ppdata; 13 while(1) 14 { 15 OSTimeDlyHMSM(0, 0, 2, 0); 16 printf("\nTask1_START\n"); 17 OSSemPend(Sem,0,&err);//请求信号量 18 printf("Task1_OK\n"); 19 OSSemPost(Sem); //发送信号量 20 } 21 } 22 23 void Task2(void xdata * ppdata) reentrant 24 { 25 ppdata = ppdata; 26 while(1) 27 { 28 OSTimeDlyHMSM(0, 0, 4, 0); 29 printf("\nTask2_START\n"); 30 OSSemPend(Sem,0,&err);//请求信号量 31 printf("Task2_OK\n"); 32 OSSemPost(Sem); //发送信号量 33 } 34 } 35 55 void main() 56 { 57 //....... 63 OSInit(); 65 printf("SYSTEM INIT OK\n"); 67 OSTaskCreate(Task2, (void xdata *)0, &Task2Stack[0],5); 68 OSTaskCreate(Task1, (void xdata *)0, &Task1Stack[0],6); 69 Sem = OSSemCreate(1); //定义信号量,二值信号量 70 OSStart(); 71 }

  例如有3个人需要使用一台打印机,但同一时候只能允许一个人使用这台打印机。这时候就需要一个信号量,先把信号量交给拥有最高优先权的人使用,当这个人使用完成的时候,释放这个信号量,把这个信号量交给当前拥有最高优先权的人。

  就是同一时间只能给一个人使用。

UCOS 信号量

标签:style   blog   ar   color   os   使用   sp   div   art   

原文地址:http://www.cnblogs.com/vhuichen/p/4115000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!