一種嵌入式實時作業系統的靜態配置方法
2023-10-08 08:13:59
專利名稱:一種嵌入式實時作業系統的靜態配置方法
技術領域:
本發明涉及嵌入式實時作業系統靜態配置領域,更具體的說,是涉及一種嵌入式實時作業系統的靜態配置方法。
背景技術:
嵌入式實時作業系統為了滿足嵌入式實時系統的特定需求一般都需要根據不同應用的需求採用不同的配置方案。比如,同一種嵌入式實時作業系統在不同的應用中可能提供不同數量的系統服務,而且作業系統的內部參數(如任務數量、任務屬性、資源數量、定時器數量等)也會有所不同。由於實時系統性能上的要求,大多數嵌入式實時作業系統都採用靜態配置的方法,也就是說對於系統的裁剪和配置是在系統編譯時進行的。
目前大多數使用靜態配置的嵌入式實時作業系統(如μC/OS、OSEK Turbo等是利用宏和條件編譯技術實現靜態配置的,也就是說在進行系統配置時用戶需要手工修改作業系統特定部分的原始碼,然後再對系統進行重新編譯。這種方法的缺點是,不同的作業系統必須採用不同配置方法,系統配置者不但要熟悉具體的應用需求還要熟悉作業系統的實現細節。當一種作業系統的實現細節隨著版本更新發生變化或者當應用程式從一種作業系統移植到另一種作業系統時就必須對系統原始碼的不同部分採用不同方法進行手工修改。這種配置方式自動化程度低、易出錯,降低了系統的開發效率和系統的可移植性,因此嵌入式實時作業系統需要一種更自動化、更高效的靜態配置方法。
發明內容
本發明的主要目的在於克服現有技術中的不足,提供了一種嵌入式實時作業系統的靜態配置方法。
為了解決上述技術問題,本發明是通過以下技術方案實現的。
一種嵌入式實時作業系統的靜態配置方法,包括以下步驟
(1)定義系統描述語言該系統描述語言用於在CPU上配置應用程式;系統描述語言通過定義和描述對象來配置實際應用程式;一個對象對應於嵌入式實時作業系統中的一種實體;(2)使用系統描述語言編寫系統描述文件用戶通過使用系統描述語言編寫系統描述文件來描述應用程式;系統描述文件分為實現描述文件和應用描述文件實現描述文件描述作業系統的特性,它定義了一個對象集合,並為每一個對象定義一個屬性集,而對每一個屬性又定義了屬性的特徵;應用描述文件描述特定的應用,它根據實際應用情況定義對象,並為對象設置屬性;(3)作業系統提供者提供配置軟體,配置軟體通過解析系統描述文件來獲取系統的配置信息,然後自動生成特定作業系統的配置文件對系統進行配置。
作為一種改進,所述的實體是作業系統、任務、中斷服務程序、資源、計數器、定時器、事件、消息。
作為一種改進,所述的對象使用一個屬性集來描述其特點。
作為一種改進,所述的應用描述文件中定義的對象必須是實現描述文件中定義過的對象,不能定義實現描述文件中沒有的對象,對對象屬性的設置符合實現描述文件定義中的描述。
作為一種改進,所述對象中包括一種特別對象CPU,該對象CPU表示實際運行程序的CPU,沒有屬性,不在實現描述文件中定義。
作為一種改進,對於特定的作業系統,其系統對象集合是固定的,不同應用和系統實現的差異通過對象屬性集合的不同體現出來在實現描述文件中,一個對象的定義由數據類型、自動計算屬性、取值範圍和默認值四部分組成。
作為一種改進,所述的數據類型包括32位無符號整數、32位有符號整數、64位無符號整數、64位有符號整數、浮點數、枚舉類型、邏輯類型、字符串和引用類型。
作為一種改進,每一個屬性都有一個默認值,當該屬性沒有被人工指定值時配置工具將為其設定默認值。
與現有技術相比,本發明的有益效果是(1)實時作業系統實現者通過實現描述文件描述系統實現的細節並對系統屬性的配置進行約束,用戶對該實時作業系統的配置必須符合該約束,因此本發明減少了由於不當配置引入系統錯誤的概率。
(2)符合同一標準的不同實時作業系統可以使用同一系統實現文件,因此對應的應用描述文件有相同的格式,同一個應用的應用描述文件可以適用於符合相同標準的不同實時作業系統的實現版本,提高了應用的移植性。
(3)用戶只需要學習如何編寫應用描述文件而不需要學習實時作業系統實現細節,縮小了學習使用實時作業系統的周期,利於實時作業系統的推廣。
(4)本發明便於通過計算機軟體實現自動配置,提高了工作效率。
圖1本發明配置框圖。
圖2本發明配置流程圖。
圖3實現描述文件示例圖。
圖4應用描述文件示例圖一。
圖5應用描述文件示例圖二。
具體實施例方式
結合附圖,下面對本發明進行詳細說明。
本發明提供了一種嵌入式實時作業系統的靜態配置方法。該方法提供一種特定的系統描述語言對嵌入式應用程式進行配置。在該方法中,作業系統提供者使用系統描述語言描述作業系統的實現細節,而應用開發者使用系統描述語言描述具體的應用,然後使用系統配置軟體根據上述兩種描述自動生成不同作業系統所需的配置文件。使用該方法的好處是,當作業系統的實現或具體應用發生變化時,只需要修改特定的系統描述文件就能快速地進行系統的重新配置,從而提高了用戶使用嵌入式實時作業系統開發應用的便利性,增強了系統的可移植性。
用戶通過使用系統描述語言編寫系統描述文件來描述應用程式。系統描述文件分為實現描述文件和應用描述文件兩部分。實現描述文件描述特定作業系統的特性,它定義了一個對象集合,並為每一個對象定義一個屬性集,而對每一個屬性又定義了屬性的特徵。應用描述文件描述特定的應用,它根據實際應用的情況定義對象,並為對象設置屬性。應用描述中定義的對象必須是實現描述中定義過的對象,不能定義實現描述中沒有的對象,對於對象屬性的設置也必須符合實現定義中的描述。所有對象中有一種對象比較特別,就是CPU,它表示實際運行程序的CPU,它作為所有對象的容器,沒有屬性,不需要在實現描述文件中定義。
作業系統提供者需要提供配置軟體,配置軟體通過解析系統描述文件來獲取系統的配置信息,然後自動生成特定作業系統的配置文件對系統進行配置。
對於特定的作業系統,其系統對象集合是固定的,不同應用和系統實現的差異通過對象屬性集合的不同體現出來。在實現描述中,一個對象的定義由數據類型、自動計算屬性、取值範圍和默認值四部分組成。
屬性的數據類型包括如下幾種32位無符號整數UINT32取值範圍0到232-132位有符號整數INT32取值範圍-231到231-164位無符號整數UINT64取值範圍0到264-164位有符號整數INT64取值範圍-263到263-1浮點數FLOAT符合IEEE-754標準的浮點類型枚舉類型ENUM表示對應屬性只能取枚舉集中的某個值。比如ENUM[NON,FULL]SCHEDULE;表明SCHEDULE屬性只能取NON或FULL兩個值。每個枚舉值還可以指定一個或多個參數。比如ENUM[ACTIVATETASK{TASK_TYPE TASK;},SETEVENT]ACTION;表明ACTION屬性可以取ACTIVATETASK和SETEVENT兩個值,其中ACTIVATETASK包括類型為TASK_TYPE的屬性TASK,而SETEVENT不包括參數。
邏輯類型BOOLEAN其取值為TRUE(邏輯真)和FALSE(邏輯假)字符串STRING任意包括在雙引號中的8比特字符(不包括雙引號本身)序列為一個字符串。
引用類型
引用類型用來引用一個系統對象。引用可以被用來在對象間建立連接關係。一個名為A的對象對應的數據類型為A_TYPE。比如,任務對象(TASK)中的資源屬性定義了該任務佔用的資源,它是另一種系統對象(RESOURCE),於是可以如下定義屬性USERESRESOURCE_TYPE USERRES;此外當一個屬性可以取同一類型的多個值時可定義該屬性為取多值的屬性。比如一個任務可以佔用多個資源,則上述的USERES屬性就是一個取多值的屬性,定義如下RESOURCE_TYPE USERRES[];某些屬性值可能是系統配置工具自動計算的,這樣的屬性在實現描述中用WITH_AUTO關鍵字說明,相應的屬性在應用描述中不是由用戶設定特定值,而是設置成AUTO,由配置工具可以設置屬性。
此外,每一個屬性都必須指定一個默認值,當該屬性沒有被人工指定值時配置工具將為其設定默認值。沒有默認值的屬性必須把默認值設為NO_DEFAULT,這樣的屬性必須在應用描述中指定屬性值。比如INT32 param=5,表示param值無法自動計算,默認值為5。
INT32 WITH_AUTO param=NO_DEFAULT,表示param值是自動計算的,沒有默認值。
屬性如果有取值範圍,也要定義。取值範圍通過兩種方式定義INT32
param=5表示param的取值範圍為0~10的整數。
INT32[1,3,5]param=5表示param的取值範圍為1,3,5三個值中的一個。
按照本發明配置嵌入式實時作業系統的過程分如下幾步編寫實現描述文件;編寫應用描述文件;用配置軟體生成作業系統的配置文件和繼續系統開發。
這裡詳細說明如何使用本發明提出的方法對一種符合OSEK/VDX的作業系統SmartOSEK OS進行靜態配置。
首先編寫實現描述文件定義系統對象,SmartOSEK OS有如下對象OS一個OS對象表示運行在CPU上的作業系統,一個應用只能定義一個OS對象。
TASK一個TASK對象表示一個受OS控制的任務。
COUNTER一個COUNTER對象表示一個計數器,計數器對外部事件發生次數進行計數。
ALARM一個ALARM對象表示一個定時器,定時器根據計數器的值進行特定的周期性操作。
RESOURCE一個RESOURCE對象表示一個可以被任務佔用的資源。
EVENT一個EVENT對象表示一個特定的事件,任務可以等待和響應事件。
ISR一個ISR對象表示一個中斷服務程序,當中斷發生時它將進行特定的操作。
對於每一種對象定義了屬性集合。
OS具有如下屬性調試狀態、鉤子點、是否使用調度器資源、調度方式。
TASK具有如下屬性是否可搶佔、是否自啟動、優先級、可激活次數、響應事件、佔用資源。
ISR具有如下屬性中斷類型、佔用資源。
COUNTER具有如下屬性最小周期、最大值、計數密度。
ALARM具有如下屬性對應計數器、動作(激活任務、設置事件或回調函數)、是否自啟動。
EVENT具有如下屬性掩碼值。
RESOURCE具有如下屬性資源類型。
該系統的應用描述文件如圖所示用戶使用作業系統時,根據不同的應用特徵編寫應用描述文件。應用描述文件可以通過手寫,也可以通過相應配置軟體生成。圖為本例子中使用的配置軟體。
在一個應用中,根據實際情況,設計者需要兩個任務、一個中斷服務程序。用戶首先定義OS對象,設置作業系統的整體的屬性。然後定義兩個TASK對象,分別設置相關屬性。最後定義一個ISR對象設置相關屬性。最後生成的應用描述文件如下。
最後使用配置工具解析描述文件,生成系統配置文件。在此配置文件為os_cfg.h,app_cfg.h,app_cfg.c。
當應用需求發生改變,需要增加一個由定時器激發的任務。這是需要在原有得應用描述文件中多定義一個TASK對象,一個COUNTER對象和一個ALARM對象並設置相應屬性,然後再使用配置工具重新生成描述文件。
當作業系統更新,配置方式發生變化時,系統提供者只需要更新配置軟體,用戶使用同樣的描述文件便能對系統進行配置。
最後,還需要注意的是,以上列舉的僅是本發明的一個具體實施例。顯然,本發明不限於以上實施例,還可以有許多變形。本領域的普通技術人員能從本發明公開的內容直接導出或聯想到的所有變形,均應認為是本發明的保護範圍。
權利要求
1.一種嵌入式實時作業系統的靜態配置方法,其特徵在於,包括以下步驟(1)定義系統描述語言該系統描述語言用於在CPU上配置應用程式;系統描述語言通過定義和描述對象來配置實際應用程式;一個對象對應於嵌入式實時作業系統中的一種實體;(2)使用系統描述語言編寫系統描述文件用戶通過使用系統描述語言編寫系統描述文件來描述應用程式;系統描述文件分為實現描述文件和應用描述文件實現描述文件描述作業系統的特性,它定義了一個對象集合,並為每一個對象定義一個屬性集,而對每一個屬性又定義了屬性的特徵;應用描述文件描述特定的應用,它根據實際應用情況定義對象,並為對象設置屬性;(3)作業系統提供者提供配置軟體,配置軟體通過解析系統描述文件來獲取系統的配置信息,然後自動生成特定作業系統的配置文件對系統進行配置。
2.根據權利要求1所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,所述的實體是作業系統、任務、中斷服務程序、資源、計數器、定時器、事件、消息。
3.根據權利要求1所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,所述的對象使用一個屬性集來描述其特點。
4.根據權利要求1所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,所述的應用描述文件中定義的對象必須是實現描述文件中定義過的對象,不能定義實現描述文件中沒有的對象,對對象屬性的設置符合實現描述文件定義中的描述。
5.根據權利要求1所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,所述對象中包括一種特別對象CPU,該對象CPU表示實際運行程序的CPU,沒有屬性,不在實現描述文件中定義。
6.根據權利要求1所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,對於特定的作業系統,其系統對象集合是固定的,不同應用和系統實現的差異通過對象屬性集合的不同體現出來在實現描述文件中,一個對象的定義由數據類型、自動計算屬性、取值範圍和默認值四部分組成。
7.根據權利要求6所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,所述的數據類型包括32位無符號整數、32位有符號整數、64位無符號整數、64位有符號整數、浮點數、枚舉類型、邏輯類型、字符串和引用類型。
8.根據權利要求6所述的一種嵌入式實時作業系統的靜態配置方法,其特徵在於,每一個屬性都有一個默認值,當該屬性沒有被人工指定值時配置工具將為其設定默認值。
全文摘要
本發明涉及嵌入式實時作業系統靜態配置領域,旨在提供一種嵌入式實時作業系統的靜態配置方法。該方法包括以下步驟(1)定義系統描述語言;(2)使用系統描述語言編寫系統描述文件;(3)作業系統提供者提供配置軟體,配置軟體通過解析系統描述文件來獲取系統的配置信息,然後自動生成特定作業系統的配置文件對系統進行配置。本發明減少了由於不當配置引入系統錯誤的概率;提高了應用的移植性;用戶只需要學習如何編寫應用描述文件而不需要學習實時作業系統實現細節,縮小了學習使用實時作業系統的周期,利於推廣;本發明便於通過計算機軟體實現自動配置,提高了工作效率。
文檔編號G06F9/44GK101013370SQ20071006722
公開日2007年8月8日 申請日期2007年2月8日 優先權日2007年2月8日
發明者趙民德, 楊國青, 李紅, 鬱利吉, 劉凱, 吳朝暉 申請人:浙江大學