欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于ARINC653操作系統生成代碼的方法與裝置與流程

文檔序號:12801546閱讀:1172來源:國知局
基于ARINC653操作系統生成代碼的方法與裝置與流程

本發(fā)明涉及安全關鍵軟件開發(fā)技術,尤其涉及一種基于arinc653操作系統生成代碼的方法與裝置。



背景技術:

安全關鍵系統是指系統功能的失效或誤動作將會導致生命財產的重大損失以及對周圍環(huán)境造成嚴重破壞的系統,這類系統廣泛應用于航空航天、國防軍事、核電能源、交通運輸和醫(yī)療衛(wèi)生等安全關鍵領域。安全關鍵系統中用于安全關鍵控制的軟件稱為安全關鍵軟件。

機載應用軟件屬于安全關鍵軟件,它是飛機上各類機載系統和設備中所含的計算機程序和數據,在現代航空器中,機載應用軟件承擔了越來越多的功能,隨著機載應用軟件規(guī)模的大幅增長,有效提高開發(fā)效率成為亟需解決的技術問題。



技術實現要素:

本發(fā)明提供一種基于arinc653操作系統生成代碼的方法與裝置,以解決現有技術中機載應用軟件的開發(fā)效率低的缺陷。

本發(fā)明第一個方面提供一種基于arinc653操作系統生成代碼的方法,包括:

獲取知識圖文件,所述知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應的關系公式得到,各所述關系公式至少屬于兩個不同的知識領域,一個知識領域對應所述arinc653操作系統的一個分區(qū);

根據所述知識圖文件生成多個任務,并建立各所述任務之間的連接關系,每個所述任務至少包括一個目標關系公式以及所述目標關系公式對應的目標知識概念,屬于同一任務的目標關系公式的知識領域相同;

根據各所述任務所包括的所述目標關系公式和所述目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼;

根據所述連接關系對所述目標代碼排序,生成完整代碼。

根據如上所述的方法,可選地,所述獲取知識圖文件包括:

獲取各知識概念;

根據各知識概念的因果關系構建所述知識圖文件。

根據如上所述的方法,可選地,所述根據各所述任務所包括的所述目標關系公式和所述目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼包括:

根據目標關系公式在所屬知識領域對應的所述代碼庫中獲取待補充代碼;

根據所述目標知識概念和所述待補充代碼生成所述目標代碼。

根據如上所述的方法,可選地,所述知識領域至少包括以下的兩種領域:大氣計算領域、導航領域、飛行管理領域、飛行控制領域。

根據如上所述的方法,可選地,在所述生成完整代碼之后,還包括:

根據所述完整代碼生成控制指令;

向伺服控制器發(fā)送控制指令,以使所述伺服控制器根據所述控制指令發(fā)送動作信號控制飛行器的飛行。

本發(fā)明另一個方面提供一種基于arinc653操作系統生成代碼的裝置,包括:

第一獲取模塊,用于獲取知識圖文件,所述知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應的關系公式得到,各所述關系公式至少屬于兩個不同的知識領域,一個知識領域對應所述arinc653操作系統的一個分區(qū);

第一生成模塊,用于根據所述知識圖文件生成多個任務,并建立各所述任務之間的連接關系,每個所述任務至少包括一個目標關系公式以及所述目標關系公式對應的目標知識概念,屬于同一任務的目標關系公式的知識領域相同;

第二獲取模塊,用于根據各所述任務所包括的所述目標關系公式和所述目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼;

第二生成模塊,用于根據所述連接關系對所述目標代碼排序,生成完整代碼。

根據如上所述的裝置,可選地,所述第一獲取模塊具體用于,

獲取各知識概念;

根據各知識概念的因果關系構建所述知識圖文件。

根據如上所述的裝置,可選地,所述第二獲取模塊具體用于,

根據目標關系公式在所屬知識領域對應的所述代碼庫中獲取待補充代碼;

根據所述目標知識概念和所述待補充代碼生成所述目標代碼。

根據如上所述的裝置,可選地,所述知識領域至少包括以下的兩種領域:大氣計算領域、導航領域、飛行管理領域、飛行控制領域。

根據如上所述的裝置,可選地,還包括:

控制模塊,用于根據所述完整代碼生成控制指令;

發(fā)送模塊,用于向伺服控制器發(fā)送控制指令,以使所述伺服控制器根據所述控制指令發(fā)送動作信號控制飛行器的飛行。

根據本發(fā)明的基于arinc653操作系統生成代碼的方法與裝置,通過獲取知識圖文件,根據知識圖文件生成多個任務,并建立各任務之間的連接關系,再根據任務所包括的目標關系公式和目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼,并根據各任務的連接關系對目標代碼排序生成完整代碼,實現了自動生成代碼,提高了代碼的生成效率。

附圖說明

為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發(fā)明一實施例提供的基于arinc653操作系統生成代碼的方法的流程示意圖;

圖2為本發(fā)明一實施例提供的知識圖文件示意圖;

圖3為本發(fā)明一實施例提供的任務之間的連接關系示意圖;

