










摘要:為了能清晰理解事件的工作原理與機(jī)制,通過分析事件在實(shí)時(shí)操作系統(tǒng)中的作用、響應(yīng)原理及流程,基于KL36微控制器采用類PC機(jī)的printf輸出法,從調(diào)度過程時(shí)序、響應(yīng)時(shí)間性能等方面剖析了mbedOS的事件響應(yīng)機(jī)制。實(shí)驗(yàn)結(jié)果表明,通過printf函數(shù)能將事件響應(yīng)過程的線程地址、隊(duì)列地址、隊(duì)列內(nèi)容、線程進(jìn)出隊(duì)列情況以及事件位等信息直觀輸出,為讀者從底層理解mbedOS的事件響應(yīng)原理和流程提供便利,也為分析mbedOS的其他同步與通信手段的脈絡(luò)結(jié)構(gòu)提供方法借鑒。
關(guān)鍵詞:實(shí)時(shí)操作系統(tǒng):事件響應(yīng)機(jī)制;printf輸出:mbedOS實(shí)時(shí)操作系統(tǒng);KL36芯片
中圖分類號(hào):TP316.2 文獻(xiàn)標(biāo)志碼:A
0 引言
在開發(fā)嵌入式系統(tǒng)過程中,為提高系統(tǒng)的實(shí)時(shí)響應(yīng)需求,通常會(huì)加入實(shí)時(shí)操作系統(tǒng)(RTOS:Real-Time Operating System),通過其對(duì)任務(wù)的調(diào)度和同步機(jī)制可提高CPU的使用效率,滿足系統(tǒng)的響應(yīng)要求,從而實(shí)現(xiàn)任務(wù)間平穩(wěn)有序運(yùn)行。
為協(xié)調(diào)任務(wù)之間或任務(wù)與中斷間的同步,在不需要傳送數(shù)據(jù)時(shí),常以事件為手段。因此,剖析RTOS的事件響應(yīng)機(jī)制,能更好地從底層理解事件的響應(yīng)原理和任務(wù)調(diào)度方法,通過方法借鑒也為分析RTOS的其他同步與通信機(jī)制提供便利。
當(dāng)前,對(duì)事件響應(yīng)機(jī)制的剖析主要集中在MQX(Message Queue Xecutive)、uC/OSII、RTEMS(RealTime Executive for Multiprocessor Systems)等實(shí)時(shí)操作系統(tǒng)。例如,在MQX實(shí)時(shí)操作系統(tǒng)中,輕量級(jí)事件采用改變位的狀態(tài)傳遞信息,通過調(diào)用事件函數(shù)觸發(fā)SVC(Supervisor Call)中斷,改變?nèi)蝿?wù)的狀態(tài)和所在隊(duì)列,實(shí)現(xiàn)對(duì)任務(wù)的調(diào)度,達(dá)到任務(wù)間同步的目的。
在uC/OSII中采用事件標(biāo)志組實(shí)現(xiàn)多個(gè)任務(wù)協(xié)同控制一個(gè)任務(wù),通過判斷事件標(biāo)志組是否達(dá)到任務(wù)等待條件,決定對(duì)任務(wù)的調(diào)度與掛起。……