一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在ETAS的AUTOSAR中實現(xiàn)Spinlock的設計

汽車ECU開發(fā) ? 來源:汽車ECU開發(fā) ? 2023-01-17 09:05 ? 次閱讀

現(xiàn)在的車載控制器,多核的MCU用的是越來越多了,對于不同核之間的共享數(shù)據(jù)保護,也是必須的,其中Spinlock就是常用的一種。

01.

Spinlock介紹

Spinlock也即自旋鎖,是一種輕量級的多核間的數(shù)據(jù)同步機制。一個任務想要訪問被Spinlock保護的共享資源,必須先得到鎖,在訪問完共享資源后釋放鎖。如果在獲取自旋鎖時,沒有任何執(zhí)行單元保持該鎖,那么將立即得到鎖;如果在獲取自旋鎖時鎖已經(jīng)有持有者, 那么需要自旋等待該鎖的保持者釋放了鎖。

在ETAS的AUTOSAR中,實現(xiàn)Spinlock的兩個基本操作獲取鎖xx_GetLockInternal()和釋放鎖xx_ReleaseLockInternal()。

對于獲取鎖接口,其內部的實現(xiàn)原理如下:

第一步先判斷是哪個核上的任務正在使用xx_GetLockInternal();

判斷鎖是否已經(jīng)被同當前核獲取過但沒有釋放,如果是的話,就進行鎖嵌套累加, 繼續(xù)執(zhí)行代碼,如果沒有被當前核獲取過再進行下一步判斷;

掛起正在使用xx_GetLockInternal()的當前核的中斷,確保當前任務不被切換,也就是說不被高優(yōu)先級任務或者中斷任務打斷;

測試鎖的狀態(tài),該才做必須以原子操作訪問Spinlock的鎖標志。

如果鎖狀態(tài)被本核占用則進行鎖嵌套,如果是其他核占用則首先釋放該核中斷, 然后重復執(zhí)行上面兩步測試鎖的狀態(tài),直到其他核釋放了鎖。如果鎖狀態(tài)為空閑, 則設置其為占用狀態(tài),這就成功地搶占了鎖。

對于釋放鎖接口,其內部的實現(xiàn)原理如下:

首先判斷是哪個核上的線程正在使用xx_ReleaseLockInternal();

判斷當前鎖是否被該核占用,如果不是說明接口調用不匹配則復位,如果是則進行 下一步的判斷;

判斷鎖是否被本核嵌套, 如果是則嵌套次數(shù)減減, 如果沒有則清除鎖的狀態(tài);

釋放該核的中斷。

02.

Spinlock使用原則

所有臨界區(qū)代碼都需要加鎖保護,否則就達不到保護效果。也就是,訪問共享資源的多個任務需要協(xié)同工作共同加鎖才能保證不出錯。在實際寫代碼時,有時會忘掉這個,導致出現(xiàn)各種稀奇古怪的問題,并且很難排查。

Spinlock保護的代碼執(zhí)行時間要盡量短, 因為臨界區(qū)太大,持有時間太長,其他任務可能面臨長時間等待,降低了系統(tǒng)性能。

Spinlock 所保護的代碼在執(zhí)行過程中不能睡眠, 任務在持有自旋鎖時如果進入 Sleep狀態(tài),則可能導致死鎖。








審核編輯:劉清

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

    關注

    146

    文章

    17734

    瀏覽量

    358576
  • AUTOSAR
    +關注

    關注

    10

    文章

    370

    瀏覽量

    22321
  • 車載控制系統(tǒng)

    關注

    0

    文章

    6

    瀏覽量

    8129

原文標題:ETAS AUTOSAR中Spinlock學習筆記

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ETAS與芯鈦科技達成戰(zhàn)略合作

    全球領先的汽車嵌入式系統(tǒng)與網(wǎng)絡安全解決方案提供商易特馳(ETAS)與國內車規(guī)芯片領域頭部企業(yè)芯鈦科技(ThinkTech)宣布達成戰(zhàn)略合作。雙方將基于芯鈦科技的汽車級芯片產(chǎn)品與ETAS
    的頭像 發(fā)表于 04-27 16:28 ?219次閱讀

    AUTOSAR通信對自動駕駛的影響 AUTOSAR通信與嵌入式系統(tǒng)設計

    ,AUTOSAR通信與嵌入式系統(tǒng)設計緊密相連,共同推動著自動駕駛技術的發(fā)展。 AUTOSAR通信對自動駕駛的影響 提高通信效率和可靠性 AUTOSAR通信協(xié)議棧通過標準化的接口和協(xié)議,實現(xiàn)
    的頭像 發(fā)表于 12-17 15:09 ?595次閱讀

    AUTOSAR通信與網(wǎng)絡安全 AUTOSAR通信在車輛的應用

    隨著汽車行業(yè)的發(fā)展,車輛的電子化和智能化水平不斷提高,這使得車輛的通信系統(tǒng)變得日益復雜。AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件
    的頭像 發(fā)表于 12-17 15:06 ?706次閱讀

    AUTOSAR通信實現(xiàn)的常見問題

    AUTOSAR(Automotive Open System Architecture)汽車開放系統(tǒng)架構旨在實現(xiàn)汽車電子的軟硬件分離,降低ECU軟件開發(fā)的復雜度,提高軟件可重用性。 一、通信協(xié)議棧
    的頭像 發(fā)表于 12-17 15:03 ?865次閱讀

    AUTOSAR通信堆棧的配置 AUTOSAR通信模塊測試方法

    )的開發(fā)和生產(chǎn)。通信堆棧是AUTOSAR架構的關鍵組成部分,負責處理ECU之間的通信。 AUTOSAR通信堆棧的配置 通信模型 : AUTOSA
    的頭像 發(fā)表于 12-17 15:01 ?708次閱讀

    AUTOSAR通信框架的優(yōu)勢 AUTOSAR通信實例與應用場景

    AUTOSAR通信框架的優(yōu)勢 AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件架構合作伙伴計劃,旨在創(chuàng)建并建立一個開放的標準化軟件架構
    的頭像 發(fā)表于 12-17 14:58 ?784次閱讀

    AUTOSAR通信與CAN協(xié)議的關系

    AUTOSAR通信模型: AUTOSAR定義了一個分層的軟件架構,其中包括應用層、基礎軟件層和微控制器抽象層。在這些層,通信模型是實現(xiàn)ECU之間通信的關鍵部分。
    的頭像 發(fā)表于 12-17 14:57 ?782次閱讀

    AUTOSAR通信組件介紹 AUTOSAR通信層功能分析

    實現(xiàn)汽車電子控制單元(ECU)的軟件設計和開發(fā)。這個架構包括多個層,其中通信層是AUTOSAR架構的關鍵組成部分之一。 1. 通信組件概述 AUTOSAR通信組件主要負責ECU之間的
    的頭像 發(fā)表于 12-17 14:55 ?1165次閱讀

    AUTOSAR通信協(xié)議解析 如何實現(xiàn)AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽車開放系統(tǒng)架構,該架構支持汽車電子控制單元(ECU)之間的通信,實現(xiàn)了高度模塊化和可重用性。AUTOSAR
    的頭像 發(fā)表于 12-17 14:54 ?2137次閱讀

    中科創(chuàng)達受邀參加ETAS Connections 2024

    日前,ETAS Connections 2024德國斯圖加特圓滿舉辦。中科創(chuàng)達作為ETAS重要合作伙伴受邀參會,與寶馬、博世、大眾、Arm等國際知名企業(yè)代表共同探討智能汽車軟件前沿技術話題。同時
    的頭像 發(fā)表于 11-14 11:36 ?711次閱讀

    AUTOSAR解決方案 — INTEWORK-EAS-AP

    經(jīng)緯恒潤自主研發(fā)的Adaptive AUTOSAR平臺產(chǎn)品, 遵循AUTOSAR Adaptive R19-11和R22-11規(guī)范, 使用C++11、C++17語言開發(fā)??赏ㄟ^極易上手的自研工具配置,實現(xiàn)
    的頭像 發(fā)表于 11-06 16:11 ?1004次閱讀
    <b class='flag-5'>AUTOSAR</b>解決方案 — INTEWORK-EAS-AP

    TI SoC上集成AUTOSAR:基礎知識

    電子發(fā)燒友網(wǎng)站提供《TI SoC上集成AUTOSAR:基礎知識.pdf》資料免費下載
    發(fā)表于 10-11 11:50 ?0次下載
    <b class='flag-5'>在</b>TI SoC上集成<b class='flag-5'>AUTOSAR</b>:基礎知識

    Vector AUTOSAR的TISCI服務器集成

    電子發(fā)燒友網(wǎng)站提供《Vector AUTOSAR的TISCI服務器集成.pdf》資料免費下載
    發(fā)表于 08-30 11:16 ?0次下載
    Vector <b class='flag-5'>AUTOSAR</b><b class='flag-5'>中</b>的TISCI服務器集成

    AUTOSAR MCAL驅動程序與演示程序的Libraries的驅動程序有什么不同之處?

    1.關于 AUTOSAR MCAL 驅動程序 與演示程序的 Libraries 的驅動程序 有什么不同之處? 2.AUTOSAR MCAL 驅動程序
    發(fā)表于 05-17 06:55

    freertos里是否有spinlock或者類似的接口?

    目前在用STM32做開放,使用freertos,請問一下,freertos里是否有spinlock或者類似的接口?
    發(fā)表于 05-13 06:59