app執(zhí)行時間不固定

我設(shè)置了一個任務(wù),大概30ms的周期,但是打印記錄顯示執(zhí)行間隔從20ms 到70ms不等,為什么會相差這么大呢?

  1. 是否執(zhí)行了很多任務(wù)導致任務(wù)阻塞,

  2. 任務(wù)的處理是只有打印還是耗時較長,

    emobile_2022-04-08_13-35-55.png

    測試的結(jié)果任務(wù)的執(zhí)行均在30ms左右。


[21:50:56.104]收←◆Q

[21:50:56.164]收←◆Q

[21:50:56.234]收←◆Q

[21:50:56.294]收←◆Q

[21:50:56.354]收←◆Q

[21:50:56.414]收←◆Q

[21:50:56.484]收←◆Q

[21:50:56.544]收←◆Q

[21:50:56.604]收←◆Q

[21:50:56.664]收←◆Q

[21:50:56.734]收←◆Q

[21:50:56.794]收←◆Q

[21:50:56.854]收←◆Q

[21:50:56.914]收←◆Q

[21:50:56.984]收←◆Q

[21:50:57.044]收←◆Q

[21:50:57.104]收←◆Q

[21:50:57.164]收←◆Q

[21:50:57.224]收←◆Q

[21:50:57.294]收←◆Q

[21:50:57.354]收←◆Q

[21:50:57.414]收←◆Q

[21:50:57.474]收←◆Q

[21:50:57.544]收←◆Q

[21:50:57.604]收←◆Q

[21:50:57.664]收←◆Q

[21:50:57.724]收←◆Q

[21:50:57.794]收←◆Q

[21:50:57.854]收←◆Q

[21:50:57.914]收←◆Q

[21:50:57.984]收←◆Q

[21:50:58.044]收←◆Q

[21:50:58.104]收←◆Q

[21:50:58.164]收←◆Q

[21:50:58.234]收←◆Q

[21:50:58.294]收←◆Q

[21:50:58.354]收←◆Q

[21:50:58.414]收←◆Q

[21:50:58.474]收←◆Q

[21:50:58.544]收←◆Q

[21:50:58.604]收←◆Q

[21:50:58.664]收←◆Q

[21:50:58.734]收←◆Q

[21:50:58.794]收←◆Q

[21:50:58.854]收←◆Q

[21:50:58.914]收←◆Q

[21:50:58.974]收←◆Q

[21:50:59.044]收←◆Q


任務(wù)執(zhí)行時間不固定,有的60ms 有的70ms


我就一個任務(wù)運行,也沒有開其他中斷

DA217_TaskID = TMOS_ProcessEventRegister( DA217_ProcessEvent );

任務(wù)里就打印一個字符

uint16 DA217_ProcessEvent( uint8 task_id, uint16 events)

{

//DA270ReadXYZData();

PRINT("Q");

? ? ? tmos_start_task( DA217_TaskID, DA217_SBP_PERIODIC_EVT, DA217_PERIODIC_EVT_PERIOD );

? ? return (events ^ DA217_SBP_PERIODIC_EVT);

}


不是的什么原因?


如果是開了睡眠的話,可以這樣處理看看,注釋這部分代碼替換成1ms延時,

emobile_2022-04-13_10-16-04.png



[21:42:25.827]收←◆Q

[21:42:26.023]收←◆Q

[21:42:26.203]收←◆Q

[21:42:26.395]收←◆Q

[21:42:26.585]收←◆Q

[21:42:26.765]收←◆Q

[21:42:26.955]收←◆Q

[21:42:27.145]收←◆Q

[21:42:27.335]收←◆Q

[21:42:27.520]收←◆Q

[21:42:27.710]收←◆Q

[21:42:27.890]收←◆Q

[21:42:28.080]收←◆Q

[21:42:28.270]收←◆Q

[21:42:28.455]收←◆Q

[21:42:28.645]收←◆Q

[21:42:28.835]收←◆Q

[21:42:29.015]收←◆Q

[21:42:29.205]收←◆Q

[21:42:29.390]收←◆Q

[21:42:29.580]收←◆Q

[21:42:29.770]收←◆Q

[21:42:29.960]收←◆Q

[21:42:30.140]收←◆Q

[21:42:30.330]收←◆Q

[21:42:30.514]收←◆Q

[21:42:30.704]收←◆Q

[21:42:30.894]收←◆Q

[21:42:31.084]收←◆Q

[21:42:31.264]收←◆Q

[21:42:31.458]收←◆Q

[21:42:31.648]收←◆Q

[21:42:31.828]收←◆Q

[21:42:32.018]收←◆Q

[21:42:32.208]收←◆Q

[21:42:32.396]收←◆Q

[21:42:32.576]收←◆Q

[21:42:32.766]收←◆Q

[21:42:32.956]收←◆Q

[21:42:33.146]收←◆Q

[21:42:33.326]收←◆Q



我關(guān)閉睡眠,還是會有10ms誤差


我看你截圖,這里的時間誤差很大


1.PNG


這個時間的問題可能是串口打印助手的問題,在任務(wù)里 翻io口,用邏輯分析儀抓發(fā)現(xiàn)沒什么問題。

使用RTC_GetCycle32k();獲取時間計算發(fā)現(xiàn)時間戳50ms有誤差時,計算結(jié)果為60ms,也是沒有問題的。


只有登錄才能回復,可以選擇微信賬號登錄

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