專利名稱:用于autosar的rte代碼自動(dòng)生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及AUT0SAR智能汽車軟件開發(fā)技術(shù)領(lǐng)域,具體涉及一種用于AUT0SAR的 RTE代碼自動(dòng)生成方法。
背景技術(shù):
RTE (Run-Time Environment)是 AUT0SAR 系統(tǒng)中 ECU 架構(gòu)的核心。AUT0SAR 系統(tǒng)中組件間所有的通信都通過組件端口(port)進(jìn)行,而端口是由AUT0SAR接口(AUT0SAR Ihterfaces)定義的,RTE實(shí)現(xiàn)了通信接口,提供組件間的通信服務(wù),因此組件間的所有通信在RTE的控制之下。RTE提供的通信方式有兩種類型發(fā)送-接收接口類型和客戶-服務(wù)接口類型。發(fā)送-接收接口類型通信提供一種信息傳送機(jī)制,而客戶-服務(wù)接口類型通信觸發(fā)函數(shù)調(diào)用。RTE借助基礎(chǔ)軟件模塊(包括OS和COM)來完成上層組件間的通信服務(wù)。上層軟件組件看不到位于RTE下層的OS和COM。當(dāng)通信的兩個(gè)組件位于不同的E⑶上時(shí),RTE使用COM服務(wù)來完成ECU之間的通信。另外,RTE使用OS的任務(wù)資源來調(diào)度軟件組件的各個(gè)運(yùn)行實(shí)體運(yùn)行,即RTE使用OS和COM的服務(wù)來完成上層軟件組件的通信或者調(diào)度功能。RTE代碼自動(dòng)生成工具以E⑶配置描述文件為輸入,生成具有以上功能的RTE代碼(C語言描述),同時(shí)要求生成的代碼符合AUT0SAR規(guī)范。ECU配置描述文件描述標(biāo)準(zhǔn)的 AUT0SAR對(duì)象模型。組件組合可以分為兩部分,若干組件原型和若干連接器。組件類型經(jīng)實(shí)例化成為組件原型,而若干個(gè)有通信關(guān)系的組件原型可以組成一個(gè)特定子系統(tǒng)一組件組合,組件組合也是一種組件類型,可以繼續(xù)被實(shí)例化。組件原型通過連接器確定與其他組件原型的通信關(guān)系。連接器類型主要包含集合連接器、代理連接器兩種。其中集合連接器用于連接組件組合內(nèi)部的發(fā)送方組件原型端口和接收方組件原型端口,而代理連接器用于連接組件組合自身端口和組件組合內(nèi)部組件原型端口,相當(dāng)于組件組合代理內(nèi)部的組件原型對(duì)外通信,以此避免暴露組件組合內(nèi)部的組件原型。根據(jù)AUT0SAR方法論,一個(gè)完整開發(fā)過程依次經(jīng)過軟件組件建模、系統(tǒng)配置、E⑶ 配置最后到代碼生成。在系統(tǒng)配置階段,用戶將完成數(shù)據(jù)映射。數(shù)據(jù)映射是把某一個(gè)數(shù)據(jù)元素綁定到特定的信號(hào)上發(fā)送或接收,其中簡(jiǎn)單類型數(shù)據(jù)元素綁定到系統(tǒng)信號(hào),而復(fù)雜類型數(shù)據(jù)元素綁定到系統(tǒng)信號(hào)組。當(dāng)組件被分配到不同的ECU上運(yùn)行時(shí),依據(jù)解析的信號(hào)或者信號(hào)組,RTE調(diào)用COM服務(wù)來完成組件間通信。組件間的通信方式可以分為發(fā)送-接收類型和客戶-服務(wù)類型,其中前者有顯式/隱式之分,后者有同步/異步之別。而對(duì)于某一個(gè)發(fā)送-接收類型端口,還有其專屬的通信屬性配置本端口是否以隊(duì)列方式接收通信的數(shù)據(jù)元素、本端口發(fā)送/接收數(shù)據(jù)的初始值、本端口發(fā)送/接收數(shù)據(jù)的類型?;蛘呤菍?duì)于某一個(gè)客戶-服務(wù)類型端口,通信屬性為本服務(wù)端口的服務(wù)請(qǐng)求隊(duì)列的長度、本操作的參數(shù)列表。RTE代碼自動(dòng)生成工具擁有一套解析器用于分析邏輯上相對(duì)獨(dú)立的AUT0SAR對(duì)象模型,如連接器原型分析器就是用于分析組件組合內(nèi)的各條連接器,以建立系統(tǒng)中組件間的通信關(guān)系。為滿足通信要求,RTE還需要申請(qǐng)額外資源,如客戶-服務(wù)類型通信時(shí),需要OS告警或者事件資源的協(xié)助。因此,RTE代碼自動(dòng)生成工具定義RTE緩存計(jì)算器和OsNeeds 計(jì)算器,前者用于計(jì)算并申請(qǐng)RTE需要的緩存資源,而后者專用來計(jì)算并申請(qǐng)當(dāng)前系統(tǒng)需要的OS資源。然而,ECU配置描述文件中的描述模型專注于構(gòu)成整個(gè)系統(tǒng)的各個(gè)模塊的描述,用這些描述信息直接生成RTE代碼是不現(xiàn)實(shí)的,例如組件類型和組件實(shí)例分開描述,切斷了組件原型模型與其通信依賴的端口原型模型的實(shí)質(zhì)包含關(guān)系,導(dǎo)致傳統(tǒng)的基于模板的RTE 代碼自動(dòng)生成方法存在邏輯性差、可讀性低、開發(fā)繁瑣復(fù)雜、開發(fā)效率低下的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種邏輯性強(qiáng)、可讀性好、開發(fā)簡(jiǎn)單快捷、開發(fā)效率高的基于模板的RTE代碼自動(dòng)生成方法。為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為一種用于AUT0SAR的RTE代碼自動(dòng)生成方法,其實(shí)施步驟如下1)依次分析AUT0SAR中各組件實(shí)例,獲取當(dāng)前組件實(shí)例對(duì)應(yīng)的組件類型,獲取當(dāng)前組件實(shí)例的端口以及端口所屬接口類型,根據(jù)所述端口接口類型創(chuàng)建數(shù)據(jù)元素實(shí)例或者操作實(shí)例、在數(shù)據(jù)元素實(shí)例或者操作實(shí)例中保存所屬端口信息以及元素通信屬性,然后分析組件實(shí)例中各原子組件的內(nèi)部行為,在數(shù)據(jù)元素實(shí)例或者操作實(shí)例記錄對(duì)應(yīng)的通信方式,直至分析完所有的組件實(shí)例;2)依次分析具有連接關(guān)系的組件實(shí)例的組件組合,如果連接關(guān)系的通信方式為客戶-服務(wù)接口類型,則將該端口下的各操作實(shí)例保存通信對(duì)端的端口內(nèi)的操作實(shí)例;如果連接關(guān)系的通信方式為發(fā)送-接收接口類型,則將該端口下的各數(shù)據(jù)元素實(shí)例保存通信對(duì)端的端口內(nèi)的數(shù)據(jù)元素實(shí)例,直至分析完所有的連接關(guān)系;3)獲取RTE對(duì)應(yīng)各個(gè)數(shù)據(jù)元素實(shí)例或者操作實(shí)例所需要的緩存資源,并將獲取的緩存對(duì)應(yīng)保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。作為本發(fā)明技術(shù)方案的進(jìn)一步改進(jìn)所述步驟2、中分析具有連接關(guān)系的組件實(shí)例的組件組合時(shí),首先處理相同ECU內(nèi)部具有連接關(guān)系的組件實(shí)例,然后處理不同E⑶之間具有連接關(guān)系的組件實(shí)例。所述處理相同E⑶內(nèi)部具有連接關(guān)系的組件實(shí)例時(shí)的詳細(xì)步驟包括A)通過若干個(gè)代理連接或者集合連接查找到連接的發(fā)送端原子軟件組件的端 Π ;B)通過若干個(gè)代理連接或者集合連接查找到連接的接收端原子軟件組件的端 Π ;C)如果是發(fā)送-接收類型端口,在通過此端口通信的數(shù)據(jù)元素實(shí)例模型中保存對(duì)其通信對(duì)端的數(shù)據(jù)元素實(shí)例的引用;如果是客戶-服務(wù)類型端口,在通過端口通信的操作實(shí)例模型中保存對(duì)其通信的對(duì)端操作實(shí)例的引用。所述步驟2~)中分析具有連接關(guān)系的組件實(shí)例的組件組合時(shí),將執(zhí)行數(shù)據(jù)或者操作通信的系統(tǒng)信號(hào)或系統(tǒng)信號(hào)組的信息保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。所述步驟3)中獲取緩存資源時(shí),首先分析組件實(shí)例中的每個(gè)運(yùn)行實(shí)體的通信行為,根據(jù)所述通信行為定義接收緩存或者接收隊(duì)列、緩存拷貝、請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列,并在數(shù)據(jù)元素實(shí)例模型或者操作實(shí)例模型中保存對(duì)所述接收緩存或者接收隊(duì)列、緩存拷貝、請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列的引用;然后根據(jù)客戶-服務(wù)通信類型、運(yùn)行實(shí)體的通信行為以及ECU配置信息,在OS緩存資源中獲取需要向OS申請(qǐng)的事件或者告警資源,并在操作實(shí)例模型中保存對(duì)其使用的OS事件或者告警的引用。本發(fā)明具有下述優(yōu)點(diǎn)。1、本發(fā)明分析了 RTE代碼自動(dòng)生成工具的總體特點(diǎn),從其輸入文件E⑶配置描述文件出發(fā),分析其元素模型的信息,轉(zhuǎn)化成RTE代碼自動(dòng)生成工具自定義的模型。這種分析過程不修改原模型,只是創(chuàng)建自定義模型及模型間邏輯。2、本發(fā)明中的所述的RTE代碼自動(dòng)生成工具的自定義模型的邏輯關(guān)系接近目標(biāo)代碼,數(shù)據(jù)元素實(shí)例模型或是操作實(shí)例模型不僅增加了與其通信端口的關(guān)聯(lián)信息,而且保存了其通信方式,如是否以隊(duì)列方式接收等,從而簡(jiǎn)化了模板語言的開發(fā)。以數(shù)據(jù)元素實(shí)例模型為例,如果某數(shù)據(jù)元素以隊(duì)列方式接收,那么生成的RTE API類型就是Rte_ReCeive, 否則生成API類型是Rte_Read。因此模板開發(fā)可以以是否以隊(duì)列方式接收來判斷數(shù)據(jù)接收 API類型,既增強(qiáng)了模板語言的可讀性,又極大地方便RTE API的生成。3、本方法所述的自定義數(shù)據(jù)元素實(shí)例模型或是操作實(shí)例模型保存了對(duì)RTE代碼自動(dòng)生成工具申請(qǐng)的緩存資源或者OS資源的引用,而通過運(yùn)行實(shí)體對(duì)數(shù)據(jù)元素實(shí)例模型或者操作實(shí)例模型的包含關(guān)系,很容易從任務(wù)中找到對(duì)映射到該任務(wù)的運(yùn)行實(shí)體使用的緩存或者OS資源,因而方便了 Task的生成。
圖1為本發(fā)明實(shí)施例的方法流程示意圖。圖2為本發(fā)明實(shí)施例的組件實(shí)例模型示意圖。圖3為本發(fā)明實(shí)施例中示例系統(tǒng)經(jīng)步驟1)分析后創(chuàng)建的數(shù)據(jù)元素實(shí)例4為本發(fā)明實(shí)施例中示例系統(tǒng)經(jīng)步驟1)分析后創(chuàng)建操作實(shí)例5為本發(fā)明實(shí)施例中示例系統(tǒng)經(jīng)步驟2)分析后的數(shù)據(jù)元素實(shí)例6為本發(fā)明實(shí)施例中示例系統(tǒng)經(jīng)步驟2)分析后的操作實(shí)例7為本發(fā)明實(shí)施例中示例系統(tǒng)經(jīng)步驟3)分析后的數(shù)據(jù)元素實(shí)例8為本發(fā)明實(shí)施例中示例系統(tǒng)經(jīng)步驟3)分析后的操作實(shí)例9為本發(fā)明實(shí)施例數(shù)據(jù)元素實(shí)例創(chuàng)建流程圖。圖10為本發(fā)明實(shí)施例操作實(shí)例創(chuàng)建流程圖。
具體實(shí)施例方式如圖1所示,本發(fā)明實(shí)施例用于AUT0SAR的RTE代碼自動(dòng)生成方法的實(shí)施步驟如下1)依次分析AUT0SAR中各組件實(shí)例,獲取當(dāng)前組件實(shí)例對(duì)應(yīng)的組件類型,獲取當(dāng)前組件實(shí)例的端口以及端口所屬接口類型,根據(jù)端口接口類型創(chuàng)建數(shù)據(jù)元素實(shí)例或者操作實(shí)例、在數(shù)據(jù)元素實(shí)例或者操作實(shí)例中保存所屬端口信息以及元素通信屬性,然后分析組件實(shí)例中各原子組件的內(nèi)部行為,在數(shù)據(jù)元素實(shí)例或者操作實(shí)例記錄對(duì)應(yīng)的通信方式,直至分析完所有的組件實(shí)例;針對(duì)發(fā)送-接收類型端口,創(chuàng)建數(shù)據(jù)元素實(shí)例,其元素通信屬性為是否以隊(duì)列的方式發(fā)送或者接收;針對(duì)客戶-服務(wù)類型端口,創(chuàng)建操作實(shí)例,其元素通信屬性為服務(wù)請(qǐng)求的隊(duì)列長度信息。在數(shù)據(jù)元素實(shí)例對(duì)應(yīng)的通信方式為顯式或者隱式,操作實(shí)例記錄對(duì)應(yīng)的通信方式為同步或者異步。2)依次分析具有連接關(guān)系的組件實(shí)例的組件組合,如果連接關(guān)系的通信方式為客戶-服務(wù)接口類型,則將該端口下的各操作實(shí)例保存通信對(duì)端的端口內(nèi)的操作實(shí)例;如果連接關(guān)系的通信方式為發(fā)送-接收接口類型,則將該端口下的各數(shù)據(jù)元素實(shí)例保存通信對(duì)端的端口內(nèi)的數(shù)據(jù)元素實(shí)例,直至分析完所有的連接關(guān)系;3)獲取RTE對(duì)應(yīng)各個(gè)數(shù)據(jù)元素實(shí)例或者操作實(shí)例所需要的緩存資源,并將獲取的緩存對(duì)應(yīng)保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。步驟2)中分析具有連接關(guān)系的組件實(shí)例的組件組合時(shí),首先處理相同ECU內(nèi)部具有連接關(guān)系的組件實(shí)例,然后處理不同ECU之間具有連接關(guān)系的組件實(shí)例。處理相同E⑶內(nèi)部具有連接關(guān)系的組件實(shí)例時(shí)的詳細(xì)步驟包括A)通過若干個(gè)代理連接或者集合連接查找到連接的發(fā)送端原子軟件組件的端 Π ;B)通過若干個(gè)代理連接或者集合連接查找到連接的接收端原子軟件組件的端 Π ;C)如果是發(fā)送-接收類型端口,在通過此端口通信的數(shù)據(jù)元素實(shí)例模型中保存對(duì)其通信對(duì)端的數(shù)據(jù)元素實(shí)例的引用;如果是客戶-服務(wù)類型端口,在通過端口通信的操作實(shí)例模型中保存對(duì)其通信的對(duì)端操作實(shí)例的引用。步驟2~)中分析具有連接關(guān)系的組件實(shí)例的組件組合時(shí),將執(zhí)行數(shù)據(jù)或者操作通信的系統(tǒng)信號(hào)或系統(tǒng)信號(hào)組的信息保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。步驟3)中獲取緩存資源時(shí),首先分析組件實(shí)例中的每個(gè)運(yùn)行實(shí)體的通信行為,根據(jù)通信行為定義接收緩存/隊(duì)列、緩存拷貝、請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列,并在數(shù)據(jù)元素實(shí)例模型或者操作實(shí)例模型中保存對(duì)接收緩存/隊(duì)列、緩存拷貝、請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列的引用;然后根據(jù)客戶-服務(wù)通信類型、運(yùn)行實(shí)體的通信行為以及E⑶配置信息,在OS緩存資源中獲取需要向OS申請(qǐng)的事件或者告警緩存資源,并在操作實(shí)例模型中保存對(duì)其使用的OS事件或者告警的引用。如圖2所示,本發(fā)明實(shí)施例共有兩個(gè)組件實(shí)例,各自包含兩個(gè)端口。其中組件 Compl 包含 Port_Client 禾口 Port_Send, Comp2 包含 Port_Server 禾口 Port_Receive。 Port_ Client和PortJerver是客戶-服務(wù)通信類型端口,以同步有超時(shí)方式通信;而Port_Send 和P0rt_Receive是發(fā)送-接收類型端口,以隊(duì)列方式發(fā)送/接收數(shù)據(jù)。如圖3和圖4所示,經(jīng)過步驟1)以后,上述兩個(gè)組件實(shí)例分別被分析后創(chuàng)建數(shù)據(jù)元素實(shí)例模型 Rte_S_DataElement 和 Rte_R_DataElement、操作實(shí)例模型 Rte_C_0peration 和Rte_S_0peration。其中橢圓形元素表示是引用成員,如發(fā)送端口 Port_Send,菱形元素表示是屬性成員,如通信方式顯式。如圖5和圖6所示,經(jīng)過步驟2~)分析組件組合后,獲得組件間通信的通信雙方的連接關(guān)系,并把這種連接關(guān)系保存到數(shù)據(jù)元素實(shí)例模型或是操作實(shí)例模型中。數(shù)據(jù)元素實(shí)例保存下通信對(duì)端數(shù)據(jù)元素實(shí)例的引用,而操作實(shí)例也保存下通信對(duì)端操作實(shí)例的引用。本實(shí)施例中通過分析原子軟件組件內(nèi)部行為計(jì)算RTE為實(shí)現(xiàn)用戶要求的發(fā)送-接收類型通信方式需要申請(qǐng)的緩存資源(如接收隊(duì)列/接收緩存);或者分析ECU配置信息, 計(jì)算RTE為實(shí)現(xiàn)客戶-服務(wù)類型通信方式需要向OS申請(qǐng)的資源(事件/告警、請(qǐng)求隊(duì)列
寸乂 Oa)在分析完組件通信的連接關(guān)系后,由RTE緩存計(jì)算器負(fù)責(zé)計(jì)算合適的緩存。RTE 緩存計(jì)算器將針對(duì)組件中的每個(gè)運(yùn)行實(shí)體,分析其通信行為,以AUT0SAR標(biāo)準(zhǔn)為依據(jù),計(jì)算接收緩存/隊(duì)列,緩存拷貝、請(qǐng)求隊(duì)列、響應(yīng)隊(duì)列。b)在數(shù)據(jù)元素實(shí)例模型中保存對(duì)其使用的RTE緩存的引用。如圖7所示,本發(fā)明實(shí)施例中,PortJend和Port_ReCeiVe是發(fā)送-接收類型端口,且以隊(duì)列方式發(fā)送/接收數(shù)據(jù)。因此RTE緩存計(jì)算器計(jì)算得出,這對(duì)通信需要一個(gè)接收隊(duì)列,并申請(qǐng)隊(duì)列 Rte_ReceiveQueue_l。并在 Rte_S_DataElement 禾口 Rte_R_DataElement 中保存對(duì)Rte_ReceiveQueue_l的引用。c)保存對(duì)OS資源的引用。OsNeeds計(jì)算器將根據(jù)客戶-服務(wù)通信類型、運(yùn)行實(shí)體的通信行為以及ECU配置等信息,計(jì)算需要向OS申請(qǐng)的事件或者告警資源,并在操作實(shí)例模型中保存對(duì)其使用的OS事件或者告警的引用。進(jìn)一步,步驟包括1.申請(qǐng)事件資源。依次分析映射在OS任務(wù)中的運(yùn)行實(shí)體,如果是服務(wù)器端運(yùn)行實(shí)體,并且被以同步有超時(shí)方式請(qǐng)求服務(wù),則由RTE代碼自動(dòng)生成工具向OS 申請(qǐng)一個(gè)事件用于服務(wù)器端和客戶端的同步通信;如果是客戶端運(yùn)行實(shí)體,當(dāng)其以同步方式請(qǐng)求服務(wù)時(shí),申請(qǐng)一個(gè)同步事件用于與服務(wù)器端運(yùn)行實(shí)體的通信。2.申請(qǐng)告警資源。依次分析映射在OS任務(wù)中的運(yùn)行實(shí)體,當(dāng)該運(yùn)行實(shí)體是從客戶端請(qǐng)求服務(wù)且通信請(qǐng)求方式是同步有超時(shí)或者是異步時(shí),由RTE代碼自動(dòng)生成工具向OS 申請(qǐng)告警資源,用于RTE監(jiān)控超時(shí)通信。此外,要把申請(qǐng)的告警關(guān)聯(lián)到其等待的OS事件上。 如圖8所示,在本發(fā)明實(shí)施例中,Port_Client和Port_SerVer是客戶-服務(wù)通信類型端口, 以同步有超時(shí)方式通信。OsNeeds計(jì)算器根據(jù)同步通信方式計(jì)算并申請(qǐng)同步事件OsEvent, 又因?yàn)橥ㄐ攀怯谐瑫r(shí)的,因此在Client端還需要申請(qǐng)一個(gè)告警來監(jiān)控超時(shí)情況,這里告警命名為 OsAlarm。最后在 Rte_C_0peration 禾口 Rte_S_0peration 中保存對(duì)事件 OsEvent 的引用;在Rte_C_0peration中保存對(duì)告警OsAlarm的引用;把告警OsAlarm關(guān)聯(lián)到其等待的同步事件OsEvent上。如圖9所示,數(shù)據(jù)元素實(shí)例創(chuàng)建流程可以概括如下組件原型分析器分析各組件實(shí)例,分析組件實(shí)例的端口類型獲得對(duì)應(yīng)的接口類型,如果是發(fā)送-接收類型接口,創(chuàng)建數(shù)據(jù)元素實(shí)例模型,保存對(duì)通信端口的引用以及通信方式,同時(shí)通過連接器原型分析器獲取對(duì)端的數(shù)據(jù)元素,保存對(duì)端數(shù)據(jù)元素的引用;RTE緩存計(jì)算器針對(duì)每一個(gè)數(shù)據(jù)元素實(shí)例計(jì)算通信的緩存需求,如果需要?jiǎng)t創(chuàng)建緩存,并創(chuàng)建數(shù)據(jù)元素實(shí)例模型到RTE緩存的引用。如圖10所示,操作實(shí)例的創(chuàng)建流程可以概括如下組件原型分析器分析各組件實(shí)例,分析組件實(shí)例的端口類型獲得對(duì)應(yīng)的接口類型,如果是為客戶-服務(wù)類型接口,創(chuàng)建操作實(shí)例模型,保存對(duì)通信端口的引用以及通信參數(shù)列表,同時(shí)通過連接器原型分析器獲取對(duì)端的操作實(shí)例,保存對(duì)端操作實(shí)例的引用;OsNeeds計(jì)算器分析組件的內(nèi)部行為,針對(duì)每個(gè)運(yùn)行實(shí)體計(jì)算需要的OS緩存資源,如果需要事件則向?qū)?yīng)的OS申請(qǐng)事件緩存資源、如果需要告警則向?qū)?yīng)的OS申請(qǐng)告警資源,并最終將引用的緩存資源保存操作實(shí)例模型中。以上所述僅為本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅限于上述實(shí)施方式,凡是屬于本發(fā)明原理的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。對(duì)于本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明的原理的前提下進(jìn)行的若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種用于AUT0SAR的RTE代碼自動(dòng)生成方法,其特征在于其實(shí)施步驟如下1)依次分析AUT0SAR中各組件實(shí)例,獲取當(dāng)前組件實(shí)例對(duì)應(yīng)的組件類型,獲取當(dāng)前組件實(shí)例的端口以及端口所屬接口類型,根據(jù)所述端口接口類型創(chuàng)建數(shù)據(jù)元素實(shí)例或者操作實(shí)例,在數(shù)據(jù)元素實(shí)例或者操作實(shí)例中保存所屬端口信息以及元素通信屬性,然后分析組件實(shí)例中各原子組件的內(nèi)部行為,在數(shù)據(jù)元素實(shí)例或者操作實(shí)例記錄對(duì)應(yīng)的通信方式,直至分析完所有的組件實(shí)例;2)依次分析具有連接關(guān)系的組件實(shí)例的組件組合,如果連接關(guān)系的通信方式為客戶-服務(wù)接口類型,則將該端口下的各操作實(shí)例保存通信對(duì)端的端口內(nèi)的操作實(shí)例;如果連接關(guān)系的通信方式為發(fā)送-接收接口類型,則將該端口下的各數(shù)據(jù)元素實(shí)例保存通信對(duì)端的端口內(nèi)的數(shù)據(jù)元素實(shí)例,直至分析完所有的連接關(guān)系;3)獲取RTE對(duì)應(yīng)各個(gè)數(shù)據(jù)元素實(shí)例或者操作實(shí)例所需要的緩存資源,并將獲取的緩存對(duì)應(yīng)保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。
2.根據(jù)權(quán)利要求1所述的用于AUT0SAR的RTE代碼自動(dòng)生成方法,其特征在于所述步驟2、中分析具有連接關(guān)系的組件實(shí)例的組件組合時(shí),首先處理相同ECU內(nèi)部具有連接關(guān)系的組件實(shí)例,然后處理不同ECU之間具有連接關(guān)系的組件實(shí)例。
3.根據(jù)權(quán)利要求2所述的用于AUT0SAR的RTE代碼自動(dòng)生成方法,其特征在于所述處理相同ECU內(nèi)部具有連接關(guān)系的組件實(shí)例時(shí)的詳細(xì)步驟包括A)通過若干個(gè)代理連接或者集合連接查找到連接的發(fā)送端原子軟件組件的端口;B)通過若干個(gè)代理連接或者集合連接查找到連接的接收端原子軟件組件的端口;C)如果是發(fā)送-接收類型端口,在通過此端口通信的數(shù)據(jù)元素實(shí)例模型中保存對(duì)其通信對(duì)端的數(shù)據(jù)元素實(shí)例的引用;如果是客戶-服務(wù)類型端口,在通過端口通信的操作實(shí)例模型中保存對(duì)其通信的對(duì)端操作實(shí)例的引用。
4.根據(jù)權(quán)利要求3所述的用于AUT0SAR的RTE代碼自動(dòng)生成方法,其特征在于所述步驟2)中分析具有連接關(guān)系的組件實(shí)例的組件組合時(shí),將執(zhí)行數(shù)據(jù)或者操作通信的系統(tǒng)信號(hào)或系統(tǒng)信號(hào)組的信息保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。
5.根據(jù)權(quán)利要求1或2或3或4所述的用于AUT0SAR的RTE代碼自動(dòng)生成方法,其特征在于所述步驟3)中獲取緩存資源時(shí),首先分析組件實(shí)例中的每個(gè)運(yùn)行實(shí)體的通信行為, 根據(jù)所述通信行為定義接收緩存或者接收隊(duì)列、緩存拷貝、請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列,并在數(shù)據(jù)元素實(shí)例模型或者操作實(shí)例模型中保存對(duì)所述接收緩存或者接收隊(duì)列、緩存拷貝、請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列的引用;然后根據(jù)客戶-服務(wù)通信類型、運(yùn)行實(shí)體的通信行為以及E⑶配置信息,在OS資源中獲取需要向OS申請(qǐng)的事件或者告警資源,并在操作實(shí)例模型中保存對(duì)其使用的OS事件或者告警的引用。
全文摘要
本發(fā)明公開了一種用于AUTOSAR的RTE代碼自動(dòng)生成方法,其實(shí)施步驟如下1)依次分析AUTOSAR中各組件實(shí)例,創(chuàng)建數(shù)據(jù)元素實(shí)例或者操作實(shí)例、保存所屬端口信息以及元素通信屬性,然后分析組件實(shí)例中各原子組件的內(nèi)部行為,在數(shù)據(jù)元素實(shí)例或者操作實(shí)例記錄對(duì)應(yīng)的通信方式;2)依次分析具有連接關(guān)系的組件實(shí)例的組件組合,保存通信對(duì)端的端口內(nèi)的操作實(shí)例或者數(shù)據(jù)元素實(shí)例;3)獲取RTE對(duì)應(yīng)各個(gè)數(shù)據(jù)元素實(shí)例或者操作實(shí)例所需要的緩存資源,并將獲取的緩存對(duì)應(yīng)保存在對(duì)應(yīng)的數(shù)據(jù)元素實(shí)例或者操作實(shí)例中。本發(fā)明具有邏輯性強(qiáng)、可讀性好、開發(fā)簡(jiǎn)單快捷、開發(fā)效率高的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/44GK102214099SQ20111016260
公開日2011年10月12日 申請(qǐng)日期2011年6月16日 優(yōu)先權(quán)日2011年6月16日
發(fā)明者劉敏, 李紅, 汪金波, 耿莉莉, 顧宗華 申請(qǐng)人:浙江大學(xué)