圖4為本發(fā)明另一實施例提供的基于arinc653操作系統生成代碼的裝置的結構示意圖;

圖5為本發(fā)明再一實施例提供的基于arinc653操作系統生成代碼的裝置的結構示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

首先,介紹一下arinc(航空電子應用軟件標準接口)系統,具體以arinc653操作系統為例進行說明。

arinc653操作系統是采用arinc653設計原理的操作系統,是為了滿足航空電子對高可靠性、高可用性以及高服務性的要求而生,對區(qū)間管理、區(qū)間通信及健康監(jiān)測部分進行了補充說明,用以規(guī)范航空電子設備和系統的開發(fā)。

一個能運行arinc653操作系統的計算機系統包括硬件、arinc653操作系統和應用軟件,在arinc653操作系統中會包括多個分區(qū)(partitioning),分區(qū)是arinc653操作系統中一個核心概念。每個分區(qū)中運行一個應用子系統,每個應用子系統可以運行一個或多個任務,不同分區(qū)的應用子系統會進行通信。

針對arinc653操作系統分區(qū)結構的特點,可以設計相應的軟件架構模型來自動生成代碼。下面通過各個實施例描述如何自動生成代碼。

實施例一

本實施例提供一種基于arinc653操作系統生成代碼的方法,例如arinc653操作系統。本實施例的執(zhí)行主體為基于arinc653操作系統生成代碼的裝置。

如圖1所示,為本實施例的基于arinc653操作系統生成代碼的方法的流程示意圖,該方法包括:

步驟101,獲取知識圖文件,知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應的關系公式得到,各關系公式至少屬于兩個不同的知識領域,一個知識領域對應arinc653操作系統的一個分區(qū)。

知識圖表示一個概念體系,概念用結點表示,概念之間的關聯用箭頭表示;箭頭有四種:無向、單向、雙向、分叉;結點的內容可以是文字、圖形、嵌套的知識圖及其組合,箭頭上面也可以用文字或圖形標志關聯的名稱或內容。知識圖不限定圖的結構,可以為樹型結構,也可以是網狀結構,其能夠表達思維導圖、組織結構圖、流程圖、示意圖等已經常用的一些圖型。

本實施例中,知識圖文件即包括知識圖的文件,該文件可以是任何文檔形式,例如xml文檔、word文檔、txt文檔或者pdf文檔。每個知識圖文件包括多條知識路徑,一條知識路徑指的是從源知識概念到目的知識概念的路徑,源知識概念指的是該條知識路徑上的起始知識概念,目的知識概念指的是該條知識路徑上的最終知識概念,源知識概念和目的知識概念之間可以包括多個中間知識概念。例如,如圖2所示的知識圖文件,c110->f110->c111->f113->c114為一條知識路徑,c110為源知識概念,c114為目的知識概念,c111為中間知識概念,f110和f113為關系公式。每個目的知識概念至少對應一條知識路徑。

如何構建知識圖文件,可以采用多種現有技術,在此不再贅述。

可選地,本實施例的知識領域至少包括以下的兩種領域:大氣計算領域、導航領域、飛行管理領域、飛行控制領域。

本實施例的一個知識領域對應所述arinc653操作系統的一個分區(qū),即一個分區(qū)用于處理屬于一個知識領域的關系公式和/或知識概念。

步驟102,根據知識圖文件生成多個任務,并建立各任務之間的連接關系,每個任務至少包括一個目標關系公式以及目標關系公式對應的目標知識概念,屬于同一任務的目標關系公式的知識領域相同。

各任務之間的連接關系表明各個任務之間的因果關系,如圖3所示,表示任務1輸出的知識概念為任務3的輸入的知識概念,每個任務的任務輸入概念和任務輸出概念是根據該任務所包括的目標關系公式以及該目標關系公式對應的目標知識概念確定的。

獲取到的知識圖文件即表示了高層需求,假設已知的源知識概念有7個,目的知識概念有2個,中間知識概念有18個,關系公式有20個。根據預設的關系對照表和知識圖文件中的關系公式生成任務,其中,關系對照表表示的是各任務和關系公式之間的規(guī)定關系,裝置可以根據與關系公式相關的輸入的知識概念和輸出的知識概念生成任務。為了更明確的區(qū)分,將用于生成任務的關系公式稱為目標關系公式,將與生成任務的關系公式相關的輸入的知識概念和輸出的知識概念統稱為目標知識概念,也可以將與生成任務的關系公式相關的輸入的知識概念稱為任務輸入概念,將與生成任務的關系公式相關的輸出的知識概念稱為任務輸出概念。

舉例來說,若任務1的對應的目標關系公式為公式18,從知識圖文件中可以得知公式18的輸入的知識概念為c24,輸出的知識概念為c25,則該任務1的任務輸入概念即為c24,任務輸出概念即為c25。

需要說明的是,根據任務實際要完成的功能,一個任務中可以包括多個目標關系公式,該多個目標關系公式對應的多個中間知識概念中的每個中間知識概念,可以既作為一個關系公式的輸出的知識概念,又作為另一個關系公式的輸入的知識概念。比如,任務5的關系公式有兩個如公式12和公式11,公式12的輸入為c60,輸出為c61,公式11的輸入為c63、c69、c61和c70,輸出為c71,可知,其中公式11的輸入c61為公式12的輸出,則確定該任務5的任務輸入概念為c60、c63、c69和c70,任務輸出概念為c71。

