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

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

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

基于AUTOSAR規(guī)范的操作系統(tǒng)知識

jf_78858299 ? 來源:汽車控制與人工智能 ? 作者:Demu ? 2023-02-13 14:03 ? 次閱讀

汽車電子控制器中目前基本遵循AUTOSAR規(guī)范,而其中操作系統(tǒng)作為BSW的重頭戲,始終讓學(xué)習(xí)AUTOSAR的同學(xué)望而生畏,進而望而卻步。所以,今天整理下基于AUTOSAR規(guī)范的操作系統(tǒng)知識,方便大家學(xué)習(xí),以供參考。

0 為什么需要OS?

現(xiàn)在嵌入式系統(tǒng)紛繁復(fù)雜,這點毋庸置疑,但是為什么需要操作系統(tǒng)呢?有沒有仔細思考過。其實在早期的嵌入式系統(tǒng)中,是沒有操作系統(tǒng)概念的。相信做嵌入式開發(fā)的同學(xué)都能理解,在main()函數(shù)中,寫個while循環(huán),再加個定時器,按照分時間片的方式,定時執(zhí)行代碼,就可以完成簡單的調(diào)度。

但是,現(xiàn)在不一樣了,系統(tǒng)越來越復(fù)雜了,以前那種簡單粗暴的調(diào)度已經(jīng)無法滿足要求。說到系統(tǒng)復(fù)雜,主要原因有如下幾點:

  • 任務(wù)多樣化;
  • 周期復(fù)雜化;
  • 分層調(diào)用嵌套;
  • 多核系統(tǒng)引入;

舉個例子。比如,我們有個三核系統(tǒng),其中core0負責(zé)應(yīng)用功能ASW,core1負責(zé)基礎(chǔ)功能BSW,core2負責(zé)系統(tǒng)監(jiān)控、功能安全和診斷等。如何在功能運行時,滿足其正常任務(wù)的調(diào)度,同時系統(tǒng)代碼指令和監(jiān)控等也同步呢?在main()函數(shù)里,我們通過循環(huán)語句加定時器再試試看,估計要“難于上青天”了吧。

所以,就需要一個叫做操作系統(tǒng)的東西出現(xiàn)。它管理任務(wù)和事件的調(diào)度、不同任務(wù)之間的數(shù)據(jù)流,并提供監(jiān)視和錯誤處理功能。操作系統(tǒng)為實時應(yīng)用提供所有基本服務(wù),包括中斷處理、調(diào)度、系統(tǒng)時間和時鐘同步、本地消息處理,以及錯誤檢測機制。

1 AUTOSAR OS特點

操作系統(tǒng)可以根據(jù)它們的特征被分成不同的組,比如靜態(tài)配置和動態(tài)管理。要對AUTOSAR操作系統(tǒng)(下文簡稱AUTOSAR OS)進行分類,以下是其基本特征:

  • 靜態(tài)配置
  • 推斷系統(tǒng)的實時性能
  • 提供基于優(yōu)先級的調(diào)度策略
  • 運行時提供保護功能(內(nèi)存、定時等)
  • 無需外部資源,可嵌入低端控制器

所以,Autosar OS 和常見的OS(如linux系統(tǒng)OS)具有以下的區(qū)別:

  • 在運行時不會動態(tài)創(chuàng)建新任務(wù);
  • 屬于預(yù)編譯配置變體,必須在編譯之前定義所有任務(wù);
  • 操作系統(tǒng)沒有動態(tài)內(nèi)存管理,也沒有用于手動控制任務(wù)的shell。

圖片

在AUTOSAR OS提出之前,在汽車電子領(lǐng)域其操作系統(tǒng)已經(jīng)經(jīng)歷了兩個階段,即non-OSEK OS和OSEK OS。

當(dāng)然,現(xiàn)在處于的第三個階段Autosar OS,是與OSEK兼容的操作系統(tǒng),但是具有多個擴展性能。例如可擴展功能:調(diào)度表,OS applications,內(nèi)存保護和時序保護。OSEK OS 特別提供了以下特性支持AUTOSAR:

  • 基于優(yōu)先級調(diào)度
  • 處理中斷的功能
  • 中斷高于任務(wù)的優(yōu)先級
  • 防止錯誤使用OS 服務(wù)的保護措施
  • StartOS和StartupHook 啟動接口
  • ShutdownOS和ShutdownHook 關(guān)閉接口

