小二之前只開發過異構雙核的芯片,各跑各的軟件(比如各自運行一套FreeRTOS,反正組件裁剪下也不大),針對類似Stellar,AURIX這樣的同構多核的軟件不了解;
比如針對AutoSAR,在AURIX 三核處理器上,上如何運行?看到CSDN上JokerCK的文章,覺得好像懂了,記錄如下,水平有限,歡迎指正
閱讀前,一些說明:
RPC,遠程過程調用(Remote Procedure Call),一般是核間通信用
SWC即Software Component縮寫,一般位于AUTOSAR架構的Application層
AUTOSAR分四層:Application、RTE(RunTime Environment,運行環境)、BSW(Basic
Software,基礎軟件)和MCAL(MicroController Abstration Layer,微處理器抽象層 )
多核架構-基于AUTOSAR 4.3
AUTOSAR 4.3中定義了如下多核架構,基于這份架構,Application SWC 可以按照需求分到不同的核上,但是可以看到絕大多數的BSW Module 都在一個核上,部分BSW Module會在兩個核上都存在實例
RTE橫跨多核之間,為SWC與BSW Module之間提供Mapping。這個Mapping分為兩種,一種是這個BSW Module提供了在對應核上的Satellite時,另一種是沒有Staellite,如下圖:
基本概念介紹
AUTOSAR描述了關于跨核/Partition調用服務的三種方式,一種就是直接,通過RPC(Remote Procee Call),這種方式下RTE可能會替你生成一系列的保護措施,比如SpinLock;第二種就是BSW
Satellite,第三種就是Proxy,他主要是通過將直接的跨核C/S調用轉成了資源消耗更少的S/R接口調用,如下圖:
RPC沒有固定的機制,如上述提到的SpinLock就是其中一種,但是無論哪種機制,其為了解決數據一致性所帶來的額外開銷都是比較大的。所以Proxy以及Statellite機制的目的就是為了提高在所有的核上對BSW
Module的基本服務的高效的訪問。
也就是說,利用Proxy或者Satellite機制之后,你就不需要像以前為了性能考慮而將需要使用特定BSW
Module的服務的SWC,一定與這個BSW Module放在一個核,為設計帶來了靈活性。當然,即使是使用了Proxy或者Satellite,仍然會有一定的資源開銷,但是這相比與直接的RPC來說,都微乎其微。
使用Satellite在多核中主要有如下兩個好處:
- (improved efficiency)RTE不再需要生成RPC機制;
- 因為Statellite也是BSW Module的一部分,他承擔了一部分的工作,很顯然這會帶來性能提升,因為調用方所在的核也會執行一部分的任務,即分擔了主核的一些工作。
AUTOSAR WdgM, Dem, EcuM, Det 都提供了Satellite機制。
簡單說,Proxy就是用更輕量級的S/R接口取代了耗時的跨核的C/S調用(很顯然,跨核C/S直接調用,調用方要等被調用方執行完成),最終實際的操作肯定還是C/S函數,但是這已經由原來的跨核變成了同一個核內由Proxy去直接調用BSW服務(參考上圖),顯然更好。
比較常見的有Com-Proxy和NVM-Proxy,其中Com-Proxy的Tx要注意要放到Com_MainFunctionTx之前:
術語
Core Types
多核架構中有Master Core和Slave Core之分,這是針對處理器而言的,如Tc27x系列,Core0是主核,但是AUTOSAR又有個概念叫做BSW Core,即絕大多數的BSW模塊都Mapping在BSW Core上。BSW Core可以是Master Core也可以是其他的Slave Core之一。
Partition
AUTOSAR中,Partition指的是一組SWC,BSW Module(Satellite),Task的合集,具體體現就是某個OS Application。Partition有等級劃分,從QM到ASILD,對應MPU的第幾個Set。需要注意一點,OS Application也有Trusted和Non-Trusted之分,但是這根ASIL等級無關,QM的Partition也可以是Trusted的。
-
mcu
+關注
關注
146文章
17324瀏覽量
352659 -
架構
+關注
關注
1文章
519瀏覽量
25556 -
汽車
+關注
關注
13文章
3602瀏覽量
37659
發布評論請先 登錄
相關推薦
AUTOSAR架構下的多核通信介紹
![<b class='flag-5'>AUTOSAR</b>架構下的<b class='flag-5'>多核</b>通信介紹](https://file1.elecfans.com/web2/M00/AD/DD/wKgaomVRez-AJrwlAAAPlJ4aV0w849.jpg)
Autosar軟件開發技術概述
AUTOSAR MCAL MCU模塊的相關資料分享
AUTOSAR的相關資料推薦
介紹一種適配RT-Thread內核的autosar操作系統
基于RT-Thread內核的AUTOSAR在n32g上的實現方案
AUTOSAR信息安全框架和關鍵技術相關資料介紹
LLCE driver是否可以在非autosar os中運行?
面向汽車應用的AUTOSAR設計技巧
Freescale MPC5676R多核32位MCU汽車動力總成解決方案
![Freescale MPC5676R<b class='flag-5'>多核</b>32位<b class='flag-5'>MCU</b><b class='flag-5'>汽車</b>動力總成解決方案](https://file1.elecfans.com//web2/M00/A6/14/wKgZomUMO6KARKVHAAAWpwQLnjI189.jpg)
AUTOSAR MCAL解析:MCU
![<b class='flag-5'>AUTOSAR</b> MCAL解析:<b class='flag-5'>MCU</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AP Autosar在SOA開發中的應用方法論
如何在AUTOSAR OS系統運行時使用事件Event呢?
![如何在<b class='flag-5'>AUTOSAR</b> OS系統<b class='flag-5'>運行</b>時使用事件Event呢?](https://file1.elecfans.com/web2/M00/88/7F/wKgaomRqzr2AAYJXAAAdOX9J4AM901.png)
基于Tricore芯片的AUTOSAR架構下的多核啟動
![基于Tricore芯片的<b class='flag-5'>AUTOSAR</b>架構下的<b class='flag-5'>多核</b>啟動](https://file1.elecfans.com/web2/M00/A9/CC/wKgaomU115iAPiLsAABH-HbqmZo299.png)
評論