Autosar RTE實現觀測量生成-基于ETAS軟件

文章目錄

    • 前言
    • 觀測量定義
      • arTypedPerInstanceMemory
      • Ports Measurable
    • 工具鏈配置及使用
      • Port中的配置
      • arTypedPerInstanceMemory觀測量
    • 生成文件分析
    • 總結

前言

之前我們在XCP中,對于標定量和觀測量并沒有嚴格按照Autosar標準中定義,Autosar RTE中對標定量和觀測量都有對應的定義,本文基于標準介紹觀測量在ETAS軟件中的實現。

觀測量定義

RTE中提供幾種觀測的方式:

  1. communication between Ports Measurable are
    ? VariableDataPrototypes of a SenderReceiverInterface used in
    a PortPrototype (of a SwComponentPrototype) to capture sender receiver communication or between SwComponentPrototypes
    ? VariableDataPrototypes of a NvDataInterface used in a PortPrototype (of a SwComponentPrototype) to capture non volatile data communication or between SwComponentPrototypes
    ? ArgumentDataPrototypes of an ClientServerOperation in a ClientServerInterface to capture client-server communication between SwComponentPrototypes
  2. communication inside of AUTOSAR SW-Cs Measurable are implicitInterRunnableVariable, explicitInterRunnableVariable or arTypedPerInstanceMemory
  3. data structures inside a AUTOSAR NvBlockSwComponent Measurable are ramBlocks and romBlocks of a NvBlockSwComponent’s NvBlock
  4. Communication inside of AUTOSAR Basic Software Modules Measurable are VariableDataPrototypes defined in role of arTypedPerInstanceMemory.

主要就是:
1.SWC中的Port可以作為觀測量,CS接口中的參數可以作為觀測量

2.SWC內部也可以定義觀測量

3.Nvmblock也可以作為觀測量

4.BSW模塊中的通信變量也可以作為觀測量

觀測量定義需要在SwDataDefProps中配置swCalibrationAccess,規范原文如下:
在這里插入圖片描述
只有配置為readOnly or readWrite的才能作為觀測量,否則會被忽略作為觀測量

注意:作為觀測量后,會生成對應的變量信息到Rte_McSupportData.arxml中以便后面生成a2l

arTypedPerInstanceMemory

該內存定義是ETAS推薦的觀測量定義方式,標準中描述如下:在這里插入圖片描述
這種方式定義的Memory需要在SwcInternalBehavior中配置

該方式定義的內存需要配置對應的數據類型,實際訪問時通過Rte_Pim接口訪問在這里插入圖片描述
該類型生成的Rte_Pim接口為Rte_Pim_<name>

Ports Measurable

以SenderReceiverInterface為例,只需要設置對應Port中的VariableDataPrototypes中的swCalibrationAccess即可

工具鏈配置及使用

Port中的配置

對于SenderReceiverInterface的Port,需要配置對應的swCalibrationAccess在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
配置好后即可作為觀測量使用

arTypedPerInstanceMemory觀測量

需要在InternalBehaviors中配置arTypedPerInstanceMemory
在這里插入圖片描述
設置對應Type中的swCalibrationAccess
在這里插入圖片描述
需要注意的是:由于設置swCalibrationAccess是針對于ImplementationDataTpye的,如果多個Port引用了同一個ImplementationDataTpye,則可能會出現不期望觀測的變量或者不存在的變量做為觀測量出現。

配置好后,需要進行EcuExtract,然后生成RTE

生成文件分析

對于Port中的觀測量來說,之前已經有了對應的變量,現在只是生成對應的a2l所需的信息到Rte_McSupportData.arxml中

                           <MC-DATA-INSTANCE><!--This is Sender-Receiver DataItem /Interfaces/ETAS_SenderReceiverInterface_sint8/sint8 in port /ETAS_BIP/INP_SWC/PP_Bsw_AmbTemp on Application Software Component Instance /SUM_FlatView/SwComponentTypes/SUM_FlatView/CPT_INP_SWC--><!--Reported because the data prototype is marked as measurable and is referenced by a FlatInstanceDescriptor and RTE measurement support is enabled--><SHORT-NAME>sint8</SHORT-NAME><LONG-NAME><L-4 L="EN">signed integer 8bit</L-4></LONG-NAME><CATEGORY>VALUE</CATEGORY><ADMIN-DATA><SDGS><SDG GID="ETAS-RTARTE"><SD GID="MC-DATA-CLASS">DATA-ITEM</SD></SDG></SDGS></ADMIN-DATA><FLAT-MAP-ENTRY-REF DEST="FLAT-INSTANCE-DESCRIPTOR">/SUM_FlatView/SUM_FlatMap/sint8</FLAT-MAP-ENTRY-REF><RESULTING-PROPERTIES><SW-DATA-DEF-PROPS-VARIANTS><SW-DATA-DEF-PROPS-CONDITIONAL><BASE-TYPE-REF BASE="Rte_MCSD_SwBaseTypes" DEST="SW-BASE-TYPE">AUTOSAR_PlatformTypes_SwBaseTypes_sint8</BASE-TYPE-REF><SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS><SW-REFRESH-TIMING><CSE-CODE>4</CSE-CODE><CSE-CODE-FACTOR>1</CSE-CODE-FACTOR></SW-REFRESH-TIMING></SW-DATA-DEF-PROPS-CONDITIONAL></SW-DATA-DEF-PROPS-VARIANTS></RESULTING-PROPERTIES><SYMBOL>Rte_Ms_000042</SYMBOL></MC-DATA-INSTANCE>

例如,此處關聯的變量為Rte_Ms_000042,后面會通過該文件生成a2l

對于arTypedPerInstanceMemory觀測量,生成的代碼示例如下:

#define RTE_START_SEC_EcucPartition_ComCore_VAR_CLEARED_32
#include "Rte_MemMap.h"
VAR(uint32, RTE_APPL_DATA) Rte_ArPim_INP_SWC_TestMea;
#define RTE_STOP_SEC_EcucPartition_ComCore_VAR_CLEARED_32
#include "Rte_MemMap.h"

對應變量的命名為Rte_ArPim_+SWC名+定義的變量名

對應的SWC的RTE頭文件中,生成了對應的接口函數

#define Rte_Pim_TestMea()  ( (P2VAR(uint32, AUTOMATIC, RTE_APPL_DATA)) &Rte_ArPim_INP_SWC_TestMea )

后面在SWC中通過Rte_Pim_TestMea訪問變量的地址,進而訪問其中的數據

示例訪問如下:

uint32* Pim_TestMea;
Pim_TestMea = Rte_Pim_TestMea();

生成的a2l信息如下:

                           <MC-DATA-INSTANCE><!--This is ArTyped Per-Instance Memory /ETAS_BIP/INP_SWC/IB_INP_SWC/TestMea on Application Software Component Instance /SUM_FlatView/SwComponentTypes/SUM_FlatView/CPT_INP_SWC--><!--Reported because the ArTyped PIM is marked as measurable and RTE measurement support is enabled--><SHORT-NAME>TestMea</SHORT-NAME><LONG-NAME><L-4 L="EN">unsigned integer 32bit</L-4></LONG-NAME><CATEGORY>VALUE</CATEGORY><ADMIN-DATA><SDGS><SDG GID="ETAS-RTARTE"><SD GID="MC-DATA-CLASS">AR-TYPED-PER-INSTANCE-MEMORY</SD></SDG></SDGS></ADMIN-DATA><FLAT-MAP-ENTRY-REF DEST="FLAT-INSTANCE-DESCRIPTOR">/SUM_FlatView/SUM_FlatMap/TestMea</FLAT-MAP-ENTRY-REF><RESULTING-PROPERTIES><SW-DATA-DEF-PROPS-VARIANTS><SW-DATA-DEF-PROPS-CONDITIONAL><BASE-TYPE-REF BASE="Rte_MCSD_SwBaseTypes" DEST="SW-BASE-TYPE">AUTOSAR_Platform_BaseTypes_uint32</BASE-TYPE-REF><SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS><SW-REFRESH-TIMING><CSE-CODE>1000</CSE-CODE><CSE-CODE-FACTOR>1</CSE-CODE-FACTOR></SW-REFRESH-TIMING></SW-DATA-DEF-PROPS-CONDITIONAL></SW-DATA-DEF-PROPS-VARIANTS></RESULTING-PROPERTIES><SYMBOL>Rte_ArPim_INP_SWC_TestMea</SYMBOL></MC-DATA-INSTANCE>

后面可以通過RTA-A2L工具將Rte_McSupportData.arxml中的變量生成到a2l中,然后就是更新a2l中的地址信息了。

生成的a2l MEASUREMENT 示例如下:
···
/begin MEASUREMENT Rte_ArPim_INP_SWC_TestMea
“unsigned integer 32bit”
ULONG
NO_COMPU_METHOD
0
0
0
4294967295
DISPLAY_IDENTIFIER TestMea
ECU_ADDRESS 0x00000000
MAX_REFRESH 1000
1
/end MEASUREMENT
···

總結

通過Autosar工具鏈的方式,可以自動生成對應的A2L信息,但開發過程中很多時候都會加一些全局變量來調試,一般手動添加一次a2l,也不會有太大的工作量,反而用工具生成可能更加麻煩一些。對于應用層開發有大量觀測量的,可以使用Simulink來生成對應的a2l信息~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89838.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89838.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89838.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【REACT18.x】creat-react-app在添加eslint時報錯Environment key “jest/globals“ is unknown

今天在創建新項目的時候&#xff0c;給cra創建的項目添加eslint支持&#xff0c;出現如下報錯 添加eslint npx eslint --init頁面報錯 Compiled with problems:ERROR [eslint] package.json eslint-config-react-app/jest#overrides[0]:Environment key "jest/globals&…

Linux的例行性工作 -- (練習)

1、atd和crond兩個任務管理程序的區別 答&#xff1a; atd 專為一次性任務設計&#xff0c;允許用戶在特定未來時間點&#xff08;絕對或相對時間&#xff09;執行單次命令后就結束。 crond 則是周期性任務的調度核心&#xff0c;通過配置文件&#xff08;crontab&#xff09;實…

《Java語言程序設計》1.6 復習題

1.6.1 什么是Java語言規范?計算機有嚴格的使用規則。如果編寫程序時沒有遵循這些規則&#xff0c;計算機就不能理解程序。Java語言規范和Java API定義了Java的標準。Java語言規范(Java language specification)是對Java程序設計語言的語法和語義的技術定義。應用程序接口(Appl…

【機器學習深度學習】什么是量化?

目錄 前言 一、量化的基本概念 1.1 量化對比示例 1.2 量化是如何實現的&#xff1f; 二、為什么要進行量化&#xff1f; 2.1 解決模型體積過大問題 2.2 降低對算力的依賴 2.3 加速模型訓練和推理 2.4 優化訓練過程 2.5 降低部署成本 小結&#xff1a;量化的應用場…

告別 T+1!解密金融級實時數據平臺的構建與實踐

在數字金融浪潮下&#xff0c;數據處理的“實時性”已不再是加分項&#xff0c;而是逐漸成為決定業務價值的核心競爭力。然而&#xff0c;金融機構在追求實時的道路上&#xff0c;往往陷入一個新的困境&#xff1a;實時分析系統與離線大數據平臺形成了兩套獨立的“煙囪”&#…

[Python] -項目實戰7- 用Python和Tkinter做一個圖形界面小游戲

一、為什么從小游戲入門GUI? 趣味性強:小游戲直觀、有趣,一學就上手。 系統掌握事件驅動:了解按鈕點擊、鍵盤響應、圖形刷新機制。 扎實基礎:為日后構建更復雜應用奠定 GUI 編程基礎。 二、選定游戲:猜數字小游戲 ?? 這個小游戲界面簡單,核心機制是:3 個按鈕分別…

【18】MFC入門到精通——MFC(VS2019)+ OpenCV 顯示圖片的3種方法

MFC (VS2019)+ OpenCV,顯示圖片的3種方法 1 方法介紹 2 方法一:嵌套OpenCV窗口顯示圖片 2.1 建立供工程 添加控件 2.2 引用頭文件 2.3 找到OnInitDialog()函數,在其中添加如下代碼 2.4 在button觸發函數中加入代碼(就是你雙擊button進入的函數) 2.5 注意事項 3 方法二:…

以“融合進化 智領未來”之名,金倉Kingbase FlySync:國產數據庫技術的突破與創新

目錄開篇&#xff1a;國產數據庫的歷史性跨越一、KFS 產品定位及發展歷程回顧1.1 Kingbase FlySync 發展1.2 Kingbase FlySync與Oracle GoldenGate的對比分析1.2.1 Kingbase FlySync 功能優勢1.2.2 技術架構對比1.2.3 性能與擴展性二、數字化時代的新挑戰2.1 決策實時性要求越來…

服務器配置錯誤漏洞

文章目錄一、文件解析漏洞1.Apache HTTPD多后綴解析漏洞二、目錄遍歷漏洞1.Apache目錄遍歷漏洞2.Nginx目錄穿越漏洞服務器配置錯誤漏洞指因服務器&#xff08;含系統、Web服務、數據庫等&#xff09;的參數設置、權限分配、組件配置等不當&#xff0c;導致的安全問題&#xff0…

大模型預測輸尿管上段結石技術方案大綱

目錄 1. 術前階段 2. 術中階段 3. 術后階段 4. 并發癥風險預測 5. 根據預測定手術方案 6. 麻醉方案 7. 術后護理 8. 統計分析 9. 技術驗證方法 10. 實驗證據 11. 健康教育與指導 12. 完整術方案流程圖(Mermaid) 1. 術前階段 步驟 關鍵要素 可編輯字段 1.1 影像采集 CT-IVU / …

docker compose 編排容器 mysql Springboot應用

寫一個docker-compose.yml文件 內容如下&#xff1a; services:db:image: "docker.xuanyuan.me/library/mysql:8.3.0"restart: unless-stoppedhostname: dbports:- "3306:3306"container_name: mysqlenvironment:- "MYSQL_ROOT_PASSWORD1234"m…

React 中 props 的最常用用法精選+useContext

? React 最常用 props 用法 10 例? 1. 傳遞字符串 / 數字 / 布爾值function UserCard({ name, age, isVip }) {return (<div>{name} - {age} - {isVip ? VIP : 普通用戶}</div>); }<UserCard name"張三" age{18} isVip{true} />? 2. 傳遞函數&…

離散型制造企業的可視化破局:設備OEE動態看板與工藝路徑模擬實踐

內容摘要離散型制造企業面臨著設備效率低下、生產過程不透明、工藝路徑復雜等諸多挑戰。如何通過可視化手段提升設備效率和生產透明度&#xff0c;成為企業亟待解決的問題。設備整體效率&#xff08;OEE&#xff09;動態看板和工藝路徑模擬是兩個關鍵的可視化工具&#xff0c;能…

在Tailwind Css中如何書寫flex布局

僅供參考 文章目錄一、啟用 flex 布局二、行內 flex 布局三、方向控制四、對齊方式五、子元素控制1、控制子元素的寬度是否可伸縮2、控制子元素順序3、控制子元素間的間隙4、控制子元素是否可換行顯示一、啟用 flex 布局 設置 class“flex” 啟用 flex 布局 <template>…

交通出行大前端與 AI 融合:智能導航與出行預測

交通出行類大前端應用&#xff08;導航APP、打車軟件、公交地鐵小程序等&#xff09;是連接用戶與出行服務的核心載體&#xff0c;其核心價值在于“高效規劃路徑、精準規避擁堵、適配個性化需求”。傳統導航依賴固定規則&#xff08;如“最短路徑優先”&#xff09;和歷史數據&…

csc(x)積分推導

在MATLAB中同時繪制 sin?(x), csc(x) 和 ln?∣tan?(x/2)∣的函數圖像&#xff0c;需要處理函數的奇點&#xff08;如 csc?(x) 在 sin?(x)0 時無定義&#xff0c;ln?∣tan?(x/2)∣ 在 xkπ 時無定義&#xff09;&#xff08;deepseek生成matlab代碼&#xff09;% 定義x范…

rtsp協議之.c++實現,rtsp,rtp協議框架,模擬多路音視頻h264,265,aac,數據幀傳輸,接收(二)

rtsp協議之.c實現&#xff0c;rtsp&#xff0c;rtp協議框架&#xff0c;模擬多路音視頻h264&#xff0c;265&#xff0c;aac&#xff0c;數據幀傳輸&#xff0c;接收&#xff08;二&#xff09; 1、RTSP 服務器核心&#xff1a;處理 RTSP 會話管理、請求解析和響應生成 2、媒體…

網絡性能與應用性能的協同優化研究:基于小波變換與CNN的圖像分類系統

網絡性能與應用性能的協同優化研究&#xff1a;基于小波變換與CNN的圖像分類系統 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 摘要 本文研究了網絡性能&#xff08;延遲、帶寬、丟…

【網絡安全領域】CTF競賽指南:賽事詳解、熱門平臺與信息獲取方式

CTF&#xff08;Capture The Flag&#xff09;&#xff0c;中文稱為奪旗賽&#xff0c;是網絡安全領域中一種備受關注和歡迎的競賽形式。以下是關于 CTF 競賽的詳細介紹&#xff0c;以及一些參賽平臺和相關咨詢途徑&#xff1a; CTF 競賽詳解 起源&#xff1a;CTF 起源于 199…

進程(以及系統調用和庫函數概念)

計算機管理硬件&#xff1a;先去組織起來再去描述起來&#xff08;類比先去組織小組&#xff0c;再去詳細描述工作&#xff09;系統調用和庫函數概念&#xff1a;系統就像是銀行&#xff0c;會去防著我們&#xff0c;但是會釋放一些接口用于我們使用&#xff0c;這個就是叫做系…