具體的OS的可擴展級別分四級:

SC1 OSEK OS +計劃時間表
SC2 SC1 +時序保護
SC3 SC1 +內(nèi)存保護
SC4 SC1+SC2+SC3

2 AUTOSAR OS的對象

Autosar OS提供基于優(yōu)先級的調(diào)度策略,具有可搶占屬性和同步的機制,通過事件和資源的屬性來實現(xiàn)。AutosarOS提供以下對象進行多任務(wù)執(zhí)行的管理,如 Alarms,Applications,Application modes,Counters,Events,ISRs,Register Sets,Resources,Schedule tables,Spinlocks,Tasks。 這些對象及其配置是AUTOSAR OS的重點內(nèi)容,后續(xù)我們會分別詳細解釋,這里簡單介紹。

Alarms :警報器,就像我們的上課鈴聲,到時間就會響。操作系統(tǒng)用它來做一些定時的事,比如激活一個任務(wù)Task。

Applications :從字面意思理解,它是一個應(yīng)用,準(zhǔn)確地說,它應(yīng)該是一個分區(qū)。它部署到某個Core上,主要的作用就是管理放到其中的對象。為什么要這個東西呢?舉個不恰當(dāng)?shù)睦印?a target="_blank">MCU像一個國家,核就是它的省,那么Applications就可以理解成省管轄下的地級市。比如,某一天一個地級市里發(fā)現(xiàn)了大量新冠病毒感染者,為了防止擴散,將該市封閉處理,以免擴張到其他市區(qū)。想想看,當(dāng)這個市里出現(xiàn)疫情時,是封閉整個省好呢,還是僅封閉該市好呢?顯然是后者。芯片里的劃區(qū)也是非常合理的。AUTOSAR OS 分區(qū)分為可信的和非可信的。

Application modes :用的極少,這里不展開介紹;

Counters :把Counter比作心臟比較合適,對于芯片來說,它就是晶振。在操作系統(tǒng)它的作用就是計時或者計數(shù),一般Counter與芯片的Timer結(jié)合起來,Counter的精度決定了操作系統(tǒng)能計時的準(zhǔn)確度。

Events: 事件。在嵌入式操作系統(tǒng)中,事件一般是和任務(wù)綁定一起來實現(xiàn)調(diào)度功能的,當(dāng)然也可以由Alarms來觸發(fā)。比如,我通過設(shè)定某個任務(wù)在10ms進程執(zhí)行,10ms的任務(wù)就和該事件一起來實現(xiàn)。

ISRs: interrupt service routine,就是我們講的中斷。中斷的概念對于嵌入式開發(fā)的同學(xué)而言,應(yīng)該都比較熟悉。在AUTOSAR OS中中斷有兩種類型,Autosar OS中將中斷分為Cat1 和Cat2,即所謂的1類中斷和2類中斷,所謂的2類中斷其實就是完全被OS接管的中斷,這類中斷的上下文切換,堆棧管理全部由OS管理;而1類中斷則不被OS接管,因此它的上下文由自己管理。另外Autosar Os中要求Cat1的中斷的最低優(yōu)先級高于Cat2的最高優(yōu)先級,也就是說Cat1的中斷優(yōu)先級更高。所以Cat1的中斷一般用于時間要求更緊急的場合。要知道,中斷有比任何任務(wù)都高的優(yōu)先級,即中斷可以搶占任務(wù)。

Register Sets: 幾乎沒有使用,暫時不介紹。

**Resources:**資源。嵌入式系統(tǒng)內(nèi)部的資源是用來強制任務(wù)分組運行的,在分組內(nèi)部,是沒有搶占一說的,即共享資源。當(dāng)然,中斷就不能使用內(nèi)部分組資源了。共享什么資源呢?比如棧的共用,為了降低系統(tǒng)的負荷,我們可以讓同分組的任務(wù)共用分配的棧資源,你用完我用,像和諧社會一般。

