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