任務生成之后,根據目標關系公式的輸入的知識概念和輸出的知識概念可以確定各任務之間的連接關系,還可以設置任務的基本屬性,該基本屬性包括任務的運行棧大小、優(yōu)先級、運行周期、運行時間、截止時間類型屬性等。

步驟103,根據各任務所包括的目標關系公式和目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼。

本實施例中,每個關系公式均對應一個知識領域,在確定出任務對應的目標關系公式之后,就可以根據關系公式獲取對應的目標代碼,即,一個目標關系公式可以對應一個或多個目標代碼,當一個目標關系公式對應一個目標代碼時,可以根據目標關系公式確定目標代碼,當一個目標關系公式對應多個目標代碼時,就可以根據目標關系公式和目標知識概念確定目標代碼。

具體地,每個關系公式與目標代碼的對應關系可以根據預設的對應關系表獲取,在此不再贅述。

可選地,本實施例的步驟103具體可以包括:

根據目標關系公式在所屬知識領域對應的代碼庫中獲取待補充代碼;

根據目標知識概念和待補充代碼生成目標代碼。

該待補充代碼可以是預設的一段代碼,該預設的代碼之中包括一些待賦值的變量,裝置可以根據目標知識概念獲取該待賦值的變量,進而生成完整代碼。

步驟104,根據連接關系對目標代碼排序,生成完整代碼。

根據軟件架構模型中設置的各構件的屬性及各任務(即進程)之間的通信方式等,將獲取的目標代碼按相應的方式排序,生成最終的軟件架構代碼。

可選地,在步驟104之后,還包括:

根據完整代碼生成控制指令;

向伺服控制器發(fā)送控制指令,以使伺服控制器根據控制指令發(fā)送動作信號控制飛行器的飛行。

這樣,就相當于根據高層需求自動生成控制指令,進而控制飛行器的飛行,實現了飛行器的自動駕駛。

本實施例提供的基于arinc653操作系統生成代碼的方法,通過獲取知識圖文件,根據知識圖文件生成多個任務,并建立各任務之間的連接關系,再根據任務所包括的目標關系公式和目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼,并根據各任務的連接關系對目標代碼排序生成完整代碼,實現了自動生成代碼,提高了代碼的生成效率。

實施例二

本實施例對實施例一的基于arinc653操作系統生成代碼的方法做補充說明,具體說明如何實現用于自動生成代碼的軟件架構,該代碼可以為c代碼或者其它任何形式的代碼。

以arinc653操作系統為例,arinc653操作系統具有分區(qū)結構,可以實現同時運行多個進程(即每個分區(qū)運行一個進程),進而能夠更快地實現代碼的生成。具體地,可以將軟件架構模型為三層結構,包括軟件系統模型、分區(qū)系統模型和任務系統模型,最終根據軟件架構模型生成的軟件架構至少包括以下內容:分區(qū)、任務、分區(qū)內通信、分區(qū)間通信。

arinc653規(guī)范定義了操作系統與應用軟件之間的應用執(zhí)行接口apex(applicationexecutive,應用執(zhí)行接口)。符合arinc653規(guī)范的操作系統都實現了apex。操作系統中的應用程序通過apex調用操作系統提供的分區(qū)管理、進程管理、分區(qū)間通信、分區(qū)內通信、健康監(jiān)控服務等。這些服務是分區(qū)實現的基礎,這些服務對象是軟件架構的構件。以arinc653操作系統運行時元素為基礎定義軟件架構模型的模型元素。構件模型元素包括軟件系統、分區(qū)、任務、采樣端口、黑板、緩沖區(qū)、信號量、事件和健康監(jiān)控。系統模型中描述了分區(qū)間通信,分區(qū)模型描述了分區(qū)內通信,其中,分區(qū)間通信用來說明分區(qū)之間的通信關系,分區(qū)內通信用來說明分區(qū)中的應用子系統中不同任務之間的通信。更為具體地,分區(qū)模型描述了它包含的任務模型、分區(qū)內通信、采用的分區(qū)內通信機制和分區(qū)端口。其中,任務模型是進程的抽象。

其中,軟件系統是由多個分區(qū)應用程序組成的機載應用軟件系統,運行在arinc653操作系統環(huán)境中。

分區(qū)能夠由arinc653操作系統通過時間分區(qū)和空間分區(qū)的方式實現的相對獨立的軟件運行環(huán)境,為機載應用程序提供安全隔離,分區(qū)包括的子元素有任務、分區(qū)內通信、采樣端口、隊列端口、緩沖區(qū)、黑板、信號量和事件;分區(qū)模型通過任務這一子元素描述駐留在分區(qū)中的應用程序,任務之間的通信使用分區(qū)內通信元素描述,任務進行分區(qū)內通信可以使用緩沖區(qū)、黑板、信號量和事件四種方式。通過采樣端口和隊列端口描述分區(qū)中的端口。分區(qū)的屬性包括分區(qū)名稱、內存需求、分區(qū)運行周期、分區(qū)持續(xù)時間等等,其中,內存需求指明分區(qū)內存范圍;分區(qū)運行周期指明分區(qū)為了滿足操作需求必須被激活的時間間隔;分區(qū)持續(xù)時間指明分區(qū)在一個分區(qū)運行周期中要求的執(zhí)行時間。