**Schedule tables:**調(diào)度表,可以將其理解為包含了很多調(diào)度點的表,Autosar Os中一般這么用調(diào)度表,比如有 1ms,2ms,5ms 三個周期需要調(diào)度的任務(wù),那么會根據(jù)公約數(shù),生成一個表,這個表在1ms 處調(diào)度1ms任務(wù),2ms處調(diào)度1ms和2ms任務(wù),4ms處調(diào)度1ms和2ms任務(wù),5ms處調(diào)度1ms和5ms任務(wù),10ms處調(diào)度1ms,2ms,5ms任務(wù),然后按照這樣的關(guān)系循環(huán),這就是所謂的調(diào)度表。目前有部分主流的Autosar開發(fā)商使用這種方式進行任務(wù)的調(diào)度。當(dāng)然,Schedule Table有自己的狀態(tài)機,Schedule Table調(diào)度方式最大的好處在于保持調(diào)度的同步性。

Spinlocks: 沒有項目使用,暫不介紹。

**Tasks:**任務(wù)應(yīng)該也比較熟悉,Autosar Os有些自己的性質(zhì),簡單介紹下。

Task 類型:

  • Basic Task:包含狀態(tài)Ready,Running,Suspend
  • Extend Task:包含狀態(tài)Ready,Running,Suspend和Waiting

所謂的擴展task,就是多了一個Waiting狀態(tài),因此它一般就是等待一個Event的到來。

此外Task的調(diào)度分為搶占式和協(xié)作式,對于可搶占的Task,OS會根據(jù)Task的優(yōu)先級進行排序調(diào)度,優(yōu)先級高的可以搶占優(yōu)先級低的。在AUTOSAT OS中數(shù)字越大優(yōu)先級越高。

