專利名稱:一種應用于rte代碼生成的os資源分配沖突解決方法
技術領域:
本發明涉及汽車電子軟件開發技術,尤其是一種應用于RTE代碼生成的 OS資源分配沖突解決方法。
背景技術:
AUTOSAR(AUTomotive Open System ARchitecture)是汽車電子開放系統架構, RTE(Run-Time Environment)是該架構的核心。RTE是由RTE代碼自動生成工具生成的C 代碼,后者接收ECU (Electronic Control Unit)配置工具傳遞的AUTOSAR對象為輸入,生成符合AUTOSAR標準的C代碼。自動生成的RTE代碼,加上軟件組件源代碼、基礎模塊代碼及基礎模塊配置代碼(由ECU配置工具生成)一起編譯鏈接就成為最終可以運行在ECU上的可執行文件,其中基礎模塊指OS (Operating System)和COM(Communication),即操作系統模塊和通信模塊。RTE需要與AUTOSAR COM和OS交互,對于后者,RTE既需要使用已經存在的OS對象(用戶使用E⑶配置工具配置的OS對象,如任務或告警),又可能需要新的OS對象,比如一個非周期的告警用于監控運行實體的訪問超時。RTE代碼自動生成工具新申請的OS對象與用戶已配置的OS對象不能沖突,比如前者不能申請OS中已經被使用過的事件。為方便RTE代碼自動生成工具與E⑶配置工具就 OS對象的使用進行交互,AUTOSAR標準要求雙方使用相同的OS對象存儲格式。然而,按照AUTOSAR標準方法論,用戶使用E⑶配置工具對OS的配置過程是反復的,這就要求E⑶配置工具與RTE代碼生成工具就OS對象的使用保持一致性。此外,RTE代碼自動生成工具本身沒有界面,它作為一個插件集成在E⑶配置工具中。也就是說RTE代碼生成工具要根據用戶配置更新對OS對象的需求,并把這個需求轉達給E⑶配置工具,由 E⑶配置工具在其OS模塊配置界面呈現出來。因此,面對RTE代碼自動生成工具對OS對象的新需求與用戶配置的OS對象的一致性要求,需要一種應用于RTE代碼生成的OS資源分配沖突解決方法。
發明內容
為了解決上述RTE代碼自動生成工具與E⑶配置工具就OS對象的使用問題的一致性要求,本發明的目的在于提供一種應用于RTE代碼生成的OS資源分配沖突解決方法。本發明解決其技術問題采用的技術方案這種應用于RTE代碼生成的OS資源分配沖突解決方法,步驟如下(1)、提取AUTOSAR對象的元素信息,并轉存到RTE代碼自動生成工具自定義的模型中;由于AUTOSAR對象的元素組織結構專注于構成整個系統的各個模塊的描述,與C語言層面的模型有很大差異,因此RTE代碼自動生成工具自定義了一套模型,以方便基于模板的生成器的模板語言的開發以及最終的C代碼自動生成。(2)、提取通信需求及用戶已配置的OS模塊信息,計算RTE為實現通信API所需依賴的新OS對象(如OS事件、OS告警),然后向OS申請這些資源(3)、將RTE代碼自動生成工具自定義的OS對象模型轉換成標準的AUT0SAR對象模型。作為優選,所述的步驟(2)操作進行處理的步驟包括(2. 1)遍歷任務中的運行實體,如果是服務器端運行實體且以同步方式提供服務, RTE代碼自動生成工具為其申請OS事件,用于客戶端運行實體和服務器端運行實體的通信同步;(2. 2)遍歷任務中的運行實體,如果是客戶端運行實體且其訪問服務有超時要求, RTE代碼自動生成工具為其申請OS告警,用于RTE監控該運行實體的超時;(2. 3)對于步驟(2. 2)提及的OS告警,要將其關聯到合適的OS事件。作為優選,所述的步驟(3)操作進行處理的步驟包括(3. 1)清除AUT0SAR對象中RTE代碼自動生成工具申請的所有OS資源,包括OS事件、OS告警及其相關的OS計數器,以及任務中包含的引用參數,這些參數引用的是由RTE代碼自動生成工具申請的且用于激活該任務的OS事件;(3. 2)遍歷RTE代碼自動生成工具申請的OS告警,將每個告警轉化成AUT0SAR標準類型的對象模型,并添加到AUT0SAR對象的Module模型中;(3. 3)遍歷RTE代碼自動生成工具申請的OS事件,將每個事件轉化成AUT0SAR標準類型的對象模型,更新該事件激活的任務包含的引用參數,并把該事件添加到AUT0SAR 對象的Module模型中。作為優選,所述的步驟(2.3)中,將RTE代碼自動生成工具申請的OS告警關聯到相應的OS事件,其處理步驟包括(2.3. 1)如果是同E⑶內的客戶-服務通信方式,直接找到服務器端運行實體關聯的同步事件,并在告警中保存下對該事件的引用;(2. 3. 2)如果是跨E⑶的客戶-服務通信方式,則遍歷系統中由RTE代碼自動生成工具申請的事件列表,如果事件關聯的運行實體同時該告警關聯的運行實體,則在告警中保存下對查找到事件的引用。本發明具有的有益效果是1)本發明每次調用時都重新提取AUT0SAR對象模型并重新分析新需求,能夠允許用戶在E⑶配置階段反復配置OS模塊,同時不影響RTE代碼的自動生成。2)本發明將RTE代碼自動生成工具對OS對象的新需求轉化成標準的AUT0SAR對象模型,并傳遞給E⑶配置工具,由其在OS模塊的配置界面中呈現給用戶。3)本發明的分析模型及計算對OS對象的新需求這兩個步驟可以復用RTE代碼生成工具已有的功能,提高軟件復用度。
圖1是AUT0SAR對象經分析后產生的組件模型圖。圖2是AUT0SAR對象經分析后產生的任務模型圖。圖3是RTE代碼自動生成工具計算OS對象流程圖。圖4是OS事件申請流程圖。
圖5是OS告警申請流程圖。圖6是示例 系統中用戶已配置的OS資源模型圖。圖7是轉換自定義對象模型為AUT0SAR標準類型對象的流程圖。圖8是示例系統完成步驟3)后OS資源模型圖。圖9是示例系統更改用戶配置并再次調用本方法所得OS資源模型圖。
具體實施例方式下面結合附圖和實施例對本發明作進一步說明
具體實施例方式一、提取AUT0SAR對象的元素信息,并轉存到RTE代碼自動生成工具自定義的模型中。如圖1所示的示例系統中共有2個組件,各自包含一個運行實體。其中組件Compl 包含運行實體Runnable_Client,后者通過Port_Client向服務器端運行實體Runnable_ Server請求服務,且該服務請求是同步有超時的。如圖2所示的示例系統中共有2個任務,各自包含一個運行實體。其中任務Task_ Client包含運行實體Rurmablejnient,并由周期性告警Alarm_Cyc周期性激活運行;任務 Task_Server 包含: ^ 實體尺urmable_Server。二、提取通信需求及用戶已配置的OS模塊信息,計算RTE為實現通信API所需依賴的新OS對象(如OS事件、OS告警),然后向OS申請這些資源。如圖3所示的流程圖說明了步驟2)處理的整體過程。如果是服務器端運行實體且以同步方式提供服務,RTE代碼自動生成工具為其申請OS事件。按圖4所示OS事件申請流程圖,示例系統中的運行實體Rurmable_SerVer符合要求,因此RTE代碼生成工具申請一個OS事件EVent_SerVer。如果是客戶端運行實體且其訪問服務有超時要求,RTE代碼自動生成工具為其申請OS告警。按如圖5所示的OS告警申請流程圖,示例系統中運行實體RUnnable_Client 符合要求,因此RTE代碼生成工具申請一個OS告警Alarm_Cyc,并關聯到Event_Server。三、將RTE代碼自動生成工具自定義的OS對象模型轉換成標準的AUT0SAR對象模型。根據對步驟3)的分析對示例系統進行如下處理清除AUT0SAR對象中RTE代碼自動生成工具申請的所有OS資源,包括OS事件、OS 告警及其相關的OS計數器,以及任務中包含的引用參數,這些參數引用的是由RTE代碼自動生成工具申請的且用于激活該任務的OS事件;遍歷RTE代碼自動生成工具申請的OS告警,將每個告警轉化成AUT0SAR標準的對象模型,并添加到AUT0SAR對象的Module模型中;遍歷RTE代碼自動生成工具申請的OS事件,將每個事件轉化成AUT0SAR標準的對象模型,更新該事件激活的任務包含的引用參數,并把該事件添加到AUT0SAR對象的 Module模型中;在本示例系統中,用戶已經配置了兩個事件和Event_Custom_l和Event_ Custom_2,如圖6所示,分別占用掩碼Oxl和0x2 ;同時系統中還有兩個告警Alarm_Custom_l 禾口 Alarm_Custom_2,其中 Alarm_Custom_2 用于設置事件 Event_Custom_2。經過前面兩個步驟,本示例系統分別新申請了一個OS事件(Event—Server)和OS 告警(Alarm_Cyc),再按步驟3)將其轉換成AUT0SAR標準類型對象,轉換流程圖如圖7所
7J\ ο如圖8所示的示例系統轉換成AUT0SAR標準類型對象后,為新OS事件EVent_ Server分配掩碼0x3,并關聯到新告警Alarm_Cyc。然而,如果這時用戶更改OS模塊配置,刪除事件EVent_CuStom_l,再調用本方法轉換對象后如圖9所示,這時新事件EventServer被分配到空閑的掩碼0x1。可以看出該轉換步驟充分考慮了前兩步的分析和計算結果,節省對OS對象的消耗。 雖然通過上述具體實例對本發明進行了說明,但是本發明并不局限于上述實例, 對于本領域的相關人員,可以根據本發明的技術方案和思想,作出其他各種改變和變形,而所有這些都應該屬于本發明權利要求的保護范圍內。
權利要求
1.一種應用于RTE代碼生成的OS資源分配沖突解決方法,其特征在于步驟如下(1)、提取AUT0SAR對象的元素信息,并轉存到RTE代碼自動生成工具自定義的模型中;(2)、提取通信需求及用戶已配置的OS模塊信息,計算RTE為實現通信API所需依賴的新OS對象,然后向OS申請這些資源;(3)、將RTE代碼自動生成工具自定義的OS對象模型轉換成標準的AUT0SAR對象模型。
2.根據權利要求1所述的應用于RTE代碼生成的OS資源分配沖突解決方法,其特征在于所述的步驟(2)操作進行處理的步驟包括(2. 1)遍歷任務中的運行實體,如果是服務器端運行實體且以同步方式提供服務,RTE 代碼自動生成工具為其申請OS事件,用于客戶端運行實體和服務器端運行實體的通信同步;(2. 2)遍歷任務中的運行實體,如果是客戶端運行實體且其訪問服務有超時要求,RTE 代碼自動生成工具為其申請OS告警,用于RTE監控該運行實體的超時; (2.3)對于步驟(2. 2)提及的OS告警,要將其關聯到合適的OS事件。
3.根據權利要求1所述的應用于RTE代碼生成的OS資源分配沖突解決方法,其特征在于所述的步驟(3)操作進行處理的步驟包括(3. 1)清除AUT0SAR對象中RTE代碼自動生成工具申請的所有OS資源,包括OS事件、 OS告警及其相關的OS計數器,以及任務中包含的引用參數,這些參數引用的是由RTE代碼自動生成工具申請的且用于激活該任務的OS事件;(3. 2)遍歷RTE代碼自動生成工具申請的OS告警,將每個告警轉化成AUT0SAR標準類型的對象模型,并添加到AUT0SAR對象的Module模型中;(3. 3)遍歷RTE代碼自動生成工具申請的OS事件,將每個事件轉化成AUT0SAR標準類型的對象模型,更新該事件激活的任務包含的引用參數,并把該事件添加到AUT0SAR對象的Module模型中。
4.根據權利要求2所述的應用于RTE代碼生成的OS資源分配沖突解決方法,其特征在于所述的步驟(2. 3)中,將RTE代碼自動生成工具申請的OS告警關聯到相應的OS事件, 其處理步驟包括(2. 3. 1)如果是同ECU內的客戶-服務通信方式,直接找到服務器端運行實體關聯的同步事件,并在告警中保存下對該事件的引用;(2. 3. 2)如果是跨E⑶的客戶-服務通信方式,則遍歷系統中由RTE代碼自動生成工具申請的事件列表,如果事件關聯的運行實體同時該告警關聯的運行實體,則在告警中保存下對查找到事件的引用。
全文摘要
本發明涉及一種應用于RTE代碼生成的OS資源分配沖突解決方法,該方法的步驟如下a)提取AUTOSAR對象的元素信息,并轉存到RTE代碼自動生成工具自定義的模型中;b)提取通信需求及用戶已配置的OS模塊信息,計算RTE為實現通信API所需依賴的新OS對象,然后向OS申請這些資源;c)將RTE代碼自動生成工具自定義的OS對象模型轉換成標準的AUTOSAR對象模型。本發明有益的效果本發明每次方法被調用時都重新分析模型,能夠允許用戶在ECU配置階段反復配置OS,同時不影響RTE代碼的自動生成。此外,RTE代碼自動生成工具可以把對OS對象的新需求轉化成標準的AUTOSAR對象模型,并傳遞給ECU配置工具,方便其在OS模塊的配置界面中呈現給用戶。
文檔編號G06F9/50GK102385530SQ201110229808
公開日2012年3月21日 申請日期2011年8月11日 優先權日2011年8月11日
發明者劉敏, 李紅, 耿莉莉, 鐘曉峰, 顧宗華 申請人:浙江大學