任務指組成機載應用軟件系統的工作單元,對應分區(qū)操作系統中的一個進程。在任務模型中,通過輸入子元素描述任務的任務輸入概念,輸出子元素描述任務的任務輸出概念。程序子元素描述任務執(zhí)行的程序。健康監(jiān)控子元素描述對任務的健康監(jiān)控設置。任務的屬性包括任務的名稱、任務的輸入的知識概念、輸出的知識概念、運行棧、基礎優(yōu)先級、周期、時間容量、截止類型等,其中,運行棧指明任務運行時需要的堆??臻g大小;基礎優(yōu)先級指明任務啟動時的優(yōu)先級大??;周期定義周期性任務激活的周期;時間容量定義任務完成所用的時間;截止類型指定任務的截止類型是hard還是soft。

采樣端口是一個通信對象,分區(qū)通過它訪問配置在采樣模式下的通信通道。采樣模式下的分區(qū)間通信,需要通過采樣端口來發(fā)送或接收分區(qū)間通道內傳遞的消息。在采樣模式下,新到達的消息會覆蓋之前的消息。因此采樣端口只保留最新的消息。在采樣模型中,通過方向屬性說明端口是源端口還是目的端口。分區(qū)中進程向源端口發(fā)送消息,從目的端口接受消息。通過消息大小屬性定義端口消息的最大字節(jié)數。端口刷新周期屬性指明有效消息從到達端口開始,可以被接收的最長時間。

隊列端口是一個通信對象,分區(qū)通過它訪問配置在隊列模式下的通信通道。隊列模式下的分區(qū)間通信,需要通過隊列端口來發(fā)送或接收分區(qū)間通道內傳遞的消息。在隊列模式下,消息以先進先出的順序存儲在端口。不同于采樣模式的是,每個新到達的消息不會覆蓋前面的消息。但是若隊列滿了,新來的消息會被丟棄。在隊列模型中,通過方向屬性說明端口是源端口或目的端口。通過消息大小屬性定義端口消息的最大字節(jié)數。通過隊列長度屬性定義端口可存儲的最大消息數目。

緩沖區(qū)是同一分區(qū)中的進程用來發(fā)送和接收消息的通信對象。緩沖區(qū)可以存儲多個消息,消息以先進先出的順序排隊。在緩沖區(qū)模型中,通過消息大小屬性定義緩沖區(qū)消息的最大字節(jié)數。通過緩沖區(qū)長度屬性定義緩沖區(qū)可以存儲的最大消息數目。通過排隊策略屬性指明進程訪問緩沖區(qū)的排隊策略(先進先出排隊或進程優(yōu)先級排隊)。

黑板是同一分區(qū)中的進程用來發(fā)送和接收消息的通信對象。黑板不使用消息隊列,每個新到來的消息會覆蓋其他消息。在黑板模型中,通過消息大小屬性定義黑板消息的最大字節(jié)數。

信號量是用來控制進程訪問分區(qū)資源的同步對象。計數信號量的值代表了可用資源的數目。在信號量模型中,通過最大值屬性定義受信號量管理的資源的最大數目。通過當前值屬性定義信號量被創(chuàng)建時的初始值。排隊策略屬性定義進程使用信號量的排隊策略(先進先出排隊或進程優(yōu)先級排隊)。

事件是用來通知那些正在等待某條件發(fā)生的進程該條件已經發(fā)生的同步對象。在事件模型中,通過id屬性唯一標識一個事件對象。通過名稱屬性定義事件對象在分區(qū)范圍的名字。

分區(qū)間通信是不同分區(qū)之間的應用進行通信的方式,有采樣模式和隊列模式兩種,分別對應采樣端口和隊列端口。分區(qū)間通信模型用來表示連接兩個分區(qū)端口之間的通道。通過通信模式屬性指明通信采用的模式(采樣模式或隊列模式)。源分區(qū)屬性指明使用通道發(fā)送消息的分區(qū)。源端口屬性指明連接通道發(fā)送消息的端口。目的分區(qū)屬性指明使用通道接收消息的分區(qū)。目的端口屬性指明連接通道接收消息的端口。

分區(qū)內通信是同一分區(qū)中的進程進行通信的方式,包括緩沖區(qū)、黑板、信號量和事件四種機制。進程間消息傳遞使用緩沖區(qū)或黑板,進程間同步使用信號量或事件。分區(qū)內通信模型用來建模在相同分區(qū)中的進程之間的通信關系。通過源任務屬性指明發(fā)起通信的任務。通過目的任務屬性指明響應通信的任務。通信機制屬性定義使用的具體通信機制(緩沖區(qū)、黑板、信號量或事件)

