#define?DEBUG?1 #include?"CH57x_common.h" #include?"HAL.h" #include?"CH57xBLE_LIB.h" static?tmosTaskID?MyTaskID?=?INVALID_TASK_ID; __attribute__((section(".highcode"))) void?Main_Circulation() { ??while(1){ ????TMOS_SystemProcess(?); ??} } tmosEvents?MyTask_ProcessEvent(tmosTaskID?task_id,?tmosEvents?events)?{ ????PRINT("MyTask_ProcessEvent?invoked?\n"); ????return?0; } int?main()?{ ????bStatus_t?s; ????SetSysClock(?CLK_SOURCE_PLL_60MHz?); ????GPIOA_SetBits(?GPIO_Pin_9?); ????GPIOA_ModeCfg(?GPIO_Pin_8,?GPIO_ModeIN_PU?); ????GPIOA_ModeCfg(?GPIO_Pin_9,?GPIO_ModeOut_PP_5mA?); ????UART1_DefInit(); ????PRINT(?"Start?@ChipID=%02X\n",?R8_CHIP_ID?); ????HAL_Init(); ????MyTaskID?=?TMOS_ProcessEventRegister(MyTask_ProcessEvent); //????s?=?tmos_set_event(MyTaskID,?0U); ????s?=?tmos_start_task(MyTaskID,?0U,?1U); ????PRINT("s=%x\n",?s); ????Main_Circulation(); }
這是我參考藍(lán)牙部分的代碼 寫的 TMOS 最小的例子, 這里面有幾個(gè)問題
1. 如果我用?
s?=?tmos_set_event(MyTaskID,?0U);
則 tmos_set_event 返回是 3, 按頭文件的說法應(yīng)該是不成功,這里不知道為什么, 用 tmos_start_task 返回是 0
2.?
串口中沒有打印
Start?@ChipID=73 s=0 MyTask_ProcessEvent?invoked
串口僅打印
Start @ChipID=73
s=0
這和預(yù)期不符, 說明對應(yīng)的處理函數(shù)沒有被調(diào)度到
我這樣寫代碼是正確的嗎? 如果不正確應(yīng)該怎么寫?