CPU_BOOLEAN BSP_OS_SemCreate (BSP_OS_SEM *p_sem,
BSP_OS_SEM_VAL sem_val,
CPU_CHAR *p_sem_name)
{
OS_ERR err;
OSSemCreate((OS_SEM *)p_sem,
(CPU_CHAR *)p_sem_name,
(OS_SEM_CTR )sem_val,
(OS_ERR *)&err);
if (err != OS_ERR_NONE) {
return (DEF_FAIL);
}
return (DEF_OK);
}
static void AppObjCreate (void)
{
/* 创建同步信号量 1 */
BSP_OS_SemCreate(&SEM_KEY,
0,
(CPU_CHAR *)"SEM_KEY");
/* 创建同步信号量 2*/
BSP_OS_SemCreate(&SEM_RTC,
0,
(CPU_CHAR *)"SEM_RTC");
}
问题如下:
产生同步信号量 1 ,2 兑换先后顺序,则产生的同步信号量不起作用,也就无效,但是按照上面的先后顺序,产生的同步信号量可以正常使用,这是何故啊 ???
rtc的同步信号量是在rtc的中断函数里面进行发送,美妙发送一次,key是通过按键发送的,
一个任务等带rtc信号量,另外一个任务等待key信号量。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>