健康監(jiān)控模型是用來建模arinc653操作系統中的健康監(jiān)控機制,對分區(qū)和進程進行健康監(jiān)控,以避免發(fā)生錯誤。操作系統健康監(jiān)控模型用來建模操作系統的健康監(jiān)控表,分區(qū)健康監(jiān)控模型用來建模分區(qū)的健康監(jiān)控表,進程健康監(jiān)控模型用來建模進程通信監(jiān)控結構和錯誤處理函數。

在自動生成代碼之前,需要相應的軟件架構模型,即包括上述的系統模型、分區(qū)模型和任務模型,自動生成代碼的裝置根據系統模型、分區(qū)模型和任務模型生成軟件架構,軟件架構包括多個分區(qū)、多個任務、分區(qū)內的通信機制以及分區(qū)間的通信機制。

系統模型是根據分區(qū)模型及設置分區(qū)間通信機制創(chuàng)建的,系統模型包括多個分區(qū)模型。其中,任務即為上述實施例中創(chuàng)建的任務模,此處不再贅述。各關系公式所屬的知識領域決定了包含該關系公式的任務所屬的知識領域,則該任務即被劃分為其所屬知識領域對應的分區(qū)內,依此確定各任務所屬的分區(qū),并設置各分區(qū)內任務的分區(qū)內通信機制,一個分區(qū)可以包括多個任務,根據該分區(qū)內的任務及分區(qū)內各任務之間的分區(qū)內通信機制創(chuàng)建分區(qū)模型。。

在對任務分配分區(qū)過程中,根據需要的任務輸入概念和任務輸出概念確定分區(qū)的端口(即分區(qū)的輸入和輸出)。為分區(qū)中任務之間的通信指定具體的arinc653分區(qū)內通信機制,如任務1和任務3通過黑板傳遞mach馬赫數數據,任務2和任務5通過緩沖區(qū)傳遞壓力設置高度數據。配置通信資源的屬性,如緩沖區(qū)的長度、黑板中傳遞消息的最大字節(jié)數等。arinc653操作系統提供了緩沖區(qū)、黑板、信號量和事件四種分區(qū)內通信方式。分區(qū)端口描述分區(qū)中進程在分區(qū)間通信時所用端口的具體信息,arinc653操作系統提供了隊列端口和采樣端口兩種端口類型。每個分區(qū)對應一個知識領域,每個分區(qū)生成一個分區(qū)模型文件。

在創(chuàng)建軟件架構過程中,為不同分區(qū)的任務之間的通信指定具體的arinc653分區(qū)間通信機制,如采樣通信和隊列通信。分區(qū)間的通信確定分區(qū)的端口連接,采樣通信連接源采樣端口和目的采樣端口,隊列通信連接源隊列端口和目的隊列端口。配置分區(qū)時間屬性、分區(qū)的運行周期和每次持續(xù)運行的時間、配置分區(qū)的調度次序。一個系統生成一個系統模型文件。系統模型文件描述了它包含的分區(qū)模型,分區(qū)間通信和分區(qū)調度。分區(qū)模型是應用子系統的抽象。分區(qū)間通信描述軟件系統中不同應用子系統之間的通信關系。分區(qū)調度描述了應用子系統的執(zhí)行次序。

需要說明的是,機載應用軟件的軟件架構的創(chuàng)建是為了能夠提高機載應用軟件的開發(fā)效率,例如能夠自動生成控制指令對應的代碼。

本實施例的軟件架構模型是為了將軟件架構的構件映射到arinc653操作系統中,比如,設置分區(qū)內通信機制,即為將軟件架構的分區(qū)內通信機制設置為arinc653操作系統中的分區(qū)內的任務之間通信的方式,使得根據軟件架構模型生成的軟件架構代碼符合arinc653操作系統,進一步在此軟件架構基礎上開發(fā)的機載應用軟件對應的代碼能夠在arinc653操作系統中運行。因此,關于上述的分區(qū)內通信機制、分區(qū)間通信機制,包括其具體方式如事件、黑板、采樣通信等,分區(qū)調度,以及各種配置、基本屬性均與arinc653操作系統中的這些屬性相對應,此處不再贅述。

