国产美女精品福利一区二区_国产尤物av尤物在线观看_中文字幕在线中文字幕二区_精品国产子伦久久久久久小说_手机在线黄色网址_亚洲一区二区精品

400-821-6015
行業資訊
您當前的位置:首頁 ? 行業資訊 ? 行業資訊
內部資訊行業資訊

AUTOSAR RTE介紹

發布日期:2022-07-26

RTE是什么


      AUTOSAR RTE(Run Time Environment)實現了AUTOSAR系統中的虛擬功能總線(VFB),提供了SWC(Software Component)之間的訪問接口和SWC對于BSW資源的訪問接口。RTE為SWC中的Runnable提供與其他SWC或者BSW模塊通信的接口,RTE將Runnable映射到OS Task中,并且管理Runnable的觸發機制,因此RTE功能主要可以分為兩個部分:

  • SWC間的通信
  • SWC的調度

     簡化的AUTOSAR架構圖如下:

圖片

      如上圖,AUTOSAR架構是分層設計的,并且其理念是將軟件與硬件解耦,使得軟件可以重分配和復用,這些都要依賴RTE來實現。但是RTE是不可復用的,因為RTE是匹配應用需求的,所以如果應用修改了RTE也就需要修改。除了高度依賴ECU硬件的傳感器/執行器類型SWC,其他所有SWC都是方便移植和復用的。RTE是在SWC集成之后生成的,因此RTE服務確保SWC之間,SWC與BSW之間的通信,從而確保系統按照預期工作,而不管SWC部署在哪里。RTE既支持源碼類型SWC也支持目標代碼SWC。RTE不支持運行時的重新配置,所有通信在配置生成后都是靜態的。


RTE的用途或應用


  • 實現了虛擬功能總線,連接ECU內外部SWC的通信

  • 實現了SWC與BSW模塊之間通信的路徑,使用ports和interfaces

  • 依據配置的不同的RTE Events觸發SWC中的多個Runnables

  • 在配置期間包括來自任何項目的任何SWC,并按預期執行操作以實現AUTOSAR的SWC重用能力和可移植性特性

  • 支持SWC的多實例化

  • 由于RTE處理OS任務中Runnables的執行,實現了一個激活偏移量,在時間觸發的可運行對象映射到同一OS任務中的情況下用于優化CPU負載、內存等。因為時間觸發的變量需要在配置的時間執行,并且通過重疊避免可運行的沖突,RTE使用激活偏移量。RTE通過計算任務的最大周期來處理這個問題,這是所有可運行的最大公約數(GCD),它假設任何可運行的最大執行周期都低于GCD

  • RTE還通知Runnables在較低層發生的任何中斷(如果已配置),但這并不意味著Runnables將在ISR中執行。Runnables是SWC的子集,SWC完全獨立于較低層

  • RTE在同一個SWC的Runnables之間共享變量時,或者分區間SWC或分區內SWC,甚至在不同ECU的SWC之間的通信時,必須保證數據的一致性。

  • SWC之間的通信(在Sender-receiver通信中)不僅限于點對點通信,還包括1:N(一個SWC與多個SWC通信)或N:1(多個SWC與一個SWC通信)組合。如果發送者同時向一個接收者發送數據,RTE會注意防止任何沖突,反之亦然

  • 如果發送方請求TransmissionAcknowledgementRequest,RTE通知發送方信號傳輸成功。此通知不保證接收器已成功接收到信號。


RTE通信

通信范例


RTE為SWC實例之間的通信提供不同的通信范例:

  • sender-receiver(信號傳遞)
  • client-server(函數調用)
  • mode switch
  • NvBlockSwComponentType交互

通信模式


對于sender-receiver通信,RTE支持2種模式

  • Explicit——調用顯示RTE API收發數據單元
  • Implicit——RTE在runnable被調用前自動讀取指定數據集單元,在runnable被終止后自動寫數據集單元。隱式指的是runnable不會主動發起數據的接收或傳輸

通信多樣性


除了支持點對點的通信,RTE支持多個providers或者requires的連接

  • 當使用sender-receiver通信時,RTE支持1:N(single sender with multiple receivers)和N:1(multiple senders and a single receiver)的通信,部分N:1的通信有限制。

    多個sender或者receiver的執行不由RTE來協調。這意味著不同軟件組件的操作是獨立的,RTE不能確保不同的發送方同時傳輸數據,不確保所有接收者同時讀取數據或接收事件。

  • 當使用client-server通信時,RTE支持N:1(多個clients和單個server)通信,RTE不支持1:N(單個client和多個servers)的通信。


RTE的生成


RTE的生成是任何基于AUTOSAR的項目中最重要和最棘手的一步。RTE生成的結果是各種文件,但我們只考慮兩個重要的文件:1. Rte.c 文件,2. Rte.h 文件。這是最常見的RTE生成結果,但一些集成商也更喜歡為每個SWC生成單獨的RTE文件(.c 和 .h),這些文件進一步包含在主RTE文件中,只是為了便于管理項目的RTE文件,這樣的生成選項可能因AUTOSAR GUI工具而異。RTE生成器可以是單獨的工具,也可以是完全取決于您使用的工具供應商的集成工具。例如,在Vector DaVinci的情況下,DaVinci developer用于SWC、Runnables、IDT 創建等,而DaVinci configurator用于配置BSW和生成RTE。在任何基于AUTOSAR的系統中,RTE是為每個ECU單獨生成的,因為每個ECU的SWC可能有自己獨特的要求,因此RTE是為滿足這些要求而定制的。

圖片

image-20220610105235688

上圖給出了關于SWC和RTE生成器軟件的RTE生成步驟。讓我們詳細了解每個步驟:

  1. 收集可用SWC實現 此步驟包括收集SWC描述文件(如果打算重用舊SWC)及其各自的Composition SWCs并進一步使用它們。或者我們也可以創建新的SWC實現并將其用于進一步的步驟。
  2. 配置系統 本步驟結合了舊步驟中的SWC,并配置了系統(整車ECU網絡),該系統具有不同ECU和其他系統約束的不同組成SWC。在此步驟中,所有SWC都映射到各自的ECU。
  3. 系統配置說明 arxml文件,其中包含整個系統(車輛)的ECU的詳細信息,該文件在系統配置后生成。
  4. 提取ECU特定信息 提取單個ECU的SWC描述和其他詳細信息,不同于包含車輛中所有ECU信息的系統配置描述文件。
  5. 生成ECU配置 此步驟涉及配置RTE下層BSW中模塊比如COM Service等模塊的配置,這一步生成的也是一個arxml文件其包含所有ECU的信息,比如BSW的配置,SWC的配置等。
  6. 生成RTE 此步驟中,所有Runnables映射到操作系統任務,所有connetions連接到實際的信號。此步驟的輸出為Rte.cRte.h文件,大致可以稱為AUTOSAR的RTE層。此步驟還生成BSWMD(基本軟件模塊描述)文件,其中包含RTE不同功能的信息。
  7. 編譯RTE 顧名思義,在這一步中,將編譯RTE文件,并生成目標文件,然后將這些文件與其他已編譯的BSW和SWC文件鏈接,以生成可刷寫到MCU的可執行文件。

      對于系統的每個ECU,都會重復以上步驟。除了RTE文件外,還會為每個SWC生成SWC文件(.h和.c),一些軟件還會在SWC.c文件中生成可運行的框架,在SWC.h文件中生成函數原型。所有RTE文件均按照[MISRA]生成(https://en.wikipedia.org/wiki/MISRA_C)-C標準,雖然允許一些MISRA*違規行為,但此類情況記錄在評論中。RTE源文件具有應用程序和其他層所需的RTE調用,RTE頭文件具有這些調用的原型。

      由于AUTOSAR的主要目標是SWC的“重用能力”,因此RTE支持不同AUTOSAR版本的SWC兼容性,前提是SWC在其源文件中可用,而不是在目標代碼中可用。SWC的兼容性和重用能力不僅限于AUTOSAR版本,還包括工具供應商的獨立性,即可以使用來自不同工具供應商的SWC,前提是其源代碼可用。


RTE API


      RTE提供多種API以便SWC使用從其他SWC或者低層訪問數據。RTE APIs可以簡單的根據任何函數的Rte_prefix識別,通常分為2種類型:

  1. Direct API:在需要高效(零運行時開銷)調用時使用。這些API是為每個端口生成的,應用程序可以通過在Runnable中調用API名稱直接使用它。在映射API時,可以針對SWC優化此類API。通常,Direct API實現為宏。因此,不可能獲得RTE API的地址來與C中的函數指針一起使用。
  2. Indirect API:使用端口句柄間接調用API。這種形式效率較低(間接尋址無法優化),但支持一種可能更方便的不同編程風格。

      直接和間接API調用都將生成相同的結果,只是調用方式不同。在SWC中,我們可以使用間接或直接API實現。


RTE生成的文件關系


      在RTE生成之后,RTE生成器工具會生成許多文件,其中的頭文件與其他文件有關系,即這些文件被#included到不同的文件中。這些文件以及它們與其他文件的關系如下:

  1. Rte.h:這個文件定義了不需要為每個ECU生成的固定元素,因為這個RTE生成器軟件不會一次又一次地生成這個文件。但是,如果需要,我們可以定制此文件以滿足我們的應用程序。該文件包括Std_Types.h文件。
  2. Std_Types.h:該文件是標準的AUTOSAR文件,它定義了基本數據類型,如無符號和有符號整數的平臺特定實現,并提供了訪問編譯器抽象的方法。
  3. Rte_Main.h:這是生命周期頭文件,其中包含RTE生命周期API的函數原型,如Rte_Start和Rte_Stop 。有些軟件還增加了更多的生命周期API,用于RTE內存的初始化等。這個文件包括Rte.h文件。
  4. Rte.h:這是特定于應用程序的RTE頭文件,因為名稱說明文件名的前綴始終是Rte_,后綴是與此RTE應用程序文件關聯的 SWC 名稱。該文件包含與 SWC 相關的 SWC 中使用的RTE API的函數原型、數據結構和Runnable的函數原型。該文件包括Rte_Type.h和Rte_DataHandle.h 文件
  5. Rte_Type.h:此文件包含從在SWC配置期間配置的實現數據類型派生的RTE特定類型聲明。此文件還包含對RTE API有用的AUTOSAR數據類型。該文件包括 Rte.h 文件。
  6. Rte_DataHandleType.h:此文件包含SWC數據結構所需的數據句柄類型聲明。該文件不包含任何會占用內存的符號。
  7. Rte__Type.h:這也稱為應用程序類型頭文件,它包含與應用程序相關的常量,如SWC中使用的范圍值或枚舉值。該文件包括Rte_Type.h文件。


轉自汽車電子與軟件

上海創程車聯網絡科技有限公司版權所有 滬ICP備11045498號-1   技術支持:網站建設
主站蜘蛛池模板: 久久福利视频网 | 啪啪免费网| a毛毛片| 久久久橹橹橹久久久久高清 | 三年片免费观看影视大全视频 | 国产精品夜色一区二区三区 | 蜜臀精品久久久久久蜜臀 | 天天碰天天操 | 黄色免费无码无卡大全 | 国产高清www| 国产精区一区二区 | 亚洲第一极品精品无码久久 | 亚洲激情视频免费观看 | 中文字幕的av | 国产精品国产一区二区三区四区 | 最新国产vr麻豆aⅴ精品无 | www.干| 国产AV国片精品有毛 | 久草视频中文 | 国产精品日韩久久久 | 国产精品久久久久久久久免费高清 | 四虎影视在线免费观看 | 在线视频欧美精品 | 国产一级淫片久久久片a级 亚洲精品色播 | www.中文| 一级毛片老太婆 | 精品视频在线免费 | 久草在线资源总站 | 中文字幕在线看第二 | 日本韩国三级aⅴ在线观看 国内自产少妇自拍区免费 涩色视频在线观看 | 一本大道嫩草av无码专区 | 亚州综合 | 永夜星河免费在线观看 | 不卡中文字幕 | 免费无码成人片在线观看 | 久久久精品日韩免费观看 | 黄色动漫视频在线观看 | 亚洲午夜无码久久久久软件 | 精品一区二区三卡四卡网站 | 日韩精品高清在线 | 97导航|