一種嵌入式軟體支撐平臺的製作方法
2023-05-19 21:57:46
專利名稱:一種嵌入式軟體支撐平臺的製作方法
技術領域:
本發明涉及軟體支撐平臺領域,具體為一種採用中間件技術和虛擬機原理,適應不同硬體平臺和作業系統的嵌入式軟體支撐平臺。
背景技術:
當前的嵌入式硬體平臺一般由不同的生產廠家生產,其系統的體系結構各不相同,互不兼容。雖然有各種商用嵌入式作業系統來屏蔽嵌入式硬體平臺之間的差異,但不同的作業系統提供資源和服務的方式各不相同,導致所提供的資源和服務的接口不統一,致使在不同的作業系統之上開發的嵌入式應用系統可移植性較差,開發人員需要了解大量底
層軟硬體知識,同一功能需要不同的解決方案。而且,目前的嵌入式作業系統的內存管理效率較低,定時器算法的性能較差,聯網支持較差,難以支持實時性較強的嵌入式應用系統。桌面計算機應用系統在開發中引入了中間件、虛擬機的概念,以增強應用系統的可移植性,採用了內存池的思想來提高系統分配內存的效率。因此,許多科研人員嘗試把這些概念引入到嵌入式系統中來增強系統的可移植性和實時性。
發明內容
本發明的目的在於提供一種用於提高上層應用系統可移植性和實時性的嵌入式軟體支撐平臺。本發明的目的是這樣實現的本發明包括板級支持包、作業系統適配層、公共模塊,其特徵是商用作業系統構建在板級支持包上,作業系統適配層構建在商用作業系統上,公共模塊構建在作業系統適配層上,公共模塊包括功能相互獨立的調度管理模塊、系統監控模塊、異常管理模塊、內存管理模塊、定時器管理模塊、文件管理模塊、網絡管理模塊,公共模塊為上層應用程式提供功能支撐,用於任務或線程封裝、信號量封裝、消息隊列封裝、文件系統封裝,屏蔽不同硬體平臺、作業系統的差異,作業系統適配層具有統一的接口供作業系統調用。內存管理模塊用於劃分並管理內存池和內存塊,內存管理模塊通過配置文件配置內存池及內存塊大小。內存池由大小相等的內存塊組成,內存塊分配採用最小匹配原則。定時器管理模塊提供1000個精度為Ims的相對定時和精度為Is的絕對定時。調度管理模塊對Vxworks系統進行優化,在任務的基礎上引入二級調度的機制。系統監控模塊實時監控系統CPU使用情況,如發現有進程CPU佔用超過90%持續I分鐘以上或進程發生死鎖,則記錄該異常信息並且重啟該進程。文件管理模塊用於管理系統日誌,將日誌文件劃分為IM大小的20個日誌文件進行循環覆蓋,採用zlib算法庫對文件進行壓縮。異常管理模塊用於捕捉系統的異常情況,對發生異常時刻函數調用關係進行分析和記錄。
網絡管理模塊為應用程式搭建統一的網絡通信平臺建立統一的網絡線程池,線程池中的線程平時處於空閒狀態不佔用系統資源,當有網絡傳輸請求時,網絡管理模塊在線程池中取出空閒的線程與需要網絡傳輸的上層應用進行綁定。本發明的有益效果在於軟體支撐平臺與上層應用系統的開發分離,應用系統的開發擺脫了對作業系統的高度依賴,有效提高了上層應用系統的可移植性;通過內存管理模塊、文件管理模塊、定時器管理模塊等功能提高了系統的實時性。可加快實時性要求高的可移植嵌入式應用系統的開發進程 。
圖I是嵌入式軟體支撐平臺結構圖;圖2是嵌入式軟體支撐平臺實例示意圖。
具體實施例方式下面對本發明具體技術方案作進一步說明。本發明旨在提供一種可移植、實時性強的嵌入式軟體支撐平臺。具體有兩個創新點,第一個創新點是在不同的商用作業系統上增加一個相對應的作業系統適配層,完全屏蔽各種硬體平臺和作業系統的差異,封裝作業系統的核心資源和系統服務,提供統一的接口以方便基於作業系統的調用,從而實現應用系統的可移植性;另一個創新點是在作業系統適配層之上,實現系統監控、網絡管理、異常處理、調度管理、內存管理、定時管理和文件管理的功能。為上層的應用系統提供支撐功能,增強系統的實時性。本發明的工作原理是設計實現與不同作業系統相對應的作業系統適配層,來屏蔽硬體平臺和作業系統之間的差異並向上層提供接口統一的核心資源和系統服務,實現硬體平臺無關性和軟體平臺無關性。然後由7個模塊來實現軟體支撐功能,具體實現如下系統監控模塊監控任務的周期性運行和CPU、內存等系統資源使用情況。設置CPU、內存的使用上限並在超限時報警;網絡管理模塊用於實現聯網功能,使客戶可直接訪問上層的應用程式和內存資料庫;異常處理模塊的主要功能是通過底層作業系統截獲異常,保存異常的詳細現場信息,對異常點進行定位。通過對發生異常的進程的堆棧進行回溯分析,來得到異常發生前的函數調用關係;調度管理模塊對於存在多進程多線程的系統,統計系統進程、線程的運行狀態、切換次數,以便對系統狀態進行分析;內存管理模塊接管作業系統的內存管理,重新設計了內存管理的用戶接口,在系統初始化時向作業系統申請一大塊連續的內存區,再將該區劃分為若干內存池,每個內存池中有數量不等、大小固定的內存塊,其在池中的數量可按需配置。用戶通過內存管理接口申請內存時,內存管理模塊就查找各個內存池中滿足要求的最小內存塊並標記為「佔用」,然後不加切割地分配給用戶使用。內存回收時按照待釋放內存塊的首地址找到其所屬的內存池,將該塊標記為「空閒」放回該池即可;定時管理模塊採用自行設計定時管理算法,針對每一個tick要處理大量定時器問題,通過設計定時器隊列並在每一個tick對定時器隊列進行掃描的機制,來實現對大量定時器的管理,以滿足性能要求;文件管理模塊為應用程式提供統一的文件操作接口,屏蔽底層作業系統和不同存儲介質存取數據的具體實現細節,上層應用系統使用相同的方法來訪問硬碟、快閃記憶體等存儲介質。
本發明由板極支持包(BSP)、作業系統適配層和7個公共模塊組成。用戶可使用本發明開發和實施其應用系統,而無需考慮作業系統及硬體的具體細節。BSP對底層硬體板提供支持,方便程序在不同底層硬體平臺之間的移植,支持的硬體平臺包括x86、ARM和power pc等。其上層為商用作業系統,包括Vxworks、Linux和μ cos等。用戶可根據應用系統硬體的需要,對BSP進行補充、修改。作業系統適配層位於BSP和作業系統之上,相當於一個虛擬的作業系統,對作業系統進行封裝。應用系統設計人員在其上構建獨立於具體作業系統的嵌入式軟體支撐平臺的7個公共模塊,進而構建跨平臺的上層應用。其主要功能包括任務或線程封裝,信號量封裝,消息隊列封裝,文件系統封裝。公共模塊位於作業系統適配層之上,功能獨立,作業系統適配層向其提供作業系統調用功能的支持。公共模塊包括內存管理、定時器管理、調度管理、系統監控、文件管理、 異常處理、網絡管理7個模塊。每一個模塊都向上層應用系統提供特定功能。每一個模塊 都具有平臺無關性,可方便地移植到不同系統。內存管理模塊按照應用的需求來劃分內存池和管理內存塊的大小,用戶可以通過配置文件靈活配置內存池及內存塊大小,每個內存池包含一定數量大小相等的內存塊,內存塊分配採用最小匹配原則。例如系統劃分了內存池A包含10個16K內存塊及內存池B包含了 10個32K內存塊,用戶需要IOK的內存塊,那麼就會從內存池A取出一塊空閒的16K內存塊使用。定時器模塊可提供1000個精度為Ims的相對定時和精度為Is的絕對定時。由於不同作業系統不同CPU架構定時機制和精度不同,在BSP層和作業系統適配層對不同硬體和不同作業系統定時功能進行封裝,提供給定時器模塊使用。調度管理模塊對Vxworks系統做了優化,在任務的基礎上引入二級調度的機制,相當於在進程中封裝一層線程調度,對線程採用FIFO的調度方式。對於Linux系統已經存在進程和線程調度方式,我們統計了系統進程、線程的運行狀態、切換次數,以便對系統狀態進行分析。系統監控模塊實時監控系統CPU使用情況,如發現有進程CPU佔用超過90%持續I分鐘以上,記錄該異常信息並且重啟該進程;同時也監控進程是否發生死鎖,如果CPU在一個進程一段時間內沒有向下執行新的指令,則認為該進程出現死鎖,記錄異常日誌並且重啟該進程。文件管理模塊實現對系統日誌的管理。由於嵌入式系統一般採用Flash作為數據存儲,存儲容量較小,文件管理模塊將日誌文件劃分為每一個為IM大小,一共20個日誌文件循環覆蓋,並且採用zlib算法庫對文件進行壓縮,兼容Windows下Winrar及Linux下tar解壓算法。異常處理模塊可捕捉系統異常,記錄異常出現時刻的系統狀態。採用棧回溯的原理對發生異常時刻函數調用關係進行分析和記錄。由於棧回溯算法依賴於對CPU寄存器的訪問,不同CPU架構寄存器組織方式不同,我們針對x86、ARM、PPC三種CPU架構分別做了棧回溯算法。網絡管理模塊為應用程式搭建一個統一的網絡通信平臺。我們建立一個統一的網絡線程池,線程池中的線程平時處於空閒狀態不佔用系統資源,當有網絡傳輸請求時,網絡管理模塊在線程池中取出空閒的線程與需要網絡傳輸的上層應用進行綁定。這種機制可以支持同時1000個鏈路的數據傳輸,極大滿足了上層應用的網絡傳輸需求。嵌入式軟體支撐平臺的使用方法為首先選定適合的底層硬體板,根據用戶的需求對底層的板級支持包加以修改和補充;然後選擇相應的作業系統,進而選擇相對應的作業系統層的適配模塊,包括對該作業系統的信號量、消息隊列、進程和線程等系統調用的封裝;再根據系統具體應用需求選擇對應中間件。可選擇的中間件包括內存管理、定時器管理、調度管理、系統監控、文件管理、異常處理、網絡管理這7個公共模塊。調度管理、系統監控和異常處理屬於必選模塊,其他模塊可根據需求適當配置。例如,若系統需實現定時器和網絡功能,則將此兩模塊與前述的必選模塊合併放入makefile中再對系統進行編譯,即可實現定製化的平臺功能。通過這些中間件的支持可容易地實現上層應用。可極大地增強系統的可移植性和實時性。實施例I如圖2,以ARM硬體平臺為例,首先選定對應的作業系統,如Linux。根據Linux系統選擇其對應的作業系統適配模塊,包括對Linux系統的信號量、消息隊列、進程和線程等系統調用的封裝;再根據系統具體應用需求選擇對應中間件。可選擇的中間件包括內存管理、定時器管理、調度管理、系統監控、文件管理、異常處理、網絡管理這幾個公共模塊。調度管理、系統監控、異常管理屬於必選模塊,其他模塊可根據需求配置。例如系統需要實現定時器和網絡功能,那麼將這兩塊模塊加前面幾個必選模塊放在makefile中對系統一起進行編譯,即實現了定製化的平臺功能。通過這些中間件的支持可以容易地實現上層應用。權利要求
1.一種嵌入式軟體支撐平臺,包括板級支持包、作業系統適配層、公共模塊,其特徵是商用作業系統構建在板級支持包上,作業系統適配層構建在商用作業系統上,公共模塊構建在作業系統適配層上,公共模塊包括功能相互獨立的調度管理模塊、系統監控模塊、異常管理模塊、內存管理模塊、定時器管理模塊、文件管理模塊、網絡管理模塊,公共模塊為上層應用程式提供功能支撐,用於任務或線程封裝、信號量封裝、消息隊列封裝、文件系統封裝,屏蔽不同硬體平臺、作業系統的差異,作業系統適配層具有統一的接口供作業系統調用。
2.根據權利要求I所述的一種嵌入式軟體支撐平臺,其特徵是所述的內存管理模塊用於劃分並管理內存池和內存塊,內存管理模塊通過配置文件配置內存池及內存塊大小。
3.根據權利要求2所述的一種嵌入式軟體支撐平臺,其特徵是所述的內存池由大小相等的內存塊組成,內存塊分配採用最小匹配原則。
4.根據權利要求I或2所述的一種嵌入式軟體支撐平臺,其特徵是所述定時器管理模塊提供1000個精度為Ims的相對定時和精度為Is的絕對定時。
5.根據權利要求4所述的一種嵌入式軟體支撐平臺,其特徵是所述調度管理模塊對Vxworks系統進行優化,在任務的基礎上引入二級調度的機制。
6.根據權利要求5所述的一種嵌入式軟體支撐平臺,其特徵是所述系統監控模塊實時監控系統CPU使用情況,如發現有進程CPU佔用超過90%持續I分鐘以上或進程發生死鎖,則記錄該異常信息並且重啟該進程。
7.根據權利要求6所述的一種嵌入式軟體支撐平臺,其特徵是所述文件管理模塊用於管理系統日誌,將日誌文件劃分為IM大小的20個日誌文件進行循環覆蓋,採用zlib算法庫對文件進行壓縮。
8.根據權利要求7所述的一種嵌入式軟體支撐平臺,其特徵是所述異常管理模塊用於捕捉系統的異常情況,對發生異常時刻函數調用關係進行分析和記錄。
9.根據權利要求8所述的一種嵌入式軟體支撐平臺,其特徵是所述網絡管理模塊為應用程式搭建統一的網絡通信平臺建立統一的網絡線程池,線程池中的線程平時處於空閒狀態不佔用系統資源,當有網絡傳輸請求時,網絡管理模塊在線程池中取出空閒的線程與需要網絡傳輸的上層應用進行綁定。
全文摘要
本發明涉及軟體支撐平臺領域,具體為一種採用中間件技術和虛擬機原理,適應不同硬體平臺和作業系統的嵌入式軟體支撐平臺。本發明包括板級支持包、作業系統適配層、公共模塊,商用作業系統構建在板級支持包上,作業系統適配層構建在商用作業系統上,公共模塊構建在作業系統適配層上,公共模塊為上層應用程式提供支撐功能,用於任務或線程封裝、信號量封裝、消息隊列封裝、文件系統封裝,屏蔽不同硬體平臺、作業系統的差異。本發明的軟體支撐平臺與上層應用系統的開發分離,應用系統的開發擺脫了對作業系統的高度依賴,有效提高了上層應用系統的可移植性;通過內存管理模塊、文件管理模塊、定時器管理模塊等功能提高了系統的實時性。
文檔編號G06F9/44GK102779047SQ20121023628
公開日2012年11月14日 申請日期2012年7月9日 優先權日2012年7月9日
發明者丁繼成, 李健利, 李玉兵, 許兆新, 趙琳, 郝勇, 閆保中, 馬興成, 黃衛權, 黃超 申請人:哈爾濱工程大學