舉例來說,根據大氣計算領域的arinc706大氣計算標準、導航領域的導航數據、飛行控制領域的arinc701飛行控制標準和飛行管理領域的arinc702飛行管理標準建立知識圖文件。其中,大氣計算領域的知識概念有大氣總壓c1(totalpressure)、大氣靜壓c2(impactpressure)、壓力設置c24(pressuresetting)、比力c27(specificforce);導航領域的知識概念有陀螺儀數據c60(gyroscope)、地球旋轉角速度c69(earthrotationanglarvelocity),飛行管理領域的知識概念有飛行姿態(tài)數據c70(attitudematrixinitial),飛行控制領域的知識概念有俯仰伺服命令co1(pitchservocommand)和滾轉伺服命令co2(rollservocommand)。其中,大氣計算領域的知識概念大氣總壓c1、大氣靜壓c2、壓力設置c24、比力c27,導航領域的知識概念陀螺儀數據c60、地球旋轉角速度c69以及飛行管理領域的知識概念飛行姿態(tài)數據c70為源知識概念,飛行控制領域的知識概念俯仰伺服命令co1和滾轉伺服命令co2為目的知識概念。其中,源知識概念是機載計算機系統從傳感器采集得到的,目的知識概念俯仰伺服命令co1和滾轉伺服命令co2為由源知識概念經過一系列關系公式計算得到的,這里的關系公式都是預先給定的。比如,源知識概念c24對應的關系公式為公式18,經公式18計算后得到一個中間知識概念c25(pressuresettingaltitude),源知識概念c2和c1經過一系列關系公式計算得到一個中間知識概念c26(correctedstaticpressurealtitude),中間知識概念c25和c26又經過公式6計算得到中間知識概念c19(barocorrectedaltitude),按照上述的過程,根據幾個源知識概念,經過多個關系公式計算最終得到目的知識概念co1和co2。

假設如上獲取到的知識圖文件包括源知識概念有7個,目的知識概念有2個,中間知識概念有18個,關系公式有20個,生成了14個任務,設置各任務的基本屬性,創(chuàng)建了14個任務模型,存儲為14個任務模型文件。比如,任務1、任務2、任務3和任務4中的關系公式屬于大氣計算領域,則將其劃分到大氣計算分區(qū),根據各任務的任務輸入概念和任務輸出概念確定該分區(qū)的端口(即對應該分區(qū)的輸入概念和輸出概念),分區(qū)的端口類型包括采樣端口和隊列端口兩種端口類型,一個分區(qū)包括一個或多個源端口以及一個或多個目的端口,稱源端口為該分區(qū)的輸入端口,目的端口為該分區(qū)的輸出端口,每個源端口或目的端口可以為采樣端口或隊列端口,可以稱為源采樣端口、目的采樣端口或源隊列端口、目的隊列端口,端口類型也是arinc653系統現有的屬性,此處不再贅述,設置該分區(qū)中各任務的分區(qū)內通信機制,比如任務1和任務3通過黑板傳遞mach馬赫數數據,配置通信資源的屬性,如緩沖區(qū)的長度、黑板中傳遞消息的最大字節(jié)數等,根據該分區(qū)的四個任務及如上的一系列設置創(chuàng)建了大氣計算分區(qū)模型;任務5、任務6和任務7中的關系公式屬于導航領域,則將其劃分到導航分區(qū),創(chuàng)建導航分區(qū)模型,具體過程同大氣計算分區(qū)模型創(chuàng)建過程,此處不再贅述;任務8、任務9、任務10、任務11和任務12中個關系公式屬于飛行管理領域,則將其劃分為飛行管理分區(qū),創(chuàng)建飛行管理分區(qū)模型,具體過程同大氣計算分區(qū)模型創(chuàng)建過程,此處不再贅述;任務13和任務14中的關系公式屬于飛行控制領域,將其劃分到飛行控制分區(qū),創(chuàng)建飛行控制分區(qū)模型,具體過程同大氣計算分區(qū)模型創(chuàng)建過程,此處不再贅述。即總共有四個分區(qū),創(chuàng)建了四個分區(qū)模型,存儲為四個分區(qū)模型文件。然后根據四個分區(qū)模型文件,為不同分區(qū)的任務之間的通信指定具體的arinc653分區(qū)間通信機制,如采樣通信和隊列通信。分區(qū)間的通信確定分區(qū)的端口連接,采樣通信連接源采樣端口和目的采樣端口,隊列通信連接源隊列端口和目的隊列端口,并配置分區(qū)時間屬性、分區(qū)的運行周期和每次持續(xù)運行的時間、配置分區(qū)的調度次序,根據各分區(qū)及上述一系列設置創(chuàng)建軟件架構,并存儲為軟件系統模型。當創(chuàng)建軟件架構后,根據軟件架構模型生成代碼,還可以生成相應的配置文件。由上述可知一個軟件系統的軟件架構模型包括了系統模型、分區(qū)模型和任務模型,一個系統模型對應多個分區(qū)模型,一個分區(qū)模型對應多個任務模型,模型文件具有樹形關系結構。具體可以將系統、每個分區(qū)和每個任務稱為軟件架構的構件,建立每個構件模型在內存中的對象,并關聯這些對象,建立模型在內存中的樹結構對象。樹的根節(jié)點是系統模型,系統模型的葉子節(jié)點是分區(qū)模型,分區(qū)模型的葉子節(jié)點是任務模型。采用深度遍歷的方式遍歷模型樹,一個系統模型生成一個系統配置文件,每個分區(qū)模型生成一個分區(qū)應用c文件,每個任務模型生成分區(qū)中的一個進程,包括進程執(zhí)行的函數體。生成的代碼中包含arinc653apex函數調用,用來使用操作系統提供給應用程序的服務。

需要說明的是arinc653的apex函數及其使用為現有技術,此處不再贅述。

再舉例來說,根據軟件架構模型生成的軟件架構代碼包括分區(qū)應用c代碼和模塊配置xml文檔。其中分區(qū)應用c代碼包括分區(qū)初始化函數和分區(qū)中每個進程的執(zhí)行函數。分區(qū)初始化函數負責在分區(qū)初始化階段創(chuàng)建分區(qū)內的資源,啟動分區(qū)中的進程,最后將分區(qū)置于normal模式。分區(qū)初始化代碼生成過程(如表1所示)包括:

對每個分區(qū)模型p,獲取它包含的任務模型集合t、分區(qū)的端口模型集合po、分區(qū)中的分區(qū)內通信機制模型集合im(表1中2-5行);

生成創(chuàng)建分區(qū)內端口資源的代碼(表1中6-10行):對分區(qū)中的每個端口模型po,若po為采樣端口,則生成該采樣端口的代碼,若po是隊列端口,則生成該隊列端口的代碼;

生成創(chuàng)建分區(qū)內通信機制資源的代碼(表1中11-19行):對每個分區(qū)內通信機制資源模型im,若im是緩沖區(qū),則生成該緩沖區(qū)資源的代碼,若im是黑板,則生成該黑板資源的代碼,若im是信號量,則生成該信號量資源的代碼,若im是事件,則生成該事件資源的代碼;

生成創(chuàng)建該分區(qū)內的進程資源的代碼(表1中20-21行):對每個任務模型t,生成創(chuàng)建該進程的代碼;

生成啟動分區(qū)中的進程的代碼(表1中22-23行):對每個任務模型t,生成啟動該進程的代碼;

生成將分區(qū)模式設置為normal的代碼(表1中24行)。

表1

分區(qū)中的進程通過執(zhí)行定義在分區(qū)c文件中的函數代碼實現具體的功能。每個進程對應自己的進程函數。進程函數由進程的通信行為代碼和進程的功能行為代碼組成。在分區(qū)模型中,通過分區(qū)間通信模型和分區(qū)內通信模型描述了任務之間的通信結構,基于任務之間的通信結構生成arinc653操作系統的應用分區(qū)中進程的通信代碼。進程的通信包括接收消息和發(fā)送消息兩個過程。在接收消息過程中,若是分區(qū)間通信,進程從分區(qū)的端口中讀取消息,若是分區(qū)內通信,進程從分區(qū)中的緩沖區(qū)或黑板讀取消息。在發(fā)送消息的過程中,若是分區(qū)間通信,進程向分區(qū)的端口中寫入消息;若是分區(qū)內通信,進程向分區(qū)中的緩沖區(qū)或黑板寫入消息。進程通信行為代碼生成過程(如表2所示)包括:

獲取分區(qū)模型中的任務模型集合t、端口模型集合po,分區(qū)內通信機制資源模型集合im(表2中2-4行);

然后遍歷每個任務模型,生成每個任務的通信行為代碼(表2中5-34行),具體包括:

對每個任務模型t,獲取任務的輸入集合i和任務的輸出集合o(表2中6-7行);

生成任務接收輸入消息的代碼(表2中8-20行),其中,對任務的每個輸入i,若該輸入是分區(qū)間通信,則獲取它對應的分區(qū)端口po,若po是采樣端口,則生成從po讀取采樣消息的apex代碼,若po是隊列端口,則生成從po接收隊列消息的apex代碼;若該輸入i是分區(qū)內通信,則獲取它對應的分區(qū)內通信機制資源im,若im是緩沖區(qū),則生成從im接收緩沖區(qū)消息的apex代碼;若im是黑板,則生成從im讀取黑板消息的apex代碼。

生成任務發(fā)送消息的代碼(表2中22-34行)。對任務的每個輸出o,若該輸出是分區(qū)間通信,則獲取它對應的分區(qū)端口po,若po是采樣端口,則生成向po寫入采樣消息的apex代碼,若po是隊列端口,則生成向po發(fā)送隊列消息的apex代碼;若該輸出o是分區(qū)內通信,則獲取它對應的分區(qū)內通信機制資源im,若im是緩沖區(qū),則生成向im發(fā)送緩沖區(qū)消息的apex代碼;若im是黑板,則生成向im寫入黑板消息的apex代碼。

表2

arinc653操作系統在啟動時讀取配置信息配置系統中的分區(qū)、分區(qū)調度、通道資源和健康監(jiān)控。在配置文件中設置分區(qū)的端口、分區(qū)之間的通道和分區(qū)的調度。配置文件以xml文件格式記錄這些配置信息。分區(qū)運行時配置生成的過程(如表3所示)包括:

從系統模型中獲取分區(qū)模型集合p、通道集合c、分區(qū)調度集合sc(表3中2-4行);

先生成應用分區(qū)配置(表3中5-13行),具體包括:首先生成應用分區(qū)配置的<applications>元素(5行),然后每個分區(qū)對應生成子元素<application>。對每個分區(qū)p,獲取p的端口集合po,然后在<applications>元素下添加子元素<application>(6-8行);遍歷端口集合(9-13行):若端口是采樣端口,則在<application>子元素下生成端口的<sampleport>元素,若端口是隊列端口,則在<application>子元素下生成端口的<queueport>元素;

生成通道配置(表3中14-16行):首先生成通道配置的<connections>元素,然后遍歷通道模型集合c,對每個通道模型c,生成對應的<channel>子元素;

生成分區(qū)調度配置(表3中17-19行):首先生成分區(qū)調度配置的<schedules>元素,然后遍歷調度模型集合sc,對每個分區(qū)調度項sc,生成對應的<schedule>子元素。

最后調用generatehealthmonitor()生成健康監(jiān)控配置信息。

表3

需要說明的是,若輸入i是分區(qū)間通信,則獲取它對應的分區(qū)端口po,若po是采樣端口,則生成從po讀取采樣消息的apex代碼,用到了函數read_sampling_message(po,i),通過該函數生成相應的代碼,同樣的,在生成軟件架構代碼過程中用到了多個用于生成代碼的函數。函數的功能具體的可以是預先將組成該任務的關系公式和知識概念及關系公式的連接關系相應的代碼存儲在該任務所屬知識領域對應的代碼庫中,在生成相應的代碼時,通過函數調用在該代碼庫中獲取相應的代碼??梢岳斫獾?,代碼庫中不僅可以存儲每個任務對應的代碼,也可以存儲關于任務之間連接關系(即分區(qū)內通信、分區(qū)間通信等)的代碼。按照上述代碼生成過程,獲取各目標代碼。

可選地,也可以自行設計上述用于生成代碼的函數,來實現各部分代碼的生成,最終生成代碼。

本實施例提供的基于arinc653操作系統生成代碼的方法,對軟件架構進行了分區(qū)設置,一個分區(qū)對應一個知識領域的任務,在生成代碼時可以到任務對應的知識領域代碼庫中獲取目標代碼,避免了遍歷所有代碼庫中的代碼來獲取目標代碼,提高了生成代碼的效率,此外,應用了分區(qū)的軟件架構,在同時每個分區(qū)都能運行一個進程,即一個操作系統可同時運行多個進程,進一步提高了代碼的生成效率。

實施例三

本實施例提供一種基于arinc653操作系統生成代碼的裝置,用于執(zhí)行實施例一的基于arinc653操作系統生成代碼的方法。

如圖4所述,為本實施例提供的基于arinc653操作系統生成代碼的裝置的結構示意圖。本實施例的基于arinc653操作系統生成代碼的裝置30包括第一獲取模塊31、第一生成模塊32、第二獲取模塊33和第二生成模塊34。

其中,第一獲取模塊31用于獲取知識圖文件,知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應的關系公式得到,各關系公式至少屬于兩個不同的知識領域,一個知識領域對應arinc653操作系統的一個分區(qū);第一生成模塊32用于根據第一獲取模塊31獲取的知識圖文件生成多個任務,并建立各任務之間的連接關系,每個任務至少包括一個目標關系公式以及目標關系公式對應的目標知識概念,屬于同一任務的目標關系公式的知識領域相同;第二獲取模塊33用于根據第一生成模塊32生成的各任務所包括的目標關系公式和目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼;第二生成模塊34用于根據連接關系對第二獲取模塊33獲取的目標代碼排序,生成完整代碼。

可選地,第一獲取模塊31具體用于獲取各知識概念;根據各知識概念的因果關系構建知識圖文件。

可選地,第二獲取模塊33具體用于:根據目標關系公式在所屬知識領域對應的代碼庫中獲取待補充代碼,并根據目標知識概念和待補充代碼生成目標代碼。

可選地,知識領域至少包括以下的兩種領域:大氣計算領域、導航領域、飛行管理領域、飛行控制領域。

可選地,如圖5所示,基于arinc653操作系統生成代碼的裝置30還包括控制模塊35和發(fā)送模塊36。

其中,控制模塊35用于根據第二生成模塊34生成的完整代碼生成控制指令;發(fā)送模塊36用于向伺服控制器發(fā)送控制模塊35生成的控制指令,以使伺服控制器根據控制指令發(fā)送動作信號控制飛行器的飛行。

關于本實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。

根據本實施例的基于arinc653操作系統生成代碼的裝置,通過獲取知識圖文件,根據知識圖文件生成多個任務,并建立各任務之間的連接關系,再根據任務所包括的目標關系公式和目標知識概念,在所屬知識領域對應的代碼庫中獲取目標代碼,并根據各任務的連接關系對目標代碼排序生成完整代碼,實現了自動生成代碼,提高了代碼的生成效率。

本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質。

最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
崇明县| 青神县| 同心县| 湾仔区| 峨眉山市| 荣成市| 专栏| 景泰县| 加查县| 哈巴河县| 桃园县| 安吉县| 庄浪县| 内黄县| 汤原县| 德安县| 海原县| 宿州市| 师宗县| 承德县| 正镶白旗| 凌源市| 青铜峡市| 富宁县| 宜兰市| 托克逊县| 武宁县| 彭山县| 济宁市| 永定县| 鄂托克前旗| 醴陵市| 晋中市| 彭泽县| 石阡县| 安义县| 习水县| 长葛市| 阿坝县| 特克斯县| 凌云县|