#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(); }
这是我参考蓝牙部分的代码 写的 TMOS 最小的例子, 这里面有几个问题
1. 如果我用
s = tmos_set_event(MyTaskID, 0U);
则 tmos_set_event 返回是 3, 按头文件的说法应该是不成功,这里不知道为什么, 用 tmos_start_task 返回是 0
2.
串口中没有打印
Start @ChipID=73 s=0 MyTask_ProcessEvent invoked
串口仅打印
Start @ChipID=73
s=0
这和预期不符, 说明对应的处理函数没有被调度到
我这样写代码是正确的吗? 如果不正确应该怎么写?