曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多層數(shù)據(jù)管理方案解決AUTOSAR CP Composition級(jí)別共享代碼生成問(wèn)題

MATLAB ? 來(lái)源:MATLAB ? 2023-05-11 09:47 ? 次閱讀

重要的事情放到前頭說(shuō),本文提出的方法可解決:

AUTOSAR Composition 級(jí)別的代碼生成問(wèn)題

多模型代碼生成共享代碼問(wèn)題

單元模型單獨(dú)生成代碼時(shí)和共享數(shù)據(jù)的耦合問(wèn)題

在實(shí)際的項(xiàng)目中,我們經(jīng)常會(huì)遇到大規(guī)模模型代碼生成的共享代碼問(wèn)題,而且常常還會(huì)涉及到自定制存儲(chǔ)類(lèi),AUTOSAR Composition,多層數(shù)據(jù)管理方案等內(nèi)容。該問(wèn)題是一類(lèi)經(jīng)典問(wèn)題,基本上每個(gè)月都會(huì)有不同的用戶(hù)以各種不同的場(chǎng)景和方式前來(lái)詢(xún)問(wèn)解決方案或建議,為了幫助大家更好的處理此類(lèi)問(wèn)題,本文提供了一種以多層數(shù)據(jù)管理方案為核心的解耦方式,類(lèi)似的場(chǎng)景大家也可以嘗試借用此方法。

本文基于 MATLAB R2022b 版本,用到的模型和代碼鏈接可以在文末點(diǎn)擊“閱讀原文”獲取。

以下是詳細(xì)介紹。

第一步

構(gòu)建用例場(chǎng)景

我們首先快速構(gòu)建一個(gè)典型場(chǎng)景,新建了一個(gè)數(shù)據(jù)包 mySDCPackage:

6eca4a24-ef56-11ed-90ce-dac502259ad0.png

并使用 CSCDesigner 創(chuàng)建了如下所示的 Memory Section - MathWorks_CalPrm:

6edd1e56-ef56-11ed-90ce-dac502259ad0.png

以及 Storage Class - MathWorks_CalPrm_SC,該存儲(chǔ)類(lèi)使用上述創(chuàng)建的 Memory Section - MathWorks_CalPrm。通過(guò)該存儲(chǔ)類(lèi)約束的 Simulink Parameter 會(huì)生成到指定的 HCU_Prm.h 和指定名稱(chēng)的 .c 文件中(注意:Definition file 選 Instance Specific 以便后續(xù)可以單獨(dú)配置 Parameter 要生成到哪個(gè)頭文件):

6f0c9adc-ef56-11ed-90ce-dac502259ad0.png

接著我們將名為T(mén)hrottlePositionControlComposition.arxml 的 AUTOSAR CP Composition arxml 導(dǎo)入到System Composer,重現(xiàn)架構(gòu),如下圖所示:

6f592136-ef56-11ed-90ce-dac502259ad0.png

第二步

適用多層數(shù)據(jù)管理方案

這里為了方便解釋?zhuān)覀冎贿x Monitor(模型全名實(shí)為 ThrottlePositionMonitor),Controller 兩個(gè)子模型為例,其中 Monitor 模型的數(shù)據(jù)存放在 Monitor_Unique.sldd 和 Monitor_Shared.sldd 中,Monitor_Unique.sldd 直接關(guān)聯(lián) Monitor 模型,Monitor_Shared.sldd 不直接關(guān)聯(lián)模型而是被 Monitor_Unique.sldd 通過(guò)數(shù)據(jù)字典引用的方式進(jìn)行引用。

Monitor_Unique.sldd 中存放的是 Monitor 模型所獨(dú)有的數(shù)據(jù),Monitor_Shared.sldd 中存放的是 Monitor 模型會(huì)用到,同時(shí)也會(huì)被其他模型所使用的共享數(shù)據(jù),可認(rèn)為是單元級(jí)別共享數(shù)據(jù)。SharedDD.sldd 中存放的則是共享程度更高的共享數(shù)據(jù),可認(rèn)為是系統(tǒng)級(jí)別共享數(shù)據(jù)。Controller 模型同理,不做贅述。

這樣每個(gè)單元模型就形成了三層數(shù)據(jù)字典引用:Monitor.slx->Monitor_Unique.sldd->Monitor_Shared.sldd->SharedDD.sldd,后面我們會(huì)看到多一層“間接”就能起到解耦的作用,“間接”是軟件工程中非常強(qiáng)大的解耦和抽象方式。上述描述有點(diǎn)拗口,大家可搭配下圖幫助理解:

6f6be866-ef56-11ed-90ce-dac502259ad0.png

接著,我們?cè)?Monitor_Shared.sldd 中添加Monitor_Shared 參數(shù)定義,使用我們剛剛定義的數(shù)據(jù)包,接著設(shè)置存儲(chǔ)類(lèi)為MathWorks_CalPrm_SC,DefinitionFile 設(shè)置為 HCU_Prm_Monitor.c,Owner 設(shè)置為T(mén)hrottlePositionMonitor(模型名):

6f8efe32-ef56-11ed-90ce-dac502259ad0.png

各參數(shù)的設(shè)置如下:

在 Monitor_Unique.sldd 中添加名為Monitor_Unique 參數(shù)定義,存儲(chǔ)類(lèi)選MathWorks_CalPrm_SC,DefinitionFile設(shè)置為 HCU_Prm_Monitor.c,Owner 留空

在 Monitor_Shared.sldd 中添加名為Monitor_Shared 參數(shù)定義,存儲(chǔ)類(lèi)選MathWorks_CalPrm_SC,DefinitionFile設(shè)置為 HCU_Prm_Monitor.c,Owner 設(shè)置為 ThrottlePositionMonitor (即 Monitor 的模型名)

在 Controller_Unique.sldd 中添加名為Controller_Unique 參數(shù)定義,存儲(chǔ)類(lèi)選MathWorks_CalPrm_SC,DefinitionFile設(shè)置為 HCU_Prm_Controller.c,Owner 留空

在 Controller_Shared.sldd 中添加名為Controller_Shared 參數(shù)定義,存儲(chǔ)類(lèi)選MathWorks_CalPrm_SC,DefinitionFile設(shè)置為 HCU_Prm_Controller.c,Owner 設(shè)置為 Controller (即 Controller 的模型名)

在 SharedDD.sldd 中添加名為 GlobalSharedP 參數(shù)定義,存儲(chǔ)類(lèi)選 MathWorks_CalPrm_SC,DefinitionFile設(shè)置為 HCU_Prm_GlobalShared.c,Owner 的選擇要特別注意:當(dāng)前的 MATLAB R2022b 版本不支持 Owner 選為System Composer 的模型名,如果我們直接留空,那么每個(gè)用到 GlobalSharedP 參數(shù)的子模型都會(huì)生成一份 HCU_Prm_GlobalShared.c,顯然也不合適,因此我們可以指定 Owner 為某個(gè)子模型,這樣就可以臨時(shí)繞過(guò)此限制,只生成一份 HCU_Prm_GlobalShared.c,這里我們選擇Owner 為 Controller 模型

這里稍微解釋下 Owner 的作用:此處指定的 Owner 后續(xù)會(huì)配合選項(xiàng) “Use owner from data object for data definition placement”,在代碼生成時(shí),只有 Owner 模型生成代碼時(shí),此數(shù)據(jù)才會(huì)在代碼里生成定義,其他模型即使用到此數(shù)據(jù)也不會(huì)生成此數(shù)據(jù)的定義。

6fa82ed4-ef56-11ed-90ce-dac502259ad0.png

最后,讓 Controller_Unique.sldd 引用Monitor_Shared.sldd,讓 Monitor_Unique.sldd引用 Controller_Shared.sldd,形成如前圖所示數(shù)據(jù)字典交叉引用。

最終,Controller_Unique.sldd 中的數(shù)據(jù)如下圖所示:

6fcb13c2-ef56-11ed-90ce-dac502259ad0.png

Monitor_Unique.sldd 中的數(shù)據(jù)如下圖所示:

6fdff990-ef56-11ed-90ce-dac502259ad0.png

第三步

為數(shù)據(jù)對(duì)象明確 Owner

僅僅做到這一步的話(huà),當(dāng)我們對(duì) Monitor 或者 Controller 單元模型單獨(dú)生成代碼時(shí),這種交叉引用可能會(huì)導(dǎo)致 Monitor_Shared 和Controller_Shared 參數(shù)重復(fù)被生成,或者換句話(huà)說(shuō)即參數(shù)的 “Owner” 是不確定的。

我們期望的是:當(dāng)對(duì) Controller 模型生成代碼時(shí),Controller_Shared 參數(shù)定義要生成到HCU_Prm_Controller.c 中,即其在代碼中被當(dāng)成 Exported,而 Monitor_Shared 參數(shù)即使在 Controller 模型中被使用,其在代碼中卻不生成定義,即其在代碼中被當(dāng)成 Imported。

要實(shí)現(xiàn)這一點(diǎn),需要為 Monitor_Shared 和 Controller_Shared 參數(shù)設(shè)置 Owner(其所歸屬的模型名):

7001ee2e-ef56-11ed-90ce-dac502259ad0.png

7021a070-ef56-11ed-90ce-dac502259ad0.png

同時(shí)對(duì) Monitor/Controller 模型生成代碼的時(shí)候,記得勾選 Use owner from data object for data definition placement,這樣Monitor_Shared 對(duì)象僅在 Monitor 模型生成代碼的時(shí)候生成定義。

7045806c-ef56-11ed-90ce-dac502259ad0.png

兩個(gè)模型的 Shared code placement 都設(shè)置為 Shared Location:

7055eac4-ef56-11ed-90ce-dac502259ad0.png

第四步

在模型中交叉使用數(shù)據(jù)對(duì)象

如圖所示,在 Monitor 模型中使用定義的參數(shù),包括 Monitor_Unique, Monitor_Shared以及 GlobalSharedP:

706a04b4-ef56-11ed-90ce-dac502259ad0.png

在 Controller 模型中使用定義的參數(shù),包括 Controller_Unique, Monitor_Shared 以及 GlobalSharedP:

70869f84-ef56-11ed-90ce-dac502259ad0.png

第五步

代碼生成

對(duì) Controller 模型生成代碼,雖然 Controller 模型中使用到了 Monitor_Shared 參數(shù),但是該模型因?yàn)椴皇菂?shù)的 Owner,不會(huì)生成 Monitor_Shared 的定義,僅僅是引用:

70a141cc-ef56-11ed-90ce-dac502259ad0.png

70b77f0a-ef56-11ed-90ce-dac502259ad0.png

最后借助 System Composer 提供的 AUTOSAR Composition 級(jí)別的代碼生成功能:

70e6e5e2-ef56-11ed-90ce-dac502259ad0.png

我們直接看生成的 zip 壓縮包:

7104ca76-ef56-11ed-90ce-dac502259ad0.png

其中 HCU_Prm.h:

7134421a-ef56-11ed-90ce-dac502259ad0.png

HCU_Prm_Controller.c:

714d3eb4-ef56-11ed-90ce-dac502259ad0.png

HCU_Prm_GlobalShared.c:

7193b790-ef56-11ed-90ce-dac502259ad0.png

HCU_Prm_Monitor.c:

71d4915c-ef56-11ed-90ce-dac502259ad0.png

第六步

總結(jié)

至此,我們就實(shí)現(xiàn)了 Controller 模型和 Monitor 模型的數(shù)據(jù)解耦,且數(shù)據(jù)的定義各自生成到各自的子目錄中,此方式的另一個(gè)好處就是無(wú)論Monitor_Shared.sldd 中的數(shù)據(jù)如何變化,無(wú)需再對(duì)Controller 模型生成代碼,僅需要對(duì) Monitor 模型重新生成代碼,即可更新所需的定義文件(.c)和slprj/autosar/_sharedutils 中的聲明文件(.h),大大節(jié)省了重復(fù)生成代碼的時(shí)間。

當(dāng)然,如果大家希望上述所有的參數(shù)定義都放到名為HCU_Prm.c(即與聲明文件 HCU_Prm.h 同名)的文件中,則需要寫(xiě)個(gè)后處理腳本對(duì)代碼進(jìn)行綜合處理。

最后, 歡迎大家在借助本文方法解決問(wèn)題后在下面留言反饋,如果有更多實(shí)際項(xiàng)目中的困擾,也歡迎留言,我們會(huì)酌情推出更多類(lèi)似的技術(shù)文章,與大家一起共同進(jìn)步。

本文基于 MATLAB R2022b 版本,用到的模型和代碼鏈接可以在文末點(diǎn)擊“閱讀原文”獲取。

原審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    188

    文章

    2990

    瀏覽量

    232944
  • 數(shù)據(jù)管理
    +關(guān)注

    關(guān)注

    1

    文章

    309

    瀏覽量

    19909
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    370

    瀏覽量

    22337
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3471

    瀏覽量

    49874
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4883

    瀏覽量

    70099

原文標(biāo)題:多層數(shù)據(jù)管理方案解決 AUTOSAR CP Composition 級(jí)別共享代碼生成問(wèn)題

文章出處:【微信號(hào):MATLAB,微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    提升研發(fā)效率 保障數(shù)據(jù)安全——阿里云宣布數(shù)據(jù)管理DMS企業(yè)版正式商業(yè)化

    摘要: 阿里云數(shù)據(jù)管理DMS企業(yè)版,作為數(shù)據(jù)管理產(chǎn)品大家族里的新成員,于2017年11月開(kāi)啟公測(cè),今年1月底正式發(fā)布商業(yè)化版本。 作為業(yè)界領(lǐng)先的面向企業(yè)的數(shù)據(jù)庫(kù)DevOps解決方案,D
    發(fā)表于 01-30 14:07

    數(shù)據(jù)管理功能詳解

    訪(fǎng)問(wèn)控制管理。通過(guò)這一工具,單個(gè)用戶(hù)可以在本地工作站上管理多個(gè)文件,或多名用戶(hù)可以在共享區(qū)域來(lái)管理多個(gè)文件。下面小編就給大家介紹一下,如何快速使用浩辰3D軟件的
    發(fā)表于 11-03 15:32

    CP AUTOSAR EcuM的相關(guān)資料下載

    前言本系列請(qǐng)點(diǎn)擊:《搞一下CP AUTOSAR入門(mén)》所有系列請(qǐng)點(diǎn)擊:《汽車(chē)電子系列分享》在CP AUTOSAR架構(gòu)中定義了許多和模式管理相關(guān)
    發(fā)表于 02-11 07:05

    【學(xué)習(xí)打卡】OpenHarmony的分布式數(shù)據(jù)管理介紹

    分布式數(shù)據(jù)管理,英文縮寫(xiě)是DDM,是對(duì)一個(gè)系統(tǒng)中創(chuàng)建和收集的數(shù)據(jù)的提取、存儲(chǔ)、組織和維護(hù)的過(guò)程進(jìn)行的有效控制和管理。有效的數(shù)據(jù)管理對(duì)于運(yùn)行應(yīng)用程序,以及提供分析信息來(lái)幫助整個(gè)系統(tǒng)進(jìn)行規(guī)
    發(fā)表于 07-15 15:49

    HarmonyOS數(shù)據(jù)管理與應(yīng)用數(shù)據(jù)持久化(一)

    ,分為用戶(hù)首選項(xiàng)、鍵值型數(shù)據(jù)庫(kù)和關(guān)系型數(shù)據(jù)庫(kù)。 ● 數(shù)據(jù)管理:提供高效的數(shù)據(jù)管理能力,包括權(quán)限管理、數(shù)據(jù)
    發(fā)表于 11-01 16:27

    Bootloader 系統(tǒng)使用新應(yīng)用代碼和/或數(shù)據(jù)管理組件閃存的更新流程

    Bootloader 系統(tǒng)使用新應(yīng)用代碼和/或數(shù)據(jù)管理組件閃存的更新流程
    發(fā)表于 10-09 16:17 ?4次下載
    Bootloader 系統(tǒng)使用新應(yīng)用<b class='flag-5'>代碼</b>和/或<b class='flag-5'>數(shù)據(jù)管理</b>組件閃存的更新流程

    Bootloader系統(tǒng)使用新應(yīng)用代碼和/或數(shù)據(jù)管理組件閃存的更新流程

    Bootloader系統(tǒng)使用新應(yīng)用代碼和/或數(shù)據(jù)管理組件閃存的更新流程
    發(fā)表于 10-10 08:24 ?12次下載
    Bootloader系統(tǒng)使用新應(yīng)用<b class='flag-5'>代碼</b>和/或<b class='flag-5'>數(shù)據(jù)管理</b>組件閃存的更新流程

    關(guān)于云時(shí)代下的數(shù)據(jù)管理難題的分析和解決

    再者就是數(shù)據(jù)類(lèi)型正變得豐富多樣,數(shù)據(jù)管理場(chǎng)景也從原先的單純的存儲(chǔ),增加了災(zāi)備、歸檔、遷移、檢索、共享等眾多場(chǎng)景,不管是數(shù)據(jù)監(jiān)管還是業(yè)務(wù)要求,都對(duì)數(shù)據(jù)
    的頭像 發(fā)表于 10-28 08:57 ?2229次閱讀

    搞一下CP AUTOSAR 入門(mén) | 04 CP AUTOSAR EcuM 詳解

    前言本系列請(qǐng)點(diǎn)擊:《搞一下CP AUTOSAR入門(mén)》所有系列請(qǐng)點(diǎn)擊:《汽車(chē)電子系列分享》在CP AUTOSAR架構(gòu)中定義了許多和模式管理相關(guān)
    發(fā)表于 12-07 18:21 ?30次下載
    搞一下<b class='flag-5'>CP</b> <b class='flag-5'>AUTOSAR</b> 入門(mén) | 04 <b class='flag-5'>CP</b> <b class='flag-5'>AUTOSAR</b> EcuM 詳解

    CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版

    CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版免費(fèi)下載。
    發(fā)表于 04-06 16:21 ?0次下載

    AUTOSAR 解決方案 — INTEWORK-EAS-CP

    服務(wù)和培訓(xùn)等各個(gè)方面的內(nèi)容,旨在為國(guó)內(nèi)及國(guó)際的OEM和供應(yīng)商提供穩(wěn)定可靠、便捷易用的AUTOSAR平臺(tái)。EAS共分為CP和AP兩個(gè)平臺(tái)。方案特點(diǎn)基于AUTOSAR標(biāo)準(zhǔn)
    的頭像 發(fā)表于 05-21 09:26 ?1461次閱讀
    <b class='flag-5'>AUTOSAR</b> 解決<b class='flag-5'>方案</b> — INTEWORK-EAS-<b class='flag-5'>CP</b>

    解讀AUTOSAR模式管理BswM配置

    模式管理AUTOSAR中的一個(gè)難點(diǎn),也可以說(shuō)是最龐雜的一塊。因?yàn)槟J?b class='flag-5'>管理貫穿整個(gè)CP Autosar流程,幾乎所有模塊都跟BSWM發(fā)生著聯(lián)
    的頭像 發(fā)表于 10-26 16:55 ?3195次閱讀
    解讀<b class='flag-5'>AUTOSAR</b>模式<b class='flag-5'>管理</b>BswM配置

    AUTOSAR CP的復(fù)雜驅(qū)動(dòng)是什么

    復(fù)雜驅(qū)動(dòng)(CDD) AUTOSAR CP的復(fù)雜驅(qū)動(dòng)(CDD)是為了實(shí)現(xiàn)復(fù)雜的傳感器評(píng)估和執(zhí)行器控制而設(shè)計(jì)的。它通過(guò)直接訪(fǎng)問(wèn)微控制器來(lái)實(shí)現(xiàn),使用特定的中斷和/或復(fù)雜的微控制器外設(shè)、外部設(shè)備通信收發(fā)器
    的頭像 發(fā)表于 10-27 15:39 ?2662次閱讀
    <b class='flag-5'>AUTOSAR</b> <b class='flag-5'>CP</b>的復(fù)雜驅(qū)動(dòng)是什么

    AUTOSAR CP運(yùn)行時(shí)環(huán)境與應(yīng)用軟件

    )的服務(wù)。RTE的功能和意義如下: 通信基礎(chǔ)設(shè)施:RTE負(fù)責(zé)管理應(yīng)用軟件組件之間的通信。它提供了消息傳遞機(jī)制和事件觸發(fā)機(jī)制,使得應(yīng)用軟件組件可以相互發(fā)送和接收消息,實(shí)現(xiàn)數(shù)據(jù)的交換和共享。 訪(fǎng)問(wèn)基礎(chǔ)軟件組件:RTE提供了訪(fǎng)問(wèn)基礎(chǔ)軟
    的頭像 發(fā)表于 10-27 15:44 ?1514次閱讀
    <b class='flag-5'>AUTOSAR</b> <b class='flag-5'>CP</b>運(yùn)行時(shí)環(huán)境與應(yīng)用軟件

    食品檢測(cè)LIMS如何實(shí)現(xiàn)數(shù)據(jù)管理

    LIMS系統(tǒng)通過(guò)數(shù)據(jù)采集、處理與分析、存儲(chǔ)與管理、安全與保密、共享與協(xié)作、質(zhì)量控制以及報(bào)告生成等多個(gè)方面的功能實(shí)現(xiàn)數(shù)據(jù)管理,為食品檢測(cè)實(shí)驗(yàn)室
    的頭像 發(fā)表于 05-29 13:47 ?757次閱讀