struct rt_semaphore* BLE_sem;
struct rt_semaphore* MOTOR_sem;
struct rt_semaphore* WH4G_sem;
struct rt_semaphore* VOICE_sem;`
tid = rt_sem_init(BLE_sem,"BLE_sem",0,RT_IPC_FLAG_FIFO);
if(tid!=RT_EOK) printf("BLE_sem init failed\r\n");else printf("BLE_sem init successed\r\n");
//
// tid = rt_sem_init(MOTOR_sem,"MOTOR_sem",0,RT_IPC_FLAG_PRIO);
// if(tid!=RT_EOK) printf("MOTOR_sem init failed\r\n");else printf("MOTOR_sem init successed\r\n");
//
// tid = rt_sem_init(WH4G_sem,"WH4G_sem",0,RT_IPC_FLAG_PRIO);
// if(tid!=RT_EOK) printf("WH4G_sem init failed\r\n");else printf("WH4G_sem init successed\r\n");
//
// tid = rt_sem_init(VOICE_sem,"VOICE_sem",1,RT_IPC_FLAG_FIFO);
// if(tid!=RT_EOK) printf("VOICE_sem init failed\r\n");else printf("VOICE_sem init successed\r\n");
现象是,我初始化一个信号量不会有问题;但是初始化多于一个信号量时,在第二个初始化的过程中,会跳转到“故障异常处理程序”中。
有哪位仁兄知道是什么原因吗?
BLE_sem
这些被声明成了指针,并没有给其结构体分配空间。
struct rt_semaphore BLE_sem;
rt_sem_init(&BLE_sem, ...);
谢谢,就是这个问题
BLE/MOTOR/4G/VOICE
看你这变量名,你这是做个啥啊!
@aozima 项目需要,以及函数名的见名知意