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

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

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

3天內不再提示

在ETAS的AUTOSAR中實現Spinlock的設計

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

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

01.

Spinlock介紹

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

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

對于獲取鎖接口,其內部的實現原理如下:

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

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

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

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

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

對于釋放鎖接口,其內部的實現原理如下:

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

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

判斷鎖是否被本核嵌套, 如果是則嵌套次數減減, 如果沒有則清除鎖的狀態;

釋放該核的中斷。

02.

Spinlock使用原則

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

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

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








審核編輯:劉清

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

    關注

    146

    文章

    16991

    瀏覽量

    350309
  • AUTOSAR
    +關注

    關注

    10

    文章

    350

    瀏覽量

    21474
  • 車載控制系統

    關注

    0

    文章

    6

    瀏覽量

    8089

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

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

收藏 人收藏

    評論

    相關推薦

    中科創達受邀參加ETAS Connections 2024

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

    AUTOSAR解決方案 — INTEWORK-EAS-AP

    經緯恒潤自主研發的Adaptive AUTOSAR平臺產品, 遵循AUTOSAR Adaptive R19-11和R22-11規范, 使用C++11、C++17語言開發。可通過極易上手的自研工具配置,實現
    的頭像 發表于 11-06 16:11 ?553次閱讀
    <b class='flag-5'>AUTOSAR</b>解決方案 — INTEWORK-EAS-AP

    TI SoC上集成AUTOSAR:基礎知識

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

    Vector AUTOSAR的TISCI服務器集成

    電子發燒友網站提供《Vector AUTOSAR的TISCI服務器集成.pdf》資料免費下載
    發表于 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 驅動程序
    發表于 05-17 06:55

    是德科技與ETAS攜手提升車載網絡安全

    近日,全球領先的測試與測量解決方案提供商是德科技與汽車軟件專家ETAS達成戰略合作,共同為汽車制造商和供應商打造了一款綜合的車載網絡安全解決方案。這一合作旨在確保汽車在行駛過程的安全性,為乘客提供無憂的出行體驗。
    的頭像 發表于 05-15 10:59 ?612次閱讀

    是德科技與ETAS攜手提供了一個綜合車載網絡安全解決方案

    ETAS 模糊測試軟件“ESCRYPT CycurFUZZ”嵌入是德科技車載網絡安全測試平臺
    的頭像 發表于 05-14 16:27 ?452次閱讀

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

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

    ETAS推出Time-Triggered Scheduling (TTS)的確定性調度解決方案

    2024年2月26日,ETAS推出了名為“Time-Triggered Scheduling (TTS)”的確定性調度解決方案。
    的頭像 發表于 04-25 16:56 ?2229次閱讀
    <b class='flag-5'>ETAS</b>推出Time-Triggered Scheduling (TTS)的確定性調度解決方案

    ETAS與芯馳科技推出基于車規MCU的HSM網絡安全解決方案

    3月29日,全球領先的軟件定義汽車全方位服務解決方案提供商ETAS與芯馳科技共同宣布,ETAS CycurHSM網絡安全方案支持芯馳E3系列MCU最新產品E3119F8/E3118F4同步首發。
    的頭像 發表于 03-29 11:14 ?564次閱讀

    TC387配置Autosar OS后主核跑飛了怎么解決?

    使用TC387芯片配置Autosar OS發現主核跑飛了,其他核正常運行OS任務切換,PC指針指向_IF_CONST區域,D[4]寄存器為1,D[15]寄存器為4,根據這兩個寄存器用計算規則計算出的TCN和TIN好像有問題,Trap
    發表于 03-06 08:24

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系統設計工具

    AUTOSAR Builder是達索旗下一款基于Eclipse并使用Artop的可擴展工具套件。Artop是由AUTOSAR成員和合作伙伴共同推動的開放的AUTOSAR工具環境。它使用戶能夠構建自己
    的頭像 發表于 01-08 18:06 ?533次閱讀
    <b class='flag-5'>AUTOSAR</b> Builder—符合<b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系統設計工具

    AUTOSAR架構復雜驅動設計

    復雜驅動(Complex Driver,CDD)是一種不受 AUTOSAR 標準化約束的軟件實體,它可以通過 AUTOSAR 接口和/或基礎軟件模塊 API 進行訪問 AUTOSAR 組件或者被
    的頭像 發表于 12-21 10:13 ?4222次閱讀
    <b class='flag-5'>AUTOSAR</b>架構<b class='flag-5'>中</b>復雜驅動設計

    ETAS和曦華科技藍鯨MCU成功完成AUTOSAR適配

    藍鯨CVM014xMcal 基于AutoSAR Classic Platform 4.2.2開發,完整支持微控制器驅動(MicrocontrollerDrivers), 存儲器驅動
    發表于 12-14 10:23 ?570次閱讀
    <b class='flag-5'>ETAS</b>和曦華科技藍鯨MCU成功完成<b class='flag-5'>AUTOSAR</b>適配

    ETAS RTA-BSW平臺成功適配曦華藍鯨CVM014x系列車規級MCU芯片

    ? 近日,曦華科技與ETAS共同宣布,ETAS RTA-BSW平臺成功適配曦華藍鯨CVM014x系列車規級MCU芯片,這一合作成果將為汽車行業帶來更加高效、安全的軟件開發與整車集成應用,為雙方共同
    的頭像 發表于 12-04 09:07 ?1061次閱讀