CP AUTOSAR中Runnable的開發(fā)配置_第1頁(yè)
CP AUTOSAR中Runnable的開發(fā)配置_第2頁(yè)
CP AUTOSAR中Runnable的開發(fā)配置_第3頁(yè)
CP AUTOSAR中Runnable的開發(fā)配置_第4頁(yè)
CP AUTOSAR中Runnable的開發(fā)配置_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一、Runnable說明

在AUTOSAR

CP平臺(tái)中,Runnable是一個(gè)關(guān)鍵概念,它代表了可以被調(diào)度的最小執(zhí)行單位??梢詫unnable理解為一個(gè)獨(dú)立的任務(wù)或函數(shù),具有特定的輸入和輸出,用于執(zhí)行具體的操作或算法。在AUTOSARCP的軟件架構(gòu)中,Runnable被分配給Task(任務(wù))中執(zhí)行。Task是AUTOSAR中的基本執(zhí)行單元,負(fù)責(zé)執(zhí)行一系列的操作或功能,而這些操作或功能則通過Runnable來實(shí)現(xiàn)。通過將功能劃分為多個(gè)Runnable,AUTOSARCP平臺(tái)實(shí)現(xiàn)了軟件的模塊化設(shè)計(jì)。這種設(shè)計(jì)方式提高了軟件的可重用性、可維護(hù)性和可擴(kuò)展性。汽車軟件中的Runnable配置,一般是由汽車軟件的開發(fā)團(tuán)隊(duì)或相關(guān)技術(shù)人員來執(zhí)行的。具體來說,Runnable的配置通常涉及以下幾個(gè)方面:1.定義Runnable:在AutoSAR開發(fā)中,首先需要定義Runnable,這通常包括為其命名、編寫實(shí)現(xiàn)具體邏輯的函數(shù)代碼等。2.掛載到Task上:Runnable必須掛載在Task(任務(wù))上才能被執(zhí)行。Task是AutoSAR中的基本執(zhí)行單元,負(fù)責(zé)執(zhí)行特定的功能。通過合理的Task任務(wù)分配和Runnable配置,可以確保系統(tǒng)的高效、穩(wěn)定、安全運(yùn)行。3.配置觸發(fā)條件:Runnable的執(zhí)行需要滿足一定的觸發(fā)條件,這些條件可以是事件觸發(fā)、時(shí)間觸發(fā)或數(shù)據(jù)觸發(fā)等。開發(fā)人員需要根據(jù)具體需求來配置這些觸發(fā)條件,以確保Runnable在適當(dāng)?shù)臅r(shí)候被執(zhí)行。

4.與其他Runnable的交互:在系統(tǒng)中,不同的Runnable之間可能存在數(shù)據(jù)交互和共享資源的情況。因此,在配置Runnable時(shí),還需要考慮它們之間的通信與同步機(jī)制,以確保系統(tǒng)的整體性能和穩(wěn)定性。5.測(cè)試和驗(yàn)證:配置完成后,還需要對(duì)Runnable進(jìn)行測(cè)試和驗(yàn)證,以確保它們能夠按照預(yù)期工作,并滿足系統(tǒng)的性能和安全要求。所以汽車軟件中的Runnable配置是一個(gè)復(fù)雜而重要的過程,需要由專業(yè)的汽車軟件開發(fā)團(tuán)隊(duì)或技術(shù)人員來執(zhí)行。在實(shí)際開發(fā)過程中,軟件架構(gòu)工程師可以選擇在工程文件中是否配置Runnable,這也間接的決定了軟件單元開發(fā)工程師的工作范圍差異。本文針對(duì)這種差異做一個(gè)演示說明。二、工具準(zhǔn)備

MATLAB、SIMULINK及工具包AUTOSARBlockset、EmbeddedCoder;用以導(dǎo)入軟件架構(gòu)模型文件、Runnable配置及C代碼生成等等;MATLAB推薦使用R2022b及之后的版本,MATLAB支持了AUTOSARBlockset的更新和使用。支持了AP平臺(tái),可以使用ara::com方法開發(fā)自適應(yīng)應(yīng)用軟件并部署在嵌入式Linux上,以及在架構(gòu)模型中創(chuàng)建數(shù)據(jù)類型和接口。另外需要準(zhǔn)備兩份軟件架構(gòu)ARXML文件,內(nèi)部均有一個(gè)Composition,包含兩個(gè)SWC,區(qū)別就在于一個(gè)直接配置了Runnable,另一個(gè)并未配置Runnable;

配置了Runnable的ARXML會(huì)有如下類似字段;三、含有Runnable的ARXML導(dǎo)入兩行指令就可以導(dǎo)入,并創(chuàng)建SWC模型:ar=arxml.importer('Seat_Heat_Composition_Runnable.arxml')createCompositionAsModel(ar,'/Components/Seat_Heat_Composition')創(chuàng)建出來Composition、各個(gè)SWC、數(shù)據(jù)類型定義的Simulink模型文件;

進(jìn)入AutosarBlockset工具箱,工具箱將自動(dòng)解析并展示該SWC的詳細(xì)內(nèi)容。在CodeMappingComponentInterface和AUTOSAR字典部分,用戶不僅能夠查看到SWC內(nèi)部定義的所有Runnable實(shí)體的列表,還能進(jìn)一步深入了解每個(gè)Runnable的具體屬性。比如:Runnable名稱:每個(gè)Runnable都有一個(gè)唯一的標(biāo)識(shí)符或名稱,用于在SWC內(nèi)部及與其他組件交互時(shí)引用。執(zhí)行周期:指定了Runnable被調(diào)度的頻率,即它應(yīng)當(dāng)多久執(zhí)行一次。這可以是基于時(shí)間的(如每10毫秒執(zhí)行一次)或基于事件的(當(dāng)滿足特定條件時(shí)觸發(fā))。參數(shù)列表:列出了Runnable執(zhí)行時(shí)可能需要接收的輸入?yún)?shù)以及可能產(chǎn)生的輸出參數(shù)。后面繼續(xù)進(jìn)行模型搭建、工程配置與代碼生成等工作即可。四、不含Runnable的ARXML導(dǎo)入

使用與上一節(jié)相同的指令,導(dǎo)入了不含Runnable信息的ARXML文件。但是從生成的Simulink模型來看,同樣已經(jīng)有了Runnable信息;雙擊進(jìn)入一個(gè)SWC,點(diǎn)擊菜單欄中的APP-AutosarComponentDesign(AutosarBlockset工具箱),再進(jìn)入AUTOSAR字典的CodeMapping界面可以發(fā)現(xiàn),ARXML導(dǎo)入時(shí),對(duì)于每個(gè)SWC,根據(jù)其名稱自動(dòng)生成了兩個(gè)Runnable,一個(gè)初始化Runnable、一個(gè)事件型Runnable,其周期與模型默認(rèn)求解器的周期一致;

但是SWC內(nèi)還未有非常明確function或system模塊與runnable對(duì)應(yīng);可以創(chuàng)建Subsystem模塊,并在其內(nèi)構(gòu)建模型邏輯,也可以直接搭建模型,不過如果同一SWC內(nèi)含有多個(gè)Runnable,則顯得混亂,因此建議創(chuàng)建Subsystem模塊,再構(gòu)建模型邏輯;

值得注意的是,如果不做其他配置修改,那么所有的模塊參數(shù)都將隸屬于同一個(gè)Runnable函數(shù);五、新增RunnableSimulink類型函數(shù)模塊創(chuàng)建

添加Function-CallSubsystem與Function-CallGenerator模塊,雙擊修改Function-CallGenerator參數(shù),修改采樣時(shí)間,為系統(tǒng)求解器默認(rèn)時(shí)間的整數(shù)倍;當(dāng)然這也只是增加了一個(gè)Simulink模塊,并未對(duì)架構(gòu)產(chǎn)生任何影響;

另外,如果使用的input、output的求解速率不一樣,需要添加RateTransition模塊進(jìn)行速率轉(zhuǎn)換,如果數(shù)據(jù)類型不一致,需要添加DataTypeConversion進(jìn)行數(shù)據(jù)類型的準(zhǔn)換,比如uint8和枚舉類型之間的轉(zhuǎn)換;RateTransition需要勾選取消掉“確保確定性數(shù)據(jù)傳輸”;點(diǎn)擊左下角的刷新(代碼映射更新),可以看到更新出來將要與Runnablemapping的Simulink函數(shù)模塊;

Runnable創(chuàng)建與Mapping

新增Runnable:打開AUTOSAR字典,找到對(duì)應(yīng)的SWCtab欄中Runnables選項(xiàng),新增Runnable,修改Name與Symbol名稱,添加Event事件,選擇類型并修改名稱,點(diǎn)擊“應(yīng)用”,關(guān)閉選項(xiàng)卡即可;在對(duì)應(yīng)的Simulink函數(shù)上map剛才創(chuàng)建的AUTOSARRunnable,這才算是完成了一個(gè)Runnable獨(dú)立模塊的創(chuàng)建;

IRV添加與Mapping

需要注意的是,如果SWC內(nèi)模型的搭建,涉及多個(gè)Runnable的交互,則需要使用RateTransition模塊進(jìn)行速率轉(zhuǎn)換,并且需要配置IRV;在AUTOSARCP中,IRV(Inter-RunnableVariable)是一個(gè)重要的概念,它指的是運(yùn)行實(shí)體(Runnable)之間的變量,用于實(shí)現(xiàn)軟件組件(SWC)內(nèi)部不同運(yùn)行實(shí)體(Runnable)之間的數(shù)據(jù)通信。在AUTOSAR的架構(gòu)中,軟件被劃分為多個(gè)層次,包括應(yīng)用層、運(yùn)行時(shí)環(huán)境層、基礎(chǔ)軟件層和硬件抽象層。在運(yùn)行時(shí)環(huán)境層中,Runnable是執(zhí)行單元,它們負(fù)責(zé)執(zhí)行具體的任務(wù)。IRV作為一種全局變量,允許這些Runnable之間共享和修改數(shù)據(jù),從而簡(jiǎn)化了任務(wù)間的數(shù)據(jù)通信過程。IRV的實(shí)現(xiàn)通常依賴于一些同步機(jī)制,如互斥鎖和條件變量,以確保對(duì)共享變量的訪問是安全的。這些機(jī)制可以防止多個(gè)任務(wù)同時(shí)修改同一個(gè)變量,從而避免數(shù)據(jù)競(jìng)爭(zhēng)和錯(cuò)誤的結(jié)果。打開AUTOSAR字典,找到對(duì)應(yīng)的SWCtab欄中IRV選項(xiàng),新增IRV,修改Name與讀寫權(quán)限,創(chuàng)建完成后關(guān)閉選項(xiàng)卡即可;回到CodeMapping選項(xiàng)卡中,找到“DataTransfers”,將simulink中需要map的source模塊map到剛才創(chuàng)建的IRV數(shù)據(jù)上;

生成代碼

返回,點(diǎn)擊代碼生成,對(duì)應(yīng)生成的函數(shù)名是AUTOSARRunnableSymbol名稱,同時(shí)也可以查看到IRV部分對(duì)應(yīng)生成的代碼。

六、小結(jié)使用MATLAB做CP軟件單元開發(fā)時(shí),當(dāng)軟件架構(gòu)工程師提供ARXML文件作為輸入時(shí),這個(gè)文件可能已經(jīng)預(yù)定義了部分或全部的Runnables,這些Runnables是AUTOSAR架構(gòu)中用于封裝軟件功能的基本單元。然而,無論ARXML文件中是否直接包含Runnables的定義,通過使用MATLAB中的AUTOSARBlockset工具箱進(jìn)行導(dǎo)入,都會(huì)觸發(fā)一個(gè)智能的解析與轉(zhuǎn)換過程。AUTOSARBlockset工具箱不僅能夠識(shí)別并導(dǎo)入ARXML文件中已存在的Runnables,還能夠根據(jù)文件中描述的系統(tǒng)架構(gòu)和接口信息,自動(dòng)推斷并生成缺失的Runnables。這一過程確保了軟件單元開發(fā)工程師在MATLAB環(huán)境中擁有一個(gè)完整且一致的AUTOSAR模型,為后續(xù)的開發(fā)工作奠定了堅(jiān)實(shí)的基礎(chǔ)。在導(dǎo)入ARXML并生成Runnables之后,軟件單元開發(fā)工程師便可以根據(jù)實(shí)際的模型算法需求,對(duì)生成的Runnables進(jìn)行精細(xì)化的調(diào)整

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論