精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

基于Tricore芯片的AUTOSAR架構(gòu)下的多核Shutdown介紹

832065824 ? 來源:汽車電子嵌入式 ? 2023-11-06 09:09 ? 次閱讀

正文

1. EcuM模塊中關(guān)于Multicore下電的流程概述

當(dāng)ECU滿足休眠條件時(shí),根據(jù)ECU的硬件設(shè)計(jì)會(huì)走Sleep或者Shutdown的過程。一般情況下,有SBC的ECU滿足休眠條件后走Shutdown流程下電;無SBC的ECU滿足休眠條件后走Sleep系統(tǒng)休眠的流程。

1.1 多核ECU走Sleep過程休眠

一般配置使用Flexible EcuM的項(xiàng)目在BswM模塊會(huì)自定義一個(gè)描述ECU狀態(tài)的狀態(tài)機(jī),在ECU系統(tǒng)滿足休眠條件后會(huì)觸發(fā)Action調(diào)用EcuM_SelectShutdownTarget(ECUM_SHUTDOWN_TARGET_SLEEP),之后根據(jù)需求調(diào)用EcuM_GoHalt(深度休眠系統(tǒng)一般調(diào)用GoHalt)或者EcuM_GoPoll().

121ac23a-7c38-11ee-939d-92fbcf53809c.png

Figure 1: SLEEP Phase

12297d3e-7c38-11ee-939d-92fbcf53809c.png

12412632-7c38-11ee-939d-92fbcf53809c.png

Figure 2: Master Core GoSleep Sequence

Master Core的GoSleep Sequence中需要調(diào)用EcuM_EnableWakeupSource()這個(gè)Callout函數(shù)(需要用戶自定義)配置ECU休眠后的喚醒源。

125d19e6-7c38-11ee-939d-92fbcf53809c.png

Figure 3: Slave Core GoSleep Sequence.

Slave Core的GoSleep Sequence同樣需要調(diào)用EcuM_EnableWakeupSource()這個(gè)Callout函數(shù)。

Note: 個(gè)人理解Slave Core的GoSleep Sequence中調(diào)用EcuM_EnableWakeupSource()不需要做啥,因?yàn)閱拘训臅r(shí)候Master Core會(huì)調(diào)用StartCore喚醒Slave Core。

126e1d40-7c38-11ee-939d-92fbcf53809c.png

Figure 4: Master Core Halt Sequence

Master Core進(jìn)入到Halt Sequence后會(huì)先等待Slave Core,多核完成同步后調(diào)用MCAL_MCU模塊提供的Mcu_SetMode()接口設(shè)置Master Core進(jìn)入HALT深度休眠狀態(tài)。休眠后喚醒過程,本文暫不深入論述。

12821c00-7c38-11ee-939d-92fbcf53809c.png

Figure 5: Slave Core Halt Sequence.

Slave Core的Halt Sequence過程基本和Master Core的過程一樣。

Note:多核ECU走Sleep休眠過程沒有OS的參與。

單核ECU走Sleep過程請(qǐng)參考:AUTOSAR架構(gòu)下RH850芯片深度休眠配置實(shí)踐-Conifig EcuM and BswM

1.2 多核ECU走Shutdown下電

在ECU系統(tǒng)滿足休眠條件后觸發(fā)Action調(diào)用EcuM_SelectShutdownTarget(ECUM_SHUTDOWN_TARGET_OFF),之后根據(jù)需求調(diào)用EcuM_GoDown().

129a834e-7c38-11ee-939d-92fbcf53809c.png

Figure 6: Shutdown Phase.

12b250a0-7c38-11ee-939d-92fbcf53809c.png

12c85724-7c38-11ee-939d-92fbcf53809c.png

Figure 7: Master Core OffPreOS Sequence

Master Core進(jìn)入OffPreOS Sequence后最關(guān)鍵的就是調(diào)用ShutdownAllCores完成多核同步。

12e929c2-7c38-11ee-939d-92fbcf53809c.png

Figure 8: Master Core OffPostOS Sequence

Master Core完成多核同步后進(jìn)入OffPostOS Sequence,調(diào)用EcuM_AL_SwitchOff()這個(gè)Callout函數(shù)完成ECU Shutdown Off。

Example:

