TMOS問(wèn)題請(qǐng)教

在BLE broadcaster基礎(chǔ)上測(cè)試TMOS調(diào)度,發(fā)現(xiàn)在ProcessEvent里第一行增加PRINT("LED_Process:%x\n",events);能正常調(diào)度,注釋掉這行就不行,非常神奇,附件是完整代碼包,幫忙看看什么原因,謝謝。

icon_rar.gifEVT.rar

深入測(cè)試了一下,發(fā)現(xiàn)和這個(gè)打印語(yǔ)句中的\n有關(guān)系,去掉\n不能調(diào)度,加上\n能正常調(diào)度。


uint16_t LED_ProcessEvent(uint8_t task_id, uint16_t events)

{


? ? PRINT("LED_Process:%x\n",events);

? ? ? ? //消息處理

? ? if ( events & SYS_EVENT_MSG )

? ? {

? ? ? ? uint8_t *pMsg;

? ? ? ? if ( (pMsg = tmos_msg_receive( task_id )) != NULL )

? ? ? ? {

? ? ? ? ? ? //消息處理

? ? ? ? ? //? demo_task_process_TMOSMsg( (tmos_event_hdr_t *)pMsg );

? ? ? ? ? ? //釋放消息空間

? ? ? ? ? ? tmos_msg_deallocate( pMsg );

? ? ? ? }

? ? ? ? // return unprocessed events

? ? ? ? return (events ^ SYS_EVENT_MSG);

? ? }


? ? if(events & LED_4)

? ? {

? ? ? ? // Start the Device

? ? ?//? ?DelayMs(1000);

? ? ? ? PRINT("LED4");

? ? ? ? GPIOA_InverseBits(bPWM7);//PB4

? ? ? ? tmos_start_task(LedFlashTaskId, LED_4, 1600);

? ? ? ? return (events ^ LED_4);

? ? }


? ? if(events & LED_7)

? ? {

? ? ? //? DelayMs(1000);

? ? ? ? PRINT("LED7");

? ? ? ? GPIOA_InverseBits(bPWM7);//PB4

? ? ? ? tmos_start_task(LedFlashTaskId, LED_7, 1600);

? ? ? ? return (events ^ LED_7);

? ? }




? ? // Discard unknown events

? ? return 0;

}


你這邊的情況應(yīng)該不是任務(wù)無(wú)法調(diào)度,而是打印的問(wèn)題,打印是需要加\n的,也可勾上下圖的配置不加\n試試,如果添加io翻轉(zhuǎn)但沒(méi)有實(shí)現(xiàn)翻轉(zhuǎn)則可能是tmos任務(wù)設(shè)置出了問(wèn)題。

emobile_2022-02-21_10-23-59.png


您好,按照加\n或者勾選的方式確實(shí)可以解決問(wèn)題,但是我還有個(gè)疑問(wèn),在CH57X_BLEInit();函數(shù)前的打印,我不加\n是可以輸出的,所有是不是說(shuō)這個(gè)打印加\n和藍(lán)牙初始化或者tmos的初始化有關(guān)?

捕獲.PNG

另:任務(wù)確實(shí)是在調(diào)度的。


還有個(gè)現(xiàn)象是這樣的,沒(méi)加\n也沒(méi)勾選那個(gè)配置項(xiàng)的,系統(tǒng)跑1分鐘左右也會(huì)把打印全部輸出出來(lái),如下圖捕獲.PNG


  1. 打印是和我們的CH57x_BLEInit()函數(shù)沒(méi)有關(guān)系的,只能打印調(diào)用的哪個(gè)庫(kù)有關(guān)系,上面你說(shuō)在初始化之前不加\n可以打印,其實(shí)把你那打印放到下面也可以,能不能打印取決于你后面的代碼有沒(méi)有轉(zhuǎn)行,從你貼的打印中看出,后面的代碼是有轉(zhuǎn)行的。

  2. 后面沒(méi)勾我們的wch打印配置,系統(tǒng)在一分鐘左右打印全部輸出出來(lái)的原因可能是打印緩存的空間滿了,然后就全部打印出來(lái)了。

    這邊在使用時(shí)建議勾選我們的wchprint。


不對(duì)啊,我現(xiàn)在的情況就是放在task內(nèi)部的打印不能打印,加\n可以打?。环旁赽lelibinit前的可以正常打印,加不加\n都不影響打印。

要不跑一跑我的代碼測(cè)試一下?


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频