時分多線程技術在單片機中的應用
(3)線程管理
在時鐘中斷服務程序中,用任務號調度線程執(zhí)行次序。根據控制目標、設備狀態(tài)以及當前線程的執(zhí)行結果,選擇下一步將要執(zhí)行的任務號;而各任務線程執(zhí)行在主控循環(huán)程序中完成。也就是說,把時間片驅動以及任務調度與任務線程處理過程分開,這樣有利于構建靈活、高效的軟件框架結構,提高系統(tǒng)的實時響應能力與可維護性。
在以C8051F005芯片構建的應用系統(tǒng)中,為了縮短時間片中斷服務程序的執(zhí)行時間,提高系統(tǒng)的中斷響應能力,任務線程調度以及上下文切換控制在T2時鐘中斷服務程序中實現,以事件發(fā)生標識TstateChange和線程標識TimeSlice進行線程調度。TstateChange用于控制主控循環(huán)方向,TimeSlice則用于調度就緒線程的執(zhí)行次序。
為了降低系統(tǒng)功耗,提高系統(tǒng)可靠性,程序主控循環(huán)體在每個循環(huán)結束后都要使MCU進入體眠狀態(tài),并以時間片T2中斷、其他異步中斷源或引腳觸發(fā)事件等喚醒MCU。而TstateChange狀態(tài)標識量就是控制主控循環(huán)方向,以區(qū)分時間片任務線程調度與非T2等的異步中斷事件。其主控循環(huán)流程如圖1所示,其線程控制可以用如下程序結構實現。
該體系框架優(yōu)點在于:可方便地構建控制關系并行的多線程架構;任務線程的執(zhí)行時間明確;同時對調整任務線程執(zhí)行時序、維護功能模塊提供了便利。
缺陷是:由于構成的是非搶占式控制方式,在線程調度處理上不能確保時間關鍵的異步事件優(yōu)先執(zhí)行,這也是其器件內核的固有缺陷。
評論