當(dāng)然,操作系統(tǒng)還有內(nèi)存保護,時序保護和錯誤機制等內(nèi)容,今天概覽性地介紹這些,后續(xù)有機會再分別詳細闡述。

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

    關(guān)注

    112

    文章

    16033

    瀏覽量

    176655
  • 汽車電子
    +關(guān)注

    關(guān)注

    3019

    文章

    7789

    瀏覽量

    165687
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    344

    瀏覽量

    21415
  • BSW
    BSW
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    3499
收藏 人收藏

    評論

    相關(guān)推薦

    實時操作系統(tǒng)和分時操作系統(tǒng)的區(qū)別

    操作系統(tǒng)能否滿足實時性要求來區(qū)分,可把操作系統(tǒng)分成分時操作系統(tǒng)和實時操作系統(tǒng),分時操作系統(tǒng)按照相等的時間片調(diào)度進程輪流運行,分時操作系統(tǒng)
    發(fā)表于 11-14 17:39 ?1.3w次閱讀

    如何開發(fā)符合AUTOSAR規(guī)范的電機控制器軟件

    基于AUTOSAR規(guī)范的電機控制器軟件開發(fā)本系列文章主要介紹如何開發(fā)符合AUTOSAR規(guī)范的電機控制器軟件的詳細過程。全系類分為基礎(chǔ)篇和實戰(zhàn)篇:基礎(chǔ)篇內(nèi)簡要介紹最新的
    發(fā)表于 08-30 08:59

    嵌入式操作系統(tǒng)FreeRTOS的相關(guān)資料分享

    嵌入式操作系統(tǒng)FreeRTOS (1)1、基礎(chǔ)知識 系統(tǒng)認識2、移植必要文件 文件 移植說明3、源碼的命名規(guī)范1、基礎(chǔ)知識
    發(fā)表于 12-27 06:29

    介紹一種適配RT-Thread內(nèi)核的autosar操作系統(tǒng)

    目是基于autosar3.1的開源代碼arctic core,在此基礎(chǔ)上,完成在n32g45x上的mcal驅(qū)動,適配RT-Thread內(nèi)核為autosar操作系統(tǒng)。??目前已完成mcal的mcu驅(qū)動
    發(fā)表于 05-19 15:40

    Linux操作系統(tǒng)原理及應(yīng)用

    Linux操作系統(tǒng)原理及應(yīng)用 1.1  操作系統(tǒng)的地位 1.2  操作系統(tǒng)的功能 1.3  操作系統(tǒng)的發(fā)展過程 1.4 
    發(fā)表于 04-28 14:53 ?0次下載

    操作系統(tǒng)教程_孫鐘秀

    本書的特點之一是:既致力于傳統(tǒng)操作系統(tǒng)基本概念、基本技術(shù)、基本方法的闡述,又融合現(xiàn)代操作系統(tǒng)最新技術(shù)發(fā)展和應(yīng)用的討論,著眼于操作系統(tǒng)學(xué)科知識體系的系統(tǒng)性、先進性和
    發(fā)表于 12-09 14:55 ?0次下載
    <b class='flag-5'>操作系統(tǒng)</b>教程_孫鐘秀

    操作系統(tǒng)原理_孫鐘秀

    本書的特點之一是:既致力于傳統(tǒng)操作系統(tǒng)基本概念、基本技術(shù)、基本方法的闡述,又融合現(xiàn)代操作系統(tǒng)最新技術(shù)發(fā)展和應(yīng)用的討論,著眼于操作系統(tǒng)學(xué)科知識體系的系統(tǒng)性、先進性和
    發(fā)表于 04-11 14:23 ?0次下載

    RTOS操作系統(tǒng)

    RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)
    發(fā)表于 12-28 15:30 ?0次下載

    計算機測控系統(tǒng)操作系統(tǒng)概述集合【labview基礎(chǔ)知識

    計算機測控系統(tǒng)操作系統(tǒng)概述集合,labview基礎(chǔ)知識
    發(fā)表于 01-12 11:13 ?19次下載

    全球及我國汽車操作系統(tǒng)發(fā)展現(xiàn)狀分析

    車控操作系統(tǒng)是管理車輛動力、底盤、車身等基礎(chǔ)硬件系統(tǒng)和軟件資源的程序。以歐美為主導(dǎo),已開展了兩輪標(biāo)準(zhǔn)化工作:OSEK/VDX和AUTOSAR。OSEK/VDX主要對操作系統(tǒng)和網(wǎng)絡(luò)管理進
    發(fā)表于 07-24 17:09 ?3098次閱讀

    Linux操作系統(tǒng)知識講解:走進內(nèi)存

    Linux操作系統(tǒng)知識講解:走進內(nèi)存
    的頭像 發(fā)表于 08-28 10:30 ?2303次閱讀
    Linux<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>知識</b>講解:走進內(nèi)存

    關(guān)于操作系統(tǒng)知識詳細解讀

    廣義的操作系統(tǒng)包括:計算機(PC、工作站、服務(wù)器)系統(tǒng)、移動端系統(tǒng)(例如鴻蒙)、嵌入式系統(tǒng) 等。本篇報告只涉及計算機操作系統(tǒng)
    的頭像 發(fā)表于 03-26 14:58 ?9477次閱讀
    關(guān)于<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>知識</b>詳細解讀

    linux操作系統(tǒng)基礎(chǔ)知識

    本文主要闡述了linux操作系統(tǒng)基礎(chǔ)知識。
    發(fā)表于 06-04 15:07 ?5856次閱讀

    汽車操作系統(tǒng)和中間件的關(guān)系

    如果嵌入式操作系統(tǒng)(比如FreeRTOS, uCOS或Autosar CP的內(nèi)核)的開發(fā)難度和工作量是1, 那么大型操作系統(tǒng)的開發(fā)難度和工作量就是99, 從體量就能看出,一個完整的嵌入式操作系
    發(fā)表于 07-21 11:16 ?750次閱讀
    汽車<b class='flag-5'>操作系統(tǒng)</b>和中間件的關(guān)系

    AUTOSAR OS操作系統(tǒng)功能特性

    汽車電子系統(tǒng)中的軟件任務(wù)和中斷。它提供了以下功能特性: 任務(wù)和中斷管理:AUTOSAR OS可以創(chuàng)建、啟動、停止和刪除任務(wù),并處理中斷請求。它可以根據(jù)任務(wù)的優(yōu)先級和調(diào)度策略來調(diào)度任務(wù)的執(zhí)行,確保任務(wù)
    的頭像 發(fā)表于 10-27 16:55 ?1970次閱讀