一種autosar軟件組件的內(nèi)部行為對(duì)象代碼生成方法
【專利摘要】本發(fā)明公開了一種AUTOSAR軟件組件的內(nèi)部行為對(duì)象代碼生成方法,包括:根據(jù)需求確定需要的參數(shù),并設(shè)計(jì)配置界面;利用基于模板的代碼生成技術(shù)設(shè)計(jì)代碼模板;根據(jù)相應(yīng)的配置參數(shù)生成內(nèi)部行為對(duì)象代碼,并將這些參數(shù)進(jìn)行持久化保存。本發(fā)明內(nèi)部行為對(duì)象代碼生成方法與現(xiàn)有的基于Matlab/Simulink組件的代碼生成方法相比,具有以下優(yōu)點(diǎn):軟件不需要依賴于Matlab/Simulink組件,減少了用戶學(xué)習(xí)使用成本;內(nèi)部行為對(duì)象參數(shù)配置工具可以定制,能滿足不同用戶的需求;用戶可以將原有的代碼與生成代碼連接起來(lái)使用,增強(qiáng)了代碼的復(fù)用性。
【專利說(shuō)明】
一種AUTOSAR軟件組件的內(nèi)部行為對(duì)象代碼生成方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于汽車電子軟件開發(fā)技術(shù)領(lǐng)域,具體涉及一種AUTOSAR軟件組件的內(nèi)部 行為對(duì)象代碼生成方法。
【背景技術(shù)】
[0002] AUTOSAR(AUTomotive Open System ARchitecture)是一個(gè)汽車電子軟件標(biāo)準(zhǔn),該 標(biāo)準(zhǔn)定義一套汽車電子軟件的開發(fā)方法,利用該方法開發(fā)的汽車電子軟件具有良好的可移 植性,可應(yīng)用于不同的汽車平臺(tái)。使用AUTOSAR開發(fā)包括軟件組件建模、系統(tǒng)配置、ECU抽取、 ECU配置、代碼生成等過(guò)程。軟件組件建模的作用是提供系統(tǒng)架構(gòu)的功能,讓用戶快速搭建 一個(gè)汽車電子系統(tǒng)的軟件原型,包括對(duì)軟件組件、端口、接口、數(shù)據(jù)類型、內(nèi)部行為、實(shí)現(xiàn)的 建模,這些元素組成了一個(gè)完整汽車電子軟件系統(tǒng)的抽象。MATLAB是一種應(yīng)用廣泛的系統(tǒng) 設(shè)計(jì)工具,在汽車電子領(lǐng)域中MATLAB/Simulink工具可以用來(lái)設(shè)計(jì)單個(gè)原子軟件組件的內(nèi) 部邏輯算法,并生成實(shí)現(xiàn)代碼,汽車電子領(lǐng)域很多遺留的系統(tǒng)都采取MATLAB/Simul ink進(jìn)行 設(shè)計(jì)的。
[0003] 方法論規(guī)定軟件系統(tǒng)開發(fā)設(shè)計(jì)過(guò)程分為系統(tǒng)配置階段和ECU配置兩階段,其中系 統(tǒng)配置階段的目的是將軟件系統(tǒng)的具體需求利用AUTOSAR的基本組件進(jìn)行建模,并最終將 這些需求映射到具體的ECU(Electronic Control Unit)上。在系統(tǒng)配置階段對(duì)軟件系統(tǒng)建 模時(shí),首先需要利用AUTOSAR提供的軟件組件將系統(tǒng)描述出來(lái),然后利用內(nèi)部系統(tǒng)建模工 具,實(shí)現(xiàn)每個(gè)軟件組件的功能。
[0004] 目前很多基于AUTOSAR標(biāo)準(zhǔn)實(shí)現(xiàn)的汽車電子開發(fā)集成開發(fā)環(huán)境利用Matlab/ Simulink組件進(jìn)行軟件組件內(nèi)部行為(Internal Behavior)建模,即這些工具需要依賴于 Mat lab/Simul ink工具。因?yàn)镸atlab軟件功能復(fù)雜、版本眾多,便給這些集成開發(fā)環(huán)境的使 用帶來(lái)諸多不便。
【發(fā)明內(nèi)容】
[0005] 為了解除集成開發(fā)環(huán)境工具對(duì)Matlab/Simulink的依賴,本發(fā)明提供了一種 AUTOSAR軟件組件的內(nèi)部行為對(duì)象代碼生成方法,利用該方法可以在集成開發(fā)環(huán)境內(nèi)部實(shí) 現(xiàn)軟件組件的內(nèi)部建模。
[0006] -種AUTOSAR軟件組件的內(nèi)部行為對(duì)象代碼生成方法,包括如下步驟:
[0007] (1)根據(jù)軟件組件的功能需求,確定生成內(nèi)部行為對(duì)象代碼所需的參數(shù),進(jìn)而設(shè)計(jì) 實(shí)現(xiàn)內(nèi)部行為的配置界面;
[0008] (2)設(shè)計(jì)并手動(dòng)編寫內(nèi)部行為組件的代碼模板,從而將內(nèi)部行為對(duì)象代碼模板化;
[0009] (3)從所述的配置界面中讀取內(nèi)部行為的對(duì)象名稱及相關(guān)參數(shù),依據(jù)所述的代碼 模板生成對(duì)應(yīng)的XML配置文件,并進(jìn)行持久化操作,以便軟件工具重新啟動(dòng)后能夠再次獲取 這些配置參數(shù);
[0010] (4)根據(jù)代碼模板所使用到的內(nèi)部行為導(dǎo)入對(duì)應(yīng)函數(shù)實(shí)體,即在鏈接庫(kù)文件界面 中選中所需導(dǎo)入的函數(shù)庫(kù)或已有的.C或.h源文件,以便后續(xù)代碼成功編譯;
[0011] (5)根據(jù)所述的XML配置文件使代碼模板與配置界面中的對(duì)象名稱及相關(guān)參數(shù)建 立映射關(guān)系,選中對(duì)應(yīng)的軟件組件或軟件組件所在的工程并進(jìn)行代碼生成,最終在所在工 程的對(duì)應(yīng)目錄下生成與所述代碼模板文件名所對(duì)應(yīng)的.c或.h源代碼文件。
[0012] 所述的步驟(1)中內(nèi)部行為對(duì)象的名稱及內(nèi)部行為對(duì)象所需的參數(shù)名稱滿足 AITT0SAR標(biāo)準(zhǔn)的要求。
[0013]所述代碼模板的文件后綴名為.vm。
[0014] 所述的代碼模板調(diào)用RTE (Run-Time Envir〇nment)標(biāo)準(zhǔn)中規(guī)定的函數(shù)接口讀寫參 數(shù)。
[0015] 所述的RTE是AUT0SAR系統(tǒng)中ECU架構(gòu)的核心,其實(shí)現(xiàn)了通信接口,提供組件間的通 信服務(wù),因此組件間的所有通信均在RTE控制下完成。
[0016] 所述的代碼模板只提供AUT0SAR軟件組件端口參數(shù)的讀取和寫入操作,未對(duì)端口 參數(shù)進(jìn)行其他復(fù)雜的操作。
[0017] 若要對(duì)端口參數(shù)進(jìn)行其他復(fù)雜的處理,則可自行修改內(nèi)部行為對(duì)象生成后的代 碼,或通過(guò)鏈接庫(kù)文件界面從靜態(tài)鏈接庫(kù)中將邏輯處理代碼鏈接到最終生成的代碼中。
[0018] 所述的步驟(3)中利用Velocity技術(shù)從配置界面中讀取內(nèi)部行為的對(duì)象名稱及相 關(guān)參數(shù)。
[0019] 本發(fā)明利用基于模板的代碼生成技術(shù),設(shè)計(jì)內(nèi)部行為對(duì)象代碼生成模板,然后結(jié) 合用戶配置的內(nèi)部行為對(duì)象的參數(shù),最終自動(dòng)生成內(nèi)部行為對(duì)象的代碼。與現(xiàn)有技術(shù)相比, 本發(fā)明具有以下優(yōu)點(diǎn):(1)AUT0SAR開發(fā)環(huán)境不必依賴于Matlab/Simulink工具來(lái)生成內(nèi)部 行為對(duì)象的代碼;(2)本發(fā)明方法生成內(nèi)部行為對(duì)象的代碼時(shí),其配置參數(shù)是可定制的;(3) 用戶可使用原有的邏輯代碼,不必完全重新設(shè)計(jì)內(nèi)部行為對(duì)象的邏輯功能代碼。
【附圖說(shuō)明】
[0020] 圖1為本發(fā)明內(nèi)部行為對(duì)象代碼生成方法的流程示意圖。
[0021] 圖2為本發(fā)明具體實(shí)施例中內(nèi)部行為對(duì)象需要配置參數(shù)的示意圖。
【具體實(shí)施方式】
[0022] 為了更為具體地描述本發(fā)明,下面結(jié)合附圖及【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案 進(jìn)行詳細(xì)說(shuō)明。
[0023] 為解決對(duì)Matlab/Simul ink工具的依賴,如圖1所示,本發(fā)明提出了一種AUT0SAR軟 件組件的內(nèi)部行為對(duì)象代碼生成方法,具體步驟如下:
[0024] (1)根據(jù)軟件組件的功能需求,確定生成內(nèi)部行為對(duì)象代碼需要的參數(shù),進(jìn)而設(shè)計(jì) 實(shí)現(xiàn)內(nèi)部行為配置界面;其中內(nèi)部行為對(duì)象名稱和所需參數(shù)名稱滿足AUT0SAR標(biāo)準(zhǔn)的要求。
[0025] (2)設(shè)計(jì)并手動(dòng)編寫后綴名為.vm的內(nèi)部行為組件的代碼模板文件,將內(nèi)部行為對(duì) 象代碼模板化。其中,代碼模板需要調(diào)用AUT0SAR的RTE標(biāo)準(zhǔn)中規(guī)定的函數(shù)接口讀寫參數(shù);代 碼模板只提供AUT0SAR軟件組件Port參數(shù)的讀取和寫入操作,未對(duì)參數(shù)進(jìn)行其他復(fù)雜的操 作。如果想要對(duì)這些參數(shù)進(jìn)行更復(fù)雜的處理,本發(fā)明支持自行修改內(nèi)部行為對(duì)象生成后的 代碼,或通過(guò)Link Runnable File界面從靜態(tài)鏈接庫(kù)中將邏輯處理代碼鏈接到最終的代碼 中。
[0026] (3)利用Velocity技術(shù)從配置界面中讀取內(nèi)部行為的名稱和相關(guān)參數(shù),依據(jù)S20中 的模板文件生成對(duì)應(yīng)的XML配置文件,進(jìn)行持久化操作,以便軟件工具重新啟動(dòng),能夠再次 加載這些配置參數(shù)。
[0027] (4)根據(jù)步驟(2)中生成的對(duì)象代碼中所使用到的內(nèi)部行為至此只是一個(gè)函數(shù)對(duì) 象聲明,導(dǎo)入函數(shù)實(shí)體,需在Link Runnable File配置界面中,選中所需要導(dǎo)入的函數(shù)庫(kù)或 已有的.c和.h源文件,以便在后續(xù)代碼的編譯成功。
[0028] (5)以上各步驟完成后,需選中對(duì)應(yīng)的軟件組件或者軟件組件所在的工程,進(jìn)行代 碼生成,最終在工程的對(duì)應(yīng)目錄下生成模板文件名所對(duì)應(yīng)的.c和.h源代碼文件。
[0029] 以下實(shí)施例,基于浙江大學(xué)ESE工程中心研發(fā)的SmartSAR Studio汽車電子集成開 發(fā)環(huán)境,完成內(nèi)部行為對(duì)象代碼生成工具的設(shè)計(jì)與實(shí)現(xiàn)。SmartSAR Studio由四個(gè)工具組 成,即軟件架構(gòu)設(shè)計(jì)工具、系統(tǒng)配置工具、E⑶配置工具、RTE生成工具。在軟件架構(gòu)設(shè)計(jì)工具 中需要完成內(nèi)部行為對(duì)象代碼的生成,因此本實(shí)施案例主要在軟件架構(gòu)設(shè)計(jì)工具的基礎(chǔ) 上,實(shí)施內(nèi)部行為對(duì)象代碼生成方法,其具體的實(shí)施過(guò)程如下:
[0030] S1:確定內(nèi)部行為對(duì)象需要的配置的參數(shù)。本實(shí)施案例中,需要配置的參數(shù)有: Runnable Entity對(duì)象、RteEvent對(duì)象、內(nèi)部行為對(duì)象引用的Component信息,根據(jù)軟件組件 的功能需求,確定生成內(nèi)部行為對(duì)象代碼需要的參數(shù),在內(nèi)部行為配置界面進(jìn)行配置,如圖 2所示;其中內(nèi)部行為對(duì)象名稱和所需參數(shù)名稱滿足AUT0SAR標(biāo)準(zhǔn)的要求。
[0031] S2:根據(jù)需求制作內(nèi)部行為對(duì)象代碼生成模板文件。本實(shí)施案例中,手動(dòng)撰寫并制 定了六個(gè)代碼模板文件,并使用Velocity技術(shù)解析;設(shè)計(jì)的代碼模板見表1。本實(shí)施方式在 設(shè)計(jì)Velocity代碼模板時(shí),只是簡(jiǎn)單的獲取每個(gè)軟件組件(Component)的端口(Port)信息, 并進(jìn)行簡(jiǎn)單的從界面讀入,并寫出到生成的.c和.h源代碼文件。
[0032] 表 1
[0035] S3 :本實(shí)施案例中,提供S20代碼模板中的參數(shù)包括:Runnable Enti ty的名稱、 Runnable Entity的個(gè)數(shù)、PPort的名稱及個(gè)數(shù)、RPort的名稱及個(gè)數(shù)、端口發(fā)送的數(shù)據(jù)類型 等。
[0036] 在完成上述步驟之后,只需要在軟件組件視圖中觸發(fā)內(nèi)部行為對(duì)象配置,在完成 參數(shù)配置后,保存并觸發(fā)代碼生成操作,即可完成內(nèi)部行為對(duì)象的代碼生成。
[0037] 上述的對(duì)實(shí)施例的描述是為便于本技術(shù)領(lǐng)域的普通技術(shù)人員能理解和應(yīng)用本發(fā) 明。熟悉本領(lǐng)域技術(shù)的人員顯然可以容易地對(duì)上述實(shí)施例做出各種修改,并把在此說(shuō)明的 一般原理應(yīng)用到其他實(shí)施例中而不必經(jīng)過(guò)創(chuàng)造性的勞動(dòng)。因此,本發(fā)明不限于上述實(shí)施例, 本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的揭示,對(duì)于本發(fā)明做出的改進(jìn)和修改都應(yīng)該在本發(fā)明的保護(hù) 范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種AUTOSAR軟件組件的內(nèi)部行為對(duì)象代碼生成方法,包括如下步驟: (1) 根據(jù)軟件組件的功能需求,確定生成內(nèi)部行為對(duì)象代碼所需的參數(shù),進(jìn)而設(shè)計(jì)實(shí)現(xiàn) 內(nèi)部行為的配置界面; (2) 設(shè)計(jì)并手動(dòng)編寫內(nèi)部行為組件的代碼模板,從而將內(nèi)部行為對(duì)象代碼模板化; (3) 從所述的配置界面中讀取內(nèi)部行為的對(duì)象名稱及相關(guān)參數(shù),依據(jù)所述的代碼模板 生成對(duì)應(yīng)的XML配置文件,并進(jìn)行持久化操作,以便軟件工具重新啟動(dòng)后能夠再次獲取這些 配置參數(shù); (4) 根據(jù)代碼模板所使用到的內(nèi)部行為導(dǎo)入對(duì)應(yīng)函數(shù)實(shí)體,即在鏈接庫(kù)文件界面中選 中所需導(dǎo)入的函數(shù)庫(kù)或已有的.c或.h源文件,以便后續(xù)代碼成功編譯; (5) 根據(jù)所述的XML配置文件使代碼模板與配置界面中的對(duì)象名稱及相關(guān)參數(shù)建立映 射關(guān)系,選中對(duì)應(yīng)的軟件組件或軟件組件所在的工程并進(jìn)行代碼生成,最終在所在工程的 對(duì)應(yīng)目錄下生成與所述代碼模板文件名所對(duì)應(yīng)的.c或.h源代碼文件。2. 根據(jù)權(quán)利要求1所述的內(nèi)部行為對(duì)象代碼生成方法,其特征在于:所述的步驟(1)中 內(nèi)部行為對(duì)象的名稱及內(nèi)部行為對(duì)象所需的參數(shù)名稱滿足AUTOSAR標(biāo)準(zhǔn)的要求。3. 根據(jù)權(quán)利要求1所述的內(nèi)部行為對(duì)象代碼生成方法,其特征在于:所述代碼模板的文 件后綴名為·νπι〇4. 根據(jù)權(quán)利要求1所述的內(nèi)部行為對(duì)象代碼生成方法,其特征在于:所述的代碼模板調(diào) 用RTE標(biāo)準(zhǔn)中規(guī)定的函數(shù)接口讀寫參數(shù);所述的RTE是AUTOSAR系統(tǒng)中ECU架構(gòu)的核心,其實(shí) 現(xiàn)了通信接口,提供組件間的通信服務(wù),因此組件間的所有通信均在RTE控制下完成。5. 根據(jù)權(quán)利要求1所述的內(nèi)部行為對(duì)象代碼生成方法,其特征在于:所述的代碼模板只 提供AUTOSAR軟件組件端口參數(shù)的讀取和寫入操作,未對(duì)端口參數(shù)進(jìn)行其他復(fù)雜的操作。6. 根據(jù)權(quán)利要求5所述的內(nèi)部行為對(duì)象代碼生成方法,其特征在于:若要對(duì)端口參數(shù)進(jìn) 行其他復(fù)雜的處理,則可自行修改內(nèi)部行為對(duì)象生成后的代碼,或通過(guò)鏈接庫(kù)文件界面從 靜態(tài)鏈接庫(kù)中將邏輯處理代碼鏈接到最終生成的代碼中。7. 根據(jù)權(quán)利要求1所述的內(nèi)部行為對(duì)象代碼生成方法,其特征在于:所述的步驟(3)中 利用Velocity技術(shù)從配置界面中讀取內(nèi)部行為的對(duì)象名稱及相關(guān)參數(shù)。
【文檔編號(hào)】G06F9/44GK105912334SQ201610221094
【公開日】2016年8月31日
【申請(qǐng)日】2016年4月8日
【發(fā)明人】李紅, 楊國(guó)青, 段岳姣, 劉繼周, 陳坤, 吳朝暉
【申請(qǐng)人】浙江大學(xué)