| 
 不排除我看pdf,看的不仔细造成我理解有问题。  
void  OSSemCreate (OS_SEM      *p_sem,                    CPU_CHAR    *p_name,                    OS_SEM_CTR   cnt,                    OS_ERR      *p_err)  
cnt :信号量的初始值。如果此值为1,代表信号量为二进制信号量。                                                           如果大于1,则代表为计数型信号量。  
 以上是原子哥的教程10.1.1中原话。。 而我在仔细看任务同步那节教程是, 例子中有,         //创建一个信号量         OSSemCreate ((OS_SEM*        )&SYNC_SEM,                  (CPU_CHAR*        )"SYNC_SEM",                  (OS_SEM_CTR)0,                 
                 (OS_ERR*        )&err); 为啥cnt中被设置为0呀。纠结好久。 后来看 嵌入式实时操作系统uC/OS-III  这本书391页 void  OSSemCreate (OS_SEM      *p_sem,                    CPU_CHAR    *p_name,                    OS_SEM_CTR   cnt,                    OS_ERR      *p_err) cnt:大体意思就是  当信号量用于共享资源时,可以设置为1 (二进制)或者大于1(计数型)                           当用于信号机制,则该值应该设置为0. 在我理解中,信号机制 就应该是 任务同步  |