OSStartHighRdy,OSCtxSw,OSTaskStkInit已经通过验证,现在进入验证OSIntCtxSW和OSTickISR, 用44b0的RTC的Tick做时钟节拍,RTC的Tick中断模块我验证过没问题,现在我初始化RTC的Tick时把pISR_TICK指向中断服务函数OSTickISR,程序如下:
void Rtc_Tick_init(void) { pISR_TICK=(unsigned)OSTickISR; //安装中断向量 rINTMSK=~(BIT_GLOBAL|BIT_TICK); rTICINT = 127+(1<<7); //START } /********************************************************************************************* 在OSTickISR中调用此函数*********************************************************************************************/ void tick_hook(void) { rI_ISPC=BIT_TICK; //清中断标志 }
/********************************************************************************************* * name: TestTask *********************************************************************************************/ void TestTask(void *pdata) { pdata = pdata; Rtc_Tick_init(); //初始化时钟节拍,1秒1次 while(1) { Uart_Printf("
### ############
"); OSTimeDly(5); } } /********************************************************************************************* * name: main *********************************************************************************************/ void Main(void) { sys_init(); Uart_Init(0,115200); Uart_Printf("
### Main Starts !
");
OSInit(); OSTaskCreate(TestTask, (void *)0, &TaskStk[0][TASK_STK_SIZE-1], 0); OSStart(); }
现在问题是 1:全速运行时输出 ### Main Starts ! ### ############ 只输出一次就没见反映了,停止运行AXD显示PC指向一堆DCD.... 2:单步运行时 程序执行到TestTask的Uart_Printf要串口输出时PC跳到0x14处, 此处指令为:bl 0x14 程序进入死循环
好几天,能想到都试过了,还是没反映,实在没辙了,各位大侠帮忙看看,谢谢 |