一個輕量級事件驅(qū)動嵌入式系統(tǒng)應(yīng)用框架Quantum Platform
QP(Quantum Platform)
是一個輕量級的、開源的、基于狀態(tài)機的、事件驅(qū)動型應(yīng)用程序框架。這個框架包括四部分:
-
事件處理器(QEP); -
輕量級的事件驅(qū)動框架(QF); -
任務(wù)調(diào)度微內(nèi)核(QV、QK、QXK); -
實時跟蹤調(diào)試器(QS)。
(1)QEP
-
Quantum Event Processor
是一個通用的,可移植的,可重用的狀態(tài)機引擎。 -
QEP允許你直接把UML樣式的狀態(tài)圖映射為代碼。 -
QEP提供了傳統(tǒng)的簡單平面狀態(tài)機和層次式狀態(tài)機。QEP可以直接操作事隊列和事件分發(fā)機制。
(2)QF
-
QF是一個通用的,事件驅(qū)動的應(yīng)用框架,是一個實時框架,面向嵌入式系統(tǒng)。 -
QF被設(shè)計成和QEP,RTOS協(xié)同工作。 -
QF包含了事件隊列,活動對象,事件遍歷等。
(3)QK
-
QK是一個輕量級可搶占型實時內(nèi)核 -
QK是一個極小的,按RTC習(xí)慣的,執(zhí)行獨立任務(wù)的內(nèi)核。 -
QK必須和QF版本相匹配。
(4)QS
-
一個強大的調(diào)試工具
QEP (Hierarchical Event Processor)
事件處理器,也可以理解為一個狀態(tài)機引擎,當(dāng)有事件需要處理時,調(diào)用當(dāng)前狀態(tài)的狀態(tài)函數(shù)處理這個事件,并處理調(diào)用狀態(tài)函數(shù)的返回值,根據(jù)返回值進行相應(yīng)的狀態(tài)變換(如轉(zhuǎn)移到父狀態(tài))。而且狀態(tài)引擎也處理某狀態(tài)的進入(ENTER)、退出(EXIT)、初始偽狀態(tài)(INIT)。
QF (Active-Object Framework)
QF是輕量級的、事件驅(qū)動、active objects框架。這個框架的主要任務(wù)是保證每個active object的線程安全,運行-到-完成(run-to-completion )的事件處理。它包含了直接的事件傳送,發(fā)布-訂閱(publish-subscribe)的事件轉(zhuǎn)發(fā),事件隊列,時間事件(延時傳送時間事件)。
QV (Cooperative Kernel)
協(xié)作內(nèi)核(Vanilla內(nèi)核),它只在time to completion的時候處理event,并在處理所有event后,對active object執(zhí)行基于priority-based的調(diào)度器。它是隱式合作(implicitly-cooperative),因為活躍定時器不需要明確的放棄CPU。代替的是在完成事件處理后,簡單的return到QV調(diào)度器中。
QK (Preemptive Non-Blocking Kernel)
QK是一個超快速的搶占式,基于優(yōu)先級的,單stack,實時內(nèi)核專門為執(zhí)行active objects而設(shè)計的。它總是會處理event queued中的高優(yōu)先級的active objects,但它將event當(dāng)作一次性的函數(shù)來調(diào)用(而不是像傳統(tǒng)內(nèi)核那樣的endless循環(huán))。盡管如此,如果新的事件優(yōu)先級比當(dāng)前處理的事件優(yōu)先級高,QK內(nèi)核依然提供了搶占式的一次性的event處理功能(像搶占式中斷處理器允許中斷彼此搶占)。這意味著,QK可以使用單stack來保存所有active objects的context。
QXK (Preemptive Blocking Kernel)
QXK是一個簡單的搶占,基于優(yōu)先級的,阻塞,實時內(nèi)核專門為傳統(tǒng)的阻塞代碼的主動對象,如商用中間件(TCP / IP協(xié)議棧,UDP協(xié)議棧,嵌入式文件系統(tǒng)等)或遺留代碼混合設(shè)計。
QS (Software Tracing System)
QS是軟件追蹤系統(tǒng),使開發(fā)人員能夠以最少的系統(tǒng)資源監(jiān)控目標(biāo),并沒有停止或顯著放緩代碼直播事件驅(qū)動QP的應(yīng)用程序。QS是用于測試,故障排除和優(yōu)化QP應(yīng)用的理想工具。QS甚至可以用于支持產(chǎn)品制造驗收測試。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!