版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025重慶廣播新聞中心政務(wù)服務(wù)團(tuán)隊(duì)人員招聘9人考試核心試題及答案解析
- 2025山西長(zhǎng)治市上黨區(qū)公益性崗位人員招聘50人備考核心試題附答案解析
- 2025內(nèi)蒙古北疆交通天然氣有限公司招聘6人備考核心試題附答案解析
- 2025廣東云浮市消防救援支隊(duì)招聘政府專職消防員21人考試核心題庫(kù)及答案解析
- 2025江西撫州市市屬國(guó)有企業(yè)招聘員工市國(guó)威安保服務(wù)有限公司押運(yùn)員體能測(cè)評(píng)考試核心題庫(kù)及答案解析
- 2026年景德鎮(zhèn)藝術(shù)職業(yè)大學(xué)單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解
- 2025年甘肅省甘南州碌曲縣選調(diào)工作人員和項(xiàng)目人員26人擇優(yōu)入編考試考試重點(diǎn)試題及答案解析
- 2026天津市南開區(qū)招聘事業(yè)單位20人(含高層次人才)備考核心題庫(kù)及答案解析
- 2025江蘇無錫市江南大學(xué)第二批輔導(dǎo)員、管理崗、其他專技崗招聘33人考試核心題庫(kù)及答案解析
- 2026年濟(jì)寧職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)及完整答案詳解1套
- 新錄用國(guó)家公務(wù)員任職定級(jí)審批表
- 2023年中證金融研究院事業(yè)單位招聘23人(共500題含答案解析)筆試必備資料歷年高頻考點(diǎn)試題摘選
- 醫(yī)療耗材配送保障能力及售后服務(wù)情況說明【八篇】
- 基于DSP的搶答器的設(shè)計(jì)與開發(fā)
- 風(fēng)力發(fā)電和超級(jí)電容器的混合儲(chǔ)能系統(tǒng)
- GB/T 4458.4-2003機(jī)械制圖尺寸注法
- GB/T 17450-1998技術(shù)制圖圖線
- 通信學(xué)院通信電子線路期末考試試卷及答案
- 《好習(xí)慣成就一生》主題班會(huì)課件
- 調(diào)味料產(chǎn)品生產(chǎn)許可證審查細(xì)則
- 電力電纜基礎(chǔ)知識(shí)專題培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論