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

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

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

符合AUTOSAR標準的RTA-OS--Counters介紹

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

正文

6.計數(shù)器Counters

計數(shù)器以tick為單位記錄操作系統(tǒng)中發(fā)生了多少“事情”。滴答是一個抽象的單位。

這是由你來決定你想要一個滴答的意思。

可以這樣定義tick:

?時間Time,例如毫秒,微秒,分鐘等,然后計數(shù)器告訴你已經(jīng)過去了多少時間。

?旋轉(zhuǎn)Rotation,例如以度或分鐘為單位,在這種情況下,計數(shù)器會告訴你物體旋轉(zhuǎn)了多少。

?按鈕按下Button Presses,在這種情況下,計數(shù)器會告訴你按鈕被按了多少次。

?錯誤Errors,在這種情況下,計數(shù)器計算錯誤發(fā)生的頻率。

一個ISR(有時是一個任務(wù))用于驅(qū)動一個計數(shù)器。驅(qū)動程序負責(zé)進行正確的RTA-OS API調(diào)用來“tick”計數(shù)器,或者告訴RTA-OS計數(shù)器已經(jīng)“tick”到一個必需的值。

6.1配置計數(shù)器Configurting Counters

每個計數(shù)器都有4個強制性屬性:

Name 是計數(shù)器的名稱。RTA-OS使用與計數(shù)器具有相同名稱的標識符為每個計數(shù)器創(chuàng)建一個句柄。

Type 定義計數(shù)器模型。AUTOSAR提供兩種型號

軟件Software計數(shù)器是由操作系統(tǒng)內(nèi)部維護的計數(shù)值。User需要提供一個計數(shù)器驅(qū)動程序,告訴RTA-OS將計數(shù)器增加一個tick。在6.2.1節(jié)中提供了進一步的細節(jié)。

硬件Hardware計數(shù)器是由外設(shè)維護的計數(shù)值。User需要提供一個計數(shù)器驅(qū)動程序,該驅(qū)動程序告訴操作系統(tǒng)何時已經(jīng)過了請求的tick數(shù)。操作系統(tǒng)還將要求您的驅(qū)動程序支持支持RTA-OS用于在運行時管理外圍設(shè)備的回調(diào)例程的實現(xiàn)。章節(jié)6.2.2提供了進一步的細節(jié)。

當(dāng)需要相對較低的分辨率(例如一毫秒或更高)時,軟件計數(shù)器就足夠了。當(dāng)需要非常高的分辨率(例如在微秒范圍內(nèi)),或者需要將RTA-OS中的任務(wù)調(diào)度精確地同步到外部源(例如TPU或全局(網(wǎng)絡(luò))時間源)時,應(yīng)該使用硬件計數(shù)器。

Maximum Value定義計數(shù)器的最大計數(shù)值。在達到最大允許值后,所有計數(shù)器在刻度上自動歸零。對于16位計數(shù)器將為65535(216?1),對于32位計數(shù)器將為4294967295(232?1)。這對應(yīng)于AUTOSAR OS計數(shù)器屬性MAXALLOWEDVALUE。端口的最大可能計數(shù)器值由文件Os.h中TickType類型的大小決定。

集成指南:對于硬件計數(shù)器,必須確保最大匹配值+1等于外圍設(shè)備的模量。

Minimum Cycle最小周期定義在為Alarm或者schedule table偏移量設(shè)置周期值時允許的最短刻度數(shù)。在大多數(shù)情況下,希望它是1個刻度。但是,如果希望構(gòu)建的系統(tǒng)在計數(shù)器上強制執(zhí)行最小的警報間隔,那么可以選擇更大的值。這對應(yīng)于AUTOSAR OS計數(shù)器屬性MINCYCLE。

Ticks per base是一個屬性,可用于定義計數(shù)器上每個刻度所需的基礎(chǔ)計數(shù)器驅(qū)動刻度的數(shù)量??梢詾檫@個屬性賦任何值,因為RTA-OS不使用它。這對應(yīng)于AUTOSAR操作系統(tǒng)屬性TICKSPERBASE。

還有一個附加的可選屬性:

Seconds Per Tick以秒為單位定義計數(shù)器滴答的持續(xù)時間。如果想要使用AUTOSAR OS提供的刻度/時間轉(zhuǎn)換功能,則應(yīng)該定義此選項。進一步的細節(jié)在第6.5節(jié)中給出。

16a35360-12ef-11ee-962d-dac502259ad0.png

圖6.1 聲明一個計數(shù)器

6.2 計數(shù)器驅(qū)動Conuter Drivers

RTA-OS不控制任何硬件來提供計數(shù)器驅(qū)動程序。這使得RTA-OS非常容易與任何tick源集成,例如計時器滴答,錯誤計數(shù),按鈕按壓,TPU外設(shè)等。這意味著需要為在RTA-OS中聲明的每個計數(shù)器提供驅(qū)動程序,并將其接口到操作系統(tǒng)。

驅(qū)動程序和計數(shù)器之間的接口取決于計數(shù)器的類型:

Software Counters由API調(diào)用遞增。

Hardware Counters該計數(shù)值保存在外部硬件外圍設(shè)備中。應(yīng)用程序必須提供一個更復(fù)雜的驅(qū)動程序,該驅(qū)動程序告訴RTA-OS請求的滴答數(shù)已經(jīng)過了。RTA-OS使用特殊的回調(diào)來設(shè)置請求的tick數(shù),取消請求,獲取當(dāng)前計數(shù)值并獲取計數(shù)器的狀態(tài)。

6.2.1 軟件計數(shù)器驅(qū)動Software Counter Drivers

對于每個軟件計數(shù)器,需要提供提供刻度的驅(qū)動程序。RTA-OS在StartOS()期間將所有軟件計數(shù)器初始化為零并向上計數(shù)。

軟件計數(shù)器驅(qū)動模型在AUTOSAR OS中標準化,如圖6.2所示。

16b8f8aa-12ef-11ee-962d-dac502259ad0.png

圖6.2 Ticked Counter Driver Model

實現(xiàn)軟件計數(shù)器:

使用API調(diào)用IncrementCounter(CounterID)來增加RTA-OS中保存的計數(shù)器值。當(dāng)向MAXALLOWEDVALUE中添加1時,軟件計數(shù)器會自動歸零。

可以從應(yīng)用程序代碼中的大多數(shù)地方調(diào)用IncrementCounter(CounterID)。計數(shù)器最常見的用途之一是為RTA-OS提供基于Alarm或Schedule table激活任務(wù)的時間基礎(chǔ)。在這種情況下,需要提供一個周期性計時器中斷,在每次到期時調(diào)用IncrementCounter(CounterID)。

例6.1展示了毫秒中斷如何驅(qū)動一個名為TimeCounter的計數(shù)器。

#include 
ISR(HandleTimerInterrupt) {
    DismissTimerInterrupt();
    IncrementCounter(TimeCounter);
}

Example 6.1: Using a periodic interrupt to tick a software counter

軟件計數(shù)器的另一個常見用途是作為容錯系統(tǒng)的一部分,在超過錯誤閾值時需要采取某些操作。軟件計數(shù)器可用于記錄錯誤的數(shù)量,然后可以使用警報來觸發(fā)恢復(fù)操作(例如,激活錯誤恢復(fù)任務(wù))。

例6.2展示了名為Critical的任務(wù)如何在名為ErrorCounter的計數(shù)器上記錄錯誤。

#include 
TASK(Critical){
    ...
    if (Error) {
    IncrementCounter(ErrorCounter);
    }
    ...
    TerminateTask();
}

Example 6.2: Using a periodic Task to tick a software counter

靜態(tài)計數(shù)器接口Static Counter Interface:

由于AUTOSAR API調(diào)用將計數(shù)器的名稱作為參數(shù),這意味著RTA-OS必須在更新OS數(shù)據(jù)結(jié)構(gòu)之前在內(nèi)部取消對參數(shù)的引用。這也意味著編譯器需要在進入時將參數(shù)壓入堆棧。

然而,通常情況下,在構(gòu)建時就知道將從何處計時哪個計數(shù)器??赡苄枰獜闹袛嗵幚沓绦蝌?qū)動計數(shù)器。

RTA-OS認識到這一點,并為配置文件中聲明的每個計數(shù)器生成一個專用的API調(diào)用Os_IncrementCounter_()(其中CounterID是計數(shù)器的名稱)。

集成指南:API調(diào)用Os_IncrementCounter_()不一定可移植到其他AUTOSAR操作系統(tǒng)實現(xiàn)。

例如,考慮一個包含兩個計數(shù)器的應(yīng)用程序:一個名為TimeCounter,另一個名為AngularCounter。rtaosgen將生成例6.3中所示的兩個API調(diào)用。

定時器和角中斷提供服務(wù)的中斷處理程序必須調(diào)用這些API調(diào)用。

例6.4展示了這些中斷處理程序。

#include 
ISR(HandleTimerInterrupt) {
    ServiceTimerInterrupt();
    Os_IncrementCounter_TimeCounter();
}


ISR(HandleAngularInterrupt) {
    ServiceAngularInterrupt();
    Os_IncrementCounter_AngularCounter();
}

Example 6.4: Interrupt Handlers for Example 6.3

#include 
ISR(MillisecondInterrupt) {
    ServiceTimerInterrupt();
    Os_IncrementCounter_Counter1();
    Os_IncrementCounter_Counter2();
    ...
    Os_IncrementCounter_CounterN();
}

Example 6.5: Making multiple calls to the static software counter interface

如果您有多個軟件計數(shù)器,您需要以相同的速率tick,可以在處理程序中進行多個Os_IncrementCounter_()調(diào)用,如例6.5所示

對于聲明的每個計數(shù)器,都有一個Os_IncrementCounter_() API調(diào)用。這些靜態(tài)API調(diào)用比AUTOSAR IncrementCounter() API調(diào)用更快,使用更少的RAM,因為調(diào)用不需要參數(shù),也不需要計算出哪個計數(shù)器被選中。user應(yīng)該決定哪個版本適合您的應(yīng)用程序,并相應(yīng)地進行選擇。

6.2.2 硬件計數(shù)器驅(qū)動Hardware Counter Drivers

對于每個硬件計數(shù)器,User需要提供調(diào)用RTA-OS的硬件計數(shù)器驅(qū)動程序和RTA-OS使用的一組回調(diào)。與軟件計數(shù)器一樣,RTA-OS提供了一個定義良好的接口,用于將高級計數(shù)器驅(qū)動程序連接到操作系統(tǒng)。

集成指南:AUTOSAR OS標準沒有指定處理硬件計數(shù)器的標準API調(diào)用。如果要將應(yīng)用程序從另一個操作系統(tǒng)移植到RTA-OS,則可能需要更改硬件計數(shù)器驅(qū)動程序API調(diào)用。

對于每個硬件計數(shù)器,RTA-OS知道該計數(shù)器驅(qū)動的下一個動作是什么,是使警報過期,還是處理調(diào)度表上的過期點,或者兩者兼而有之。RTA-OS還知道在發(fā)生這種情況之前需要經(jīng)過多少滴答。這被稱為匹配值。

170cd312-12ef-11ee-962d-dac502259ad0.png

圖6.3 Advanced Counter Driver Model

當(dāng)使用軟件計數(shù)器時,驅(qū)動程序會在每次計時結(jié)束時告訴RTA-OS。RTA-OS在內(nèi)部對刻度進行計數(shù),當(dāng)達到匹配值時,采取操作。然后RTA-OS計算下一個匹配值并重復(fù)該過程。

相比之下,當(dāng)使用硬件計數(shù)器時,RTA-OS通過回調(diào)函數(shù)告訴驅(qū)動程序何時需要進行下一個操作。外設(shè)計算請求的滴答數(shù),并在正確的滴答數(shù)耗盡時生成中斷。在中斷處理程序中,可以調(diào)用Os_AdvanceCounter_CounterID() API來告訴RTA-OS處理CounterID上的下一個操作。RTA-OS這樣做,然后重復(fù)這個過程。

通常,User將使用中斷來驅(qū)動軟件和硬件計數(shù)器。對于軟件計數(shù)器,無論RTA-OS是否有任何事情要做,每個計數(shù)器滴答都會發(fā)生中斷。對于硬件計數(shù)器,只有當(dāng)RTA-OS需要做某事時才會發(fā)生中斷。這意味著硬件計數(shù)器將中斷干擾減少到所需的絕對最小值。

Advancing Hardware Counters

User使用API調(diào)用Os_AdvanceCounter_()來告訴RTA-OS匹配值已經(jīng)達到。

集成指南:User負責(zé)編寫調(diào)用Os_AdvanceCounter_()的驅(qū)動程序,并確保在正確的時間采取下一個操作。

Os_AdvanceCounter_() API調(diào)用導(dǎo)致下一個警報和/或到期點被處理,并將通過調(diào)用User提供的回調(diào)來設(shè)置下一個匹配值,或者,如果沒有操作要做(即計數(shù)器上沒有活動警報或計劃表),取消來自驅(qū)動程序的中斷。關(guān)于編寫硬件計數(shù)器驅(qū)動程序的更多詳細信息可以在后面章節(jié)中找到。

Callback Functions

對于軟件計數(shù)器,RTA-OS在內(nèi)部計算經(jīng)過的滴答數(shù)。這意味著RTA-OS總是知道當(dāng)前的計數(shù)器值,在下一次到期之前有多少個滴答等等。

對于硬件計數(shù)器,外設(shè)計算經(jīng)過的滴答數(shù)。這意味著RTA-OS必須告訴硬件計數(shù)器它需要計數(shù)多少個節(jié)拍,并且必須詢問外設(shè)當(dāng)前的計數(shù)值,到下一個到期的節(jié)拍數(shù)等。

這種交互是使用回調(diào)函數(shù)在RTA-OS和您想用作計數(shù)器驅(qū)動程序的任何類型的硬件外設(shè)之間進行接口的?;卣{(diào)函數(shù)的確切功能性取決于用作硬件計數(shù)器驅(qū)動程序的外設(shè)。

然而,通過一個簡短的概述,需要四個回調(diào):

Os_Cbk_Set_()

這個回調(diào)為下一個動作到期時發(fā)生的中斷設(shè)置狀態(tài)。回調(diào)函數(shù)被傳遞一個計數(shù)器的絕對值,在這個計數(shù)器上應(yīng)該發(fā)生一個動作。對于計數(shù)器,這個回調(diào)在兩種不同的情況下使用:

1. 開始Starting

當(dāng)Schedule Table或Alarm在計數(shù)器上啟動時,設(shè)置初始中斷源。

2. 重置Resetting

縮短到下一個計數(shù)器到期的時間。這是必要的,例如,當(dāng)下一個中斷超過100個滴答時,做一個SetRelAlarm(WakeUp, 100)調(diào)用。

AlarmBaseType Info;
GetAlarmBase(Alarm2, &Info);
MaxValue = Info.maxallowedvalue;
BaseTicks = Info.ticksperbase;
MinCycle = Info.mincycle;

Example 6.6: Using GetAlarmBase() to read static counter attributes

Os_Cbk_State_()

此回調(diào)返回計數(shù)器上的下一個操作是否掛起,以及(通常)在達到匹配值之前剩余的tick數(shù)。

Os_Cbk_Now_()

此回調(diào)需要返回外部計數(shù)器的當(dāng)前值。這用于GetCounterValue() API調(diào)用。

Os_Cbk_Cancel_()

這個回調(diào)必須為計數(shù)器清除任何掛起的中斷,并確保中斷不能成為掛起,直到一個Os_Cbk_Set_()調(diào)用進行。如果不取消計數(shù)器上的所有警報和/或停止由計數(shù)器驅(qū)動的計劃表,則不需要此調(diào)用。

集成指南:硬件計數(shù)器可用于多核系統(tǒng)。RTA-OS將確保State, Set和Cancel回調(diào)只在擁有計數(shù)器的核心上被調(diào)用。這意味著User可以從擁有計數(shù)器的不同核心啟動alarm和ScheduleTables, RTA-OS將向計數(shù)器的核心發(fā)送消息,告訴它調(diào)用適當(dāng)?shù)幕卣{(diào)。

6.3運行時獲取計數(shù)器屬性Accessing Counter Attributes at Run time

RTA-OS API調(diào)用GetAlarmBase()總是返回配置的計數(shù)器值。GetAlarmBase()的結(jié)構(gòu)如例6.6所示。

配置的值也可以以符號常量的形式訪問,如下所示。

? OSMAXALLOWEDVALUE_

? OSTICKSPERBASE_

? OSMINCYCLE_

因此,上面的例6.6也可以寫成例6.7:

MaxValue = OSMAXALLOWEDVALUE_Alarm2;




BaseTicks = OSTICKSPERBASE_Alarm2;




MinCycle = OSMINCYCLE_Alarm2;

Example 6.7: Using macros to read static counter attributes

6.3.1 特殊的計數(shù)器名Special Counter Names

如果創(chuàng)建了一個名為SystemCounter的計數(shù)器,那么在AUTOSAR OS中可以通過省略末尾的_CounterID來使用簡短的宏形式訪問相關(guān)的計數(shù)器屬性:

OSMAXALLOWEDVALUE_SystemCounter ? OSMAXALLOWEDVALUE

OSTICKSPERBASE_SystemCounter ? OSTICKSPERBASE

OSMINCYCLE_SystemCounter ? OSMINCYCLE

RTA-OS為SystemCounter生成兩種形式的宏,User可以使用任何一種版本。SystemCounter還提供了一個額外的宏來獲取計數(shù)器滴答的持續(xù)時間(以納秒為單位),稱為OSTICKDURATION。

集成指導(dǎo):生成一個有意義的OSTICKDURATION宏需要配置計數(shù)器屬性“Seconds Per Tick”。

6.4 讀取計數(shù)器值Reading Counter Values

應(yīng)用程序需要能夠在運行時讀取計數(shù)器的當(dāng)前值。例如,User可能想知道錯誤計數(shù)器記錄了多少錯誤,按鈕被按了多少次,或者經(jīng)過了多少時間。

計數(shù)器的當(dāng)前值可以在運行時通過調(diào)用GetCounterValue() API來讀取,如例6.8所示。

TickType HowMany;
GetCounterValue(ButtonPresses,&HowMany);

Example 8.8: Using GetCounterValue()

當(dāng)使用GetCounterValue()時,應(yīng)該意識到:

?計數(shù)器從MAXALLOWEDVALUE到零,因此計算需要補償。Counters wrap around from MAXALLOWEDVALUE to zero, so the calculation needs to compensate for the wrap

?搶占可以在調(diào)用返回時發(fā)生,這意味著當(dāng)您恢復(fù)時,' Now '的值將是舊的

?當(dāng)使用硬件計數(shù)器時,當(dāng)調(diào)用返回時,計數(shù)器驅(qū)動程序仍將遞增。即使沒有發(fā)生搶 占,立即執(zhí)行的計算也將基于舊數(shù)據(jù)

如果需要執(zhí)行一個簡單的計算來計算自上次讀取值以來計數(shù)器經(jīng)過了多少次計時,那么可以通過使用GetElapsedCounterValue() API調(diào)用來避免這種潛在的競爭條件。該調(diào)用將先前讀取的計數(shù)器值作為輸入,并計算已經(jīng)過的刻度,包括對計數(shù)器包裝的補償。計算發(fā)生在操作系統(tǒng)級別(即禁用中斷),因此不會受到搶占效應(yīng)的影響。

示例6.9顯示了如何使用此特性來度量任務(wù)的端到端(響應(yīng))時間。

#include 
TickType Start;
ISR(CaptureTrigger){
    /* Dismiss interrupt */
    GetCounterValue(TimeCounter,&Start);
    ...
    ActivateTask(GenerateResponse);
}




TASK(GenerateResponse){
    TickType Finish;
    CalculateValue();
    WriteToDevice();
    GetElapsedCounterValue(TimeCounter,&Start,&Finish);
    ...
    TerminateTask();
}

Example 6.9: Using GetElapsedCounterValue()

如果計數(shù)器正在計算時間刻度(如例6.9),那么這在AUTOSAR OS中被稱為“自由運行計時器free running timer”。這種類型的計數(shù)器沒有什么特別之處——它與任何其他類型的計數(shù)器相同——唯一的區(qū)別是計數(shù)器是由計時器滴答源驅(qū)動的。

自由運行計時器功能的預(yù)期用途是在運行時測量短、高準確度的持續(xù)時間。如果需要這樣做,那么可能需要使用硬件計數(shù)器來獲得所需的計數(shù)器分辨率。

6.5 Tick數(shù)轉(zhuǎn)換為時間Tick to Time Conversions

通常將計數(shù)器用作操作系統(tǒng)的時基參考。對于編寫的大多數(shù)應(yīng)用程序,事件的相對定時將是由系統(tǒng)需求決定的實時值。很可能會根據(jù)實時值、納秒、毫秒等來考慮系統(tǒng)配置,而不是使用更抽象的tick(滴答)概念。

如果計數(shù)器配置參數(shù)“秒每滴答”已經(jīng)配置,那么RTA操作系統(tǒng)生成宏供使用,以在滴答和實時單位之間轉(zhuǎn)換。

可移植性注意事項:AUTOSAR OS聲明Tick到時間的轉(zhuǎn)換僅適用于硬件計數(shù)器。但是,該特性通常對軟件和硬件計數(shù)器都有用,并且AUTOSAR XML配置語言支持對這兩種類型的計數(shù)器進行配置。

在RTA-OS中,這種異常通過為軟件和硬件計數(shù)器提供刻度到時間的轉(zhuǎn)換來解決。但是,應(yīng)該注意,其他AUTOSAR OS實現(xiàn)不一定支持為軟件計數(shù)器提供這些宏。

提供了以下Tick轉(zhuǎn)換為時間的宏:

? OS_TICKS2NS_CounterID(ticks) converts ticks to nanoseconds

? OS_TICKS2US_CounterID(ticks) converts ticks to microseconds

? OS_TICKS2MS_CounterID(ticks) converts ticks to milliseconds

? OS_TICKS2SEC_CounterID(ticks) converts ticks to seconds

這些宏返回的值是PhysicalTimeType,而不是TickType,可能會使用這些宏的API調(diào)用使這些值,因此需要將它們轉(zhuǎn)換為適當(dāng)?shù)念愋汀?/p>

例6.10展示了如何在應(yīng)用程序代碼中使用這些宏來使用靜態(tài)定義的“timeout”值來模擬超時。

#define TIMEOUT_MS 100 /* Set a timeout to be 100ms */
TickType TimeoutInTicks;
TimeoutInTicks =
(TickType)((PhysicalTimeType)TIMEOUT_MS/OS_TICKS2MS_TimeCounter(1));
SetRelAlarm(TimeoutAlarm, TimeoutInTicks, 0);

Example 6.10: Programming an alarm with time rather than ticks (1)

RTA-OS將盡可能使用整數(shù)乘法或除法生成這些宏。然而,對于某些滴答率,有必要在計算中使用浮點數(shù),以保持準確性。當(dāng)這些宏被傳遞給編譯時已知的固定值時,編譯器通常會自己執(zhí)行計算并嵌入整型結(jié)果。如果傳遞的值是一個變量,那么編譯器將不得不在運行時生成使用浮點計算的代碼。如果這在應(yīng)用程序中可能是一個問題,應(yīng)該檢查文件Os_Cfg.h以檢查宏的代碼。

除了這些宏之外,RTA-OS還生成一個名為otickduration_ 的宏,該宏以納秒為單位返回計數(shù)器滴答的持續(xù)時間,因此,如果您希望編寫固定時間的警報,即使更改底層計數(shù)器滴答率,它也非常有用。例6.11展示了如何使用otickduration_ 宏對例6.10進行修改。這個版本提供了稍好的性能,因為單個tick的持續(xù)時間不需要在運行時計算。

#define TIMEOUT_NS 100000000 /* Set a timeout to be 100ms */
TickType TimeoutInTicks;
TimeoutInTicks = (TickType)(TIMEOUT_NS/OSTICKDURATION_TimeCounter);
SetRelAlarm(TimeoutAlarm, TimeoutInTicks, 0);

Example 6.11: Programming an alarm with time rather than ticks (2)

可移植性注意事項:OSTICKDURATION_宏是由RTA-OS提供的,不是AUTOSAR OS標準的一部分。這些宏的使用不能移植到其他實現(xiàn)中。

6.6 小結(jié)

?計數(shù)器用于注冊一些tick源的計數(shù)。

?計數(shù)器可以是軟件計數(shù)器也可以是硬件計數(shù)器。User需要為配置的計數(shù)器類型提供私有驅(qū)動程序。





審核編輯:劉清

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

    關(guān)注

    32

    文章

    2248

    瀏覽量

    94184
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

    114161
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    345

    瀏覽量

    21417
  • ISR
    ISR
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    14379

原文標題:符合AUTOSAR標準的RTAOS--Counters詳解

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    TC397如何同時運行CP Autosar OS和FreeRTOS?

    TC397 如何同時運行兩個不同的RTOS ,如FreeRTOS 和基于CP AutosarOS
    發(fā)表于 01-24 08:31

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

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

    介紹AUTOSAR支持的四種功能安全機制

    1、AUTOSAR的四種功能安全機制雖然AUTOSAR不是一個完整的安全解決方案,但它提供了一些安全機制用于支持安全關(guān)鍵系統(tǒng)的開發(fā)。本文用于介紹AUTOSAR支持的四種功能安全機制:內(nèi)
    發(fā)表于 06-10 17:33

    “E:\NXP\AUTOSAR\S32K_AUTOSAR_OS_4_0_98_RTM_1_0_0sample\standard\sc1”編譯時無法生成sample1_cfg.o怎么解決?

    ccarm_oil /obj/Os_prop.h\"" E:\\NXP\\AUTOSAR\\AS32K_AUTOSAR4098 \\樣本\\標準\\sc1\\output_gccar
    發(fā)表于 04-06 07:42

    RTA-OS實時操作系統(tǒng)中的Task對象

      OSEK是由歐洲自動化協(xié)會對汽車電氣制定的開放式系統(tǒng),全程為OSEK/VDX。RTA-OS是基于OSEK OS符合AUTOSAR規(guī)范的OS
    的頭像 發(fā)表于 04-15 16:43 ?3208次閱讀

    經(jīng)緯恒潤自主研發(fā)出符合AUTOSAR標準的軟件產(chǎn)品

    INTEWORK-EAS(ECU AUTOSAR Software,以下簡稱EAS)是經(jīng)緯恒潤自主研發(fā),符合 AUTOSAR 標準的軟件產(chǎn)品。解決方案涵蓋了嵌入式
    的頭像 發(fā)表于 05-12 17:50 ?2061次閱讀

    開發(fā)支持符合AUTOSAR標準的軟件組件的建模特定領(lǐng)域的語言

    開發(fā)支持符合AUTOSAR標準的軟件組件的建模特定領(lǐng)域的語言。支持建模軟件組件的應(yīng)用是基于TextX python模塊和內(nèi)部開發(fā)的建??蚣堋?/div>
    的頭像 發(fā)表于 10-08 11:19 ?1028次閱讀

    RTA OS系列介紹01-Task

    AUTOSAR OS主要包含Task, ISRs, Events, Resources, Application, Counter, Alarms, Schedule Table等OS對象。后續(xù)將對如上提到的八個對象進行分別
    的頭像 發(fā)表于 12-21 14:13 ?2027次閱讀

    簡析符合AUTOSAR標準RTA-OS功能

    RTA-OS是一種靜態(tài)可配置的搶占式實時操作系統(tǒng)(RTOS),用于高性能、資源受限的應(yīng)用程序。
    的頭像 發(fā)表于 02-10 10:44 ?4826次閱讀

    符合AUTOSAR標準RTA-OS --Task詳解

    必須同時執(zhí)行許多不同活動的系統(tǒng)稱為并發(fā)。這些活動可能包含一些軟件部分,因此提供這些活動的程序必須同時執(zhí)行。這些程序必須在任何必要的時候進行合作,例如,當(dāng)它們需要共享數(shù)據(jù)時。
    的頭像 發(fā)表于 04-17 09:38 ?5225次閱讀

    符合AUTOSAR標準RTA-OS--Interrupts介紹

    中斷提供了應(yīng)用程序與現(xiàn)實世界中發(fā)生的事情之間的接口。例如,你可以使用中斷來捕捉被按下的按鈕,來標記時間的流逝或捕捉一些其他事件。
    的頭像 發(fā)表于 04-26 09:31 ?4446次閱讀
    <b class='flag-5'>符合</b><b class='flag-5'>AUTOSAR</b><b class='flag-5'>標準</b>的<b class='flag-5'>RTA-OS</b>--Interrupts<b class='flag-5'>介紹</b>

    符合AUTOSAR標準RTA-OS-Resources詳解

    訪問需要在任務(wù)和ISR之間共享的硬件或數(shù)據(jù)可能是不可靠和不安全的。這是因為當(dāng)較低優(yōu)先級的任務(wù)或ISR正在更新共享數(shù)據(jù)時,可能會發(fā)生任務(wù)或ISR搶占。
    的頭像 發(fā)表于 05-06 09:28 ?3305次閱讀
    <b class='flag-5'>符合</b><b class='flag-5'>AUTOSAR</b><b class='flag-5'>標準</b>的<b class='flag-5'>RTA-OS</b>-Resources詳解

    一文入門AUTOSAR OS

    Autosar OsAutosar 框架中上至RTE 下至驅(qū)動,中間可以和BSW 基礎(chǔ)模塊進行交互。是整個autosar 框架下最重要的組成部分。
    的頭像 發(fā)表于 06-29 10:34 ?3943次閱讀
    一文入門<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>OS</b>

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

    AUTOSAR OS AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是
    的頭像 發(fā)表于 10-27 16:55 ?1980次閱讀