SysTick_Configuration();
OSInit();
SendCom = OSSemCreate(2);
OSTaskCreate(TASK0_Start, (void *)0, (OS_STK *)&TASK0_STK[TASK0_STK_SIZE-1], TASK0_Prio);
OSTaskCreate(TASK1, (void *)0, (OS_STK *)&TASK1_STK[TASK1_STK_SIZE-1], TASK1_Prio);
OSStart();
return 0;
我创建的信号量的值是2,只申请了1个ECB,
#define OS_MAX_EVENTS 2 //应用中最多事件控制块的数目 必须大于0。 定义的时候是2个
// ------------------------ 信号管理 ------------------------
#define OS_SEM_EN 1 //允许 (1) 或者禁止 (0) 产生信号量相关代码
#define OS_SEM_ACCEPT_EN 1 //允许生成OSSemAccept()
#define OS_SEM_DEL_EN 1 //允许生成OSSemDel()
#define OS_SEM_QUERY_EN 1 //允许生成OSSemQuery()
定义也是全部置1、、
void TASK0_Start(void *pdata)
{
INT8U *perr0;
OSSemPend(SendCom, 0, perr0);
while(1)
{
OSTimeDly(1000);
}
}
但是我调试的时候是,OSSemPend后,根部就没有到任务延时那里,
然后我再在OSSemPend里面调试,发现都是对的,直到最后return;然后再点下一步,就显示错误了
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP
不知道是为什么、、、 |