VoidEcuM_AL_SwitchOff(void)
{
  Cdd_SBC_GotoSleep();//給MCU下電
};

12faf9ae-7c38-11ee-939d-92fbcf53809c.png

Figure 9: Slave Core OffPreOS Sequence.

因?yàn)镸aster Core調(diào)用EcuM_AL_SwitchOff ()后MCU已經(jīng)下電了,Slave Core不用也來不及做啥操作了。

13152220-7c38-11ee-939d-92fbcf53809c.png

Figure 10: Slave Core OffPostOS Sequence.

2. OS模塊中關(guān)于多核Shutdown的描述

MasterCore滿足Shutdown Off條件后調(diào)用ShutdownAllCores(), 在ShutdownAllCores()中發(fā)送Signal給到Slave Core觸發(fā)Shutdown, 同時(shí)在ShutdownAllCores()中實(shí)現(xiàn)多核同步(Note: 后文實(shí)例代碼講解)。然后,所有的核都會(huì)àShutdowHook() àEcuM_Shutdown() àEcuM_AL_SwitchOff (Callout函數(shù),中間調(diào)用用戶自定義的真正的Shutdown函數(shù)) àCdd_SBC_GotoSleep().

132d97ba-7c38-11ee-939d-92fbcf53809c.png

Figure 11: Example of a shutdown procedure.

13469c38-7c38-11ee-939d-92fbcf53809c.png

3. 多核下電的具體實(shí)現(xiàn)

3.1 MICROSAROS中X-Signal

135a398c-7c38-11ee-939d-92fbcf53809c.png

13725670-7c38-11ee-939d-92fbcf53809c.png

X-Signal用于MICROSAROS中跨核通信,具體通過MCU中未被使用的ISR中斷資源實(shí)現(xiàn)。

3.2 MICROSAR中Multicore Sleep

MICROSAR在Multicore上走SleepSequence時(shí)可以配置只有Master Core走Sleep,也可以選擇多Master andSlaveCore都走Sleep Sequence。如果走多核Sleep,則在BswM模塊中需要需要為每個(gè)Core配置ECU狀態(tài)機(jī),滿足ECU Sleep條件后調(diào)用EcuM_GoHalt()/EcuM_GoPoll().

1389972c-7c38-11ee-939d-92fbcf53809c.png

多核同步在EcuM_GoHalt()或EcuM_GoPoll()中完成。

3.3 MICROSAR中Multicore Shutdown

MICROSAR在Multicore上走Shutdown Sequence時(shí)所有的核都得走Shutdown Sequence,那么在BswM模塊需要為每個(gè)Core配置ECU狀態(tài)機(jī),滿足Shutdown Off條件后調(diào)用EcuM_GoDown().

13a6a7b8-7c38-11ee-939d-92fbcf53809c.png

EcuM_ShutdownOS這個(gè)Callout函數(shù)中調(diào)用OSAPIShutdowAllCores()完成多核同步。

3.4 ShutdownAllCores中的核同步

Action 1:Master Core中Os_ShutdownAllCores()調(diào)用Os_TrapCallShutdownAllCores().

Action 2:Master Core中Os_TrapCallShutdownAllCores()調(diào)用Os_Api_ShutdownAllCores().

Action 3:Master Core中Os_Api_ShutdownAllCores()調(diào)用Os_SystemShutdown().

Action 4:Master Core中Os_SystemShutdown()調(diào)用Os_XSigSend_ShutdownAllCores()給Slave Cores發(fā)送Shutdown信號(hào)

13c1919a-7c38-11ee-939d-92fbcf53809c.png

Action 5:Slave Core接收到Signal后調(diào)用Os_CoreShutdowAllLocal().

13e3bdb0-7c38-11ee-939d-92fbcf53809c.png

Action 6:Slave Core中Os_CoreShutdowAllLocal()調(diào)用Os_CoreShutdown().

Action 7:Master Core和Slave Cores都調(diào)用Os_CoreShutdown(),通過OsBarriers機(jī)制完成多核同步,最后都調(diào)用ShutdownHook().

13f65452-7c38-11ee-939d-92fbcf53809c.png

OsBarriers機(jī)制參考:AUTOSAR架構(gòu)下多核啟動(dòng)

3.5 EcuM_GoHalt中的核同步

Master Core和Slave Core都調(diào)用EcuM_GoHalt(),然后:

MasterCore在EcuM_GoHalt()調(diào)用EcuM_EnterSleep().

SlaveCore在EcuM_GoHalt()調(diào)用EcuM_EnterSleepOnSlave().

14178a64-7c38-11ee-939d-92fbcf53809c.png

MasterCore中EcuM_EnterSleep()調(diào)用EcuM_ShutdownSynchronization().

MasterCore中EcuM_ShutdownSynchronization()通過一個(gè)do while()循環(huán)等待所有Slave Core是否到達(dá)Sleep狀態(tài),EcuM_GetCoreStatusValue()就是獲取Slave Core狀態(tài)。

Master Core在調(diào)用EcuM_ShutdownSynchronization()之前會(huì)調(diào)用EcuM_SetCoreStatusValue()設(shè)置MasterCore進(jìn)入到Sleep狀態(tài)。

143b0368-7c38-11ee-939d-92fbcf53809c.png

Slave Core中EcuM_EnterSleepOnSlave()調(diào)用EcuM_SetCoreStatusValue()設(shè)置Slave Cores進(jìn)入到Sleep狀態(tài),最后調(diào)用EcuM_McuSetMode()進(jìn)入深度休眠Halt.

1470b7ce-7c38-11ee-939d-92fbcf53809c.png

EcuM_SetCoreStatusValue(CoreID)和EcuM_GetCoreStatusValue(CoreID, CORE_STATE)其實(shí)就是在設(shè)置和訪問三個(gè)標(biāo)識(shí)核狀態(tài)的全局變量。

149537ac-7c38-11ee-939d-92fbcf53809c.png

Note: 標(biāo)識(shí)三個(gè)核狀態(tài)的全局變量應(yīng)該鏈接在三個(gè)核都能訪問的共享RAM里面,保證三個(gè)核都能訪問的到。

4. 總結(jié)

問題 1: ECU走Sleep過程休眠過程如何實(shí)現(xiàn)多核同步?

:Multicore ECU走Sleep過程通過EcuM_GoHalt()/EcuM_GoPoll()實(shí)現(xiàn)核同步,具體參考3.5章節(jié)。

問題 2:ECU走Shutdown Off過程下電如何實(shí)現(xiàn)多核同步?

:Multicore ECU走Shutdown過程下電通過ShutdownAllCores()實(shí)現(xiàn)核同步,具體參考3.4章節(jié)。







審核編輯:劉清

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

    關(guān)注

    10

    文章

    350

    瀏覽量

    21478
  • SBC
    SBC
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    19162
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    881

    瀏覽量

    54405
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    492

    瀏覽量

    27478
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    248

    瀏覽量

    11388

原文標(biāo)題:AUTOSAR架構(gòu)下多核Shutdown

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AUTOSAR架構(gòu)多核通信介紹

    隨著汽車ECU迅速的往域控制器方向發(fā)展,ECU要處理的任務(wù)越來越多,單核CPU的負(fù)載越來越大,多核ECU勢(shì)在必行。AUTOSAR架構(gòu)OS支持多核
    的頭像 發(fā)表于 11-13 09:24 ?2080次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架構(gòu)</b><b class='flag-5'>下</b>的<b class='flag-5'>多核</b>通信<b class='flag-5'>介紹</b>

    AUTOSAR分層架構(gòu)

    AUTOSAR分層架構(gòu)
    發(fā)表于 09-26 11:12

    介紹芯片命名系統(tǒng)資源最小系統(tǒng)的搭建原理圖

    目錄寫在前面芯片資源介紹芯片命名系統(tǒng)資源最小系統(tǒng)的搭建原理圖PCB寫在前面根據(jù)今年比賽規(guī)則的要求,雙車組和信標(biāo)組需要使用Infineon公司的Tricore
    發(fā)表于 07-21 09:13

    功能安全---AUTOSAR架構(gòu)深度解析 精選資料分享

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析AUTOSAR的分層式設(shè)計(jì),用于支持完整的軟件和硬件模塊的獨(dú)立性(Indep
    發(fā)表于 07-23 08:34

    AUTOSAR架構(gòu)深度解析 精選資料推薦

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析目錄AUTOSAR架構(gòu)深度解析
    發(fā)表于 07-28 07:40

    AUTOSAR架構(gòu)深度解析 精選資料分享

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析AUTOSAR的分層式設(shè)計(jì),用于支持完整的軟件和硬件模塊的獨(dú)立性(Indep
    發(fā)表于 07-28 07:02

    關(guān)于AUTOSAR架構(gòu)的知識(shí)點(diǎn)看完你就懂了

    關(guān)于AUTOSAR架構(gòu)的知識(shí)點(diǎn)看完你就懂了
    發(fā)表于 10-18 07:41

    如何在Tricore上移植μC/OS-III

    本文是《在Tricore上移植μC/OS-III》系列文章的第一篇,先簡(jiǎn)單介紹整個(gè)項(xiàng)目。Tricore是英飛凌旗下的一款單片機(jī)內(nèi)核,目前汽車電子領(lǐng)域常用的TC2XX和TC3XX等系列
    發(fā)表于 01-27 08:17

    AUTOSAR架構(gòu)的WdgDriver WdgIf WdgM模塊

    本文主要介紹AUTOSAR 架構(gòu)的WdgDriver WdgIf WdgM 模塊,分析模塊之間的依賴關(guān)系以及運(yùn)行原理以幫助快速理解。本文以MPC5746R為主控
    的頭像 發(fā)表于 09-09 11:17 ?6360次閱讀

    AUTOSAR分層架構(gòu)介紹及SmartSAR studio使用總結(jié)

    AUTOSAR分層架構(gòu)
    發(fā)表于 03-28 16:44 ?11次下載

    AUTOSAR是什么?AUTOSAR軟件架構(gòu)簡(jiǎn)介

    AUTOSAR的全稱是AUTomotive Open System Architecture,直譯為汽車開放系統(tǒng)架構(gòu)
    的頭像 發(fā)表于 07-08 17:26 ?1.2w次閱讀
    <b class='flag-5'>AUTOSAR</b>是什么?<b class='flag-5'>AUTOSAR</b>軟件<b class='flag-5'>架構(gòu)</b>簡(jiǎn)介

    AutoSAR構(gòu)架以及在多核汽車MCU的運(yùn)行

    小二之前只開發(fā)過異構(gòu)雙核的芯片,各跑各的軟件(比如各自運(yùn)行一套FreeRTOS,反正組件裁剪下也不大),針對(duì)類似Stellar,AURIX這樣的同構(gòu)多核的軟件不了解; 比如針對(duì)AutoSAR,在
    的頭像 發(fā)表于 07-24 10:57 ?2478次閱讀
    <b class='flag-5'>AutoSAR</b>構(gòu)架以及在<b class='flag-5'>多核</b>汽車MCU的運(yùn)行

    基于Tricore架構(gòu)的RTThread多核實(shí)現(xiàn)

    在《基于Hightec+TC375TP的RT-Thread移植詳解 》一文中,基于Tricore實(shí)現(xiàn)了單核RTThread的移植。最近,花了些時(shí)間完成遺留的任務(wù):基于Tricore多核移植。目前
    的頭像 發(fā)表于 09-12 18:40 ?1081次閱讀

    基于Tricore芯片AUTOSAR架構(gòu)多核啟動(dòng)

    隨著汽車ECU迅速的往域控制器方向發(fā)展,ECU要出來任務(wù)越來越多,單核CPU的負(fù)載越來越大,多核ECU勢(shì)在必行。AUTOSAR架構(gòu)OS支持多核
    的頭像 發(fā)表于 10-23 10:15 ?2995次閱讀
    基于<b class='flag-5'>Tricore</b><b class='flag-5'>芯片</b>的<b class='flag-5'>AUTOSAR</b><b class='flag-5'>架構(gòu)</b><b class='flag-5'>下</b>的<b class='flag-5'>多核</b>啟動(dòng)

    AUTOSAR架構(gòu),持續(xù)集成CI的最佳實(shí)踐

    集成(CI)流程。今天,我們就來探討一基于AUTOSAR架構(gòu)的CI流程實(shí)踐,并通過對(duì)流程的詳細(xì)講解,展示其在實(shí)際開發(fā)中的重要性和優(yōu)勢(shì)。什么是AUTOSAR
    的頭像 發(fā)表于 10-24 08:06 ?389次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架構(gòu)</b><b class='flag-5'>下</b>,持續(xù)集成CI的最佳實(shí)踐