wiki:spec/Os

Version 23 (modified by fujisft-shigihara, 4 years ago) ( diff )

--

OS


概要

  • AUTOSARプラットフォームにおけるリアルタイムOS
    • 主にタスクスケジューリング、割込み管理などを行う
    • MCAL層が無いため、マイコンに依存した実装が伴う
  • OSEK/VDX仕様OSの上位互換とされ、OSEK仕様書に記載されている内容については、AUTOSAR仕様書には記載されていない
    • OSEKは、ISOで標準化されたため、2020年現在はWebで一般公開されていない
    • OSEK仕様とAUTOSAR仕様で若干の矛盾等も存在する
    • コンフィギュレーション方法は、AUTOSAR準拠のXML方式に統合される
  • OSの機能セット毎に、4つのスケーラビリティクラスが規定されている
    • スケーラビリティクラス1(SC1)
      • 基本セット
    • スケーラビリティクラス2(SC2)
      • 基本セット + タイミング保護
    • スケーラビリティクラス3(SC3)
      • 基本セット + メモリ保護
    • スケーラビリティクラス4(SC4)
      • 基本セット + タイミング保護 + メモリ保護
  • すべてのSCをマルチコアに拡張可能である
  • 用語一覧
    • C1ISR:カテゴリ1ISR
    • C2ISR:カテゴリ2ISR
    • OSAP:OSアプリケーション
  • API一覧
    • OSEK仕様 (OSEK仕様ではIDは未規定のためTOPPERS/ATK2のIDを記載)
API ID
[Dec]
ID
[Hex]
ActivateTask 224 0xE0
TerminateTask 225 0xE1
ChainTask 226 0xE2
Schedule 227 0xE3
GetTaskID 228 0xE4
GetTaskState 229 0xE5
EnableAllInterrupts 230 0xE6
DisableAllInterrupts 231 0xE7
ResumeAllInterrupts 232 0xE8
SuspendAllInterrupts 233 0xE9
ResumeOSInterrupts 234 0xEA
SuspendOSInterrupts 235 0xEB
GetResource 236 0xEC
ReleaseResource 237 0xED
SetEvent 238 0xEE
ClearEvent 239 0xEF
GetEvent 240 0xF0
WaitEvent 241 0xF1
GetAlarmBase 242 0xF2
GetAlarm 243 0xF3
SetRelAlarm 244 0xF4
SetAbsAlarm 245 0xF5
CancelAlarm 246 0xF6
GetActiveApplicationMode 247 0xF7
StartOS 248 0xF8
ShutdownOS 249 0xF9
  • AUTOSAR仕様
API ID
[Dec]
ID
[Hex]
R4.0.3 R4.2.2
GetApplicationID 0 0x00
GetISRID 1 0x01
CallTrustedFunction 2 0x02
CheckISRMemoryAccess 3 0x03
CheckTaskMemoryAccess 4 0x04
CheckObjectAccess 5 0x05
CheckObjectOwnership 6 0x06
StartScheduleTableRel 7 0x07
StartScheduleTableAbs 8 0x08
StopScheduleTable 9 0x09
NextScheduleTable 10 0x0A
StartScheduleTableSynchron 11 0x0B
SyncScheduleTable 12 0x0C
SetScheduletableAsync 13 0x0D
GetScheduleTableStatus 14 0x0E
IncrementCounter 15 0x0F
GetCounterValue 16 0x10
GetElapsedValue 17 0x11
TerminateApplication 18 0x12
AllowAccess 19 0x13
GetApplicationState 20 0x14
GetNumberOfActivatedCores 21 0x15
GetCoreID 22 0x16
StartCore 23 0x17
StartNonAutosarCore 24 0x18
GetSpinlock 25 0x19
ReleaseSpinlock 26 0x1A
TryToGetSpinlock 27 0x1B
ShutdownAllCores 28 0x1C
ControlIdle 29 0x1D -
IocSend 30 0x1E
IocWrite 31 0x1F
IocSendGroup 32 0x20
IocWriteGroup 33 0x21
IocReceive 34 0x22
IocRead 35 0x23
IocReceiveGroup 36 0x24
IocReadGroup 37 0x25
IocEmptyQueue 38 0x26
GetCurrentApplicationID 39 0x27 -
  • エラーコード一覧
    • 1~8はOSEKで規定されている
    • "--"は実装依存と規定されている
エラーコード Dec Hex R4.0.3 R4.2.2
E_OS_ACCESS 1 0x01
E_OS_CALLEVEL 2 0x02
E_OS_ID 3 0x03
E_OS_LIMIT 4 0x04
E_OS_NOFUNC 5 0x05
E_OS_RESOURCE 6 0x06
E_OS_STATE 7 0x07
E_OS_VALUE 8 0x08
E_OS_SERVICEID -- --
E_OS_ILLEGAL_ADDRESS -- --
E_OS_MISSINGEND -- --
E_OS_DISABLEDINT -- --
E_OS_STACKFAULT -- --
E_OS_PROTECTION_MEMORY -- --
E_OS_PROTECTION_TIME -- --
E_OS_PROTECTION_ARRIVAL -- --
E_OS_PROTECTION_LOCKED -- --
E_OS_PROTECTION_EXCEPTION -- --
E_OS_CORE -- --
E_OS_SPINLOCK -- --
E_OS_INTERFERENCE_DEADLOCK -- --
E_OS_NESTING_DEADLOCK -- --
E_OS_PARAM_POINTER -- --

API仕様(OSEK)

ActivateTask

StatusType ActivateTask(TaskType TaskID)
  • TaskIDで指定したタスクを起動する
  • 多重に起動要求を行った場合、要求した順序で起動される
    • 拡張タスクが、多重起動要求できないのは、待ち状態に入ってしまうと次の起動要求を要求した順序で処理できないからと考えられる
    • TOPPERS/ATK2では、必要性が低いことから、要求した順序を保持しない実装としている
      • タスクの実行順序の優先順位は、本来タスク優先度で指定するものであり、同一優先度タスクが実行される順序が処理に依存するべきではない、という考え方である
  • 到着時間監視において、ActivateTaskを発行した側と、発行された側のどちらのタイミング保護違反となるかは規定されていない
    • マルチコアでは、どちらのコアでプロテクションフックを起動するか等の問題がある

TerminateTask

StatusType TerminateTask(void)
  • 呼び出したタスクを終了する
  • 多重起動要求されているタスクが、TerminateTaskを実行した場合、再度実行可能状態となるが、TerminateTaskを呼ばずに終了(returnを呼ぶ等)した場合に、再度実行可能状態となるかは規定されていない
    • TOPPERS/ATK2では、以下のような実装としている
      • タスクが不正終了(returnを呼ぶ)した場合:多重起動は有効
      • タスクが強制終了(保護違反発生)した場合:多重起動は有効
      • 所属するOSAPが強制終了した場合:多重起動はリセット

ChainTask

StatusType ChainTask(TaskType TaskID)
  • 呼び出したタスクの終了と、TaskIDで指定したタスクの起動を行う(TerminateTask+ActivateTask)

Schedule

StatusType Schedule(void)
  • 呼び出した時点での、すべての実行可能状態のタスクの優先度に従って、再スケジューリングを行う
    • つまり、呼び出し元タスクが、ノンプリエンプティブタスクでなければ、呼び出す意味がない

GetTaskID

StatusType GetTaskID(TaskRefType TaskID)
  • 実行状態のタスクIDを取得する
    • 複数タスクから呼び出される共用関数や、C2ISR、各フックルーチンから使用される
  • 本APIは、エラーフックでのデバッグにおける使用が考えられるが、割込み禁止時のAPI呼出し違反[OS093]により起動したエラーフックでは、割込み禁止状態のため、GetTaskIDが使用できないという不整合がある
    • TOPPERS/ATK2では、実害がないため、割込み禁止状態であっても、GetTaskIDを呼び出せるように実装している

GetTaskState

StatusType GetTaskState(TaskType TaskID, TaskStateRefType State)
  • TaskIDで指定したタスクの状態を取得する
  • 本APIは、エラーフックでのデバッグにおける使用が考えられるが、割込み禁止時のAPI呼出し違反[OS093]により起動したエラーフックでは、割込み禁止状態のため、GetTaskStateが使用できないという不整合がある
    • TOPPERS/ATK2では、実害がないため、割込み禁止状態であっても、GetTaskStateを呼び出せるように実装している

EnableAllInterrupts

void EnableAllInterrupts(void)
  • C1ISR、C2ISRに対する割込みを許可状態にする
  • EI命令のような高速な処理を想定している

DisableAllInterrupts

void DisableAllInterrupts(void)
  • C1ISR、C2ISRに対する割込みを禁止状態にする
  • ネスト発行は不可で、DI命令のような高速な処理を想定している

ResumeAllInterrupts

void ResumeAllInterrupts(void)
  • C1ISR、C2ISRに対する割込みを許可状態にする
  • SuspendAllInterruptsが呼ばれた回数だけ、発行しないと許可状態にならない

SuspendAllInterrupts

void SuspendAllInterrupts(void)
  • C1ISR、C2ISRに対する割込みを禁止状態にする
  • ネストして発行できるが、ネスト上限回数に関する規定がない
    • TOPPERS/ATK2では、ネスト回数の上限値を255としている

ResumeOSInterrupts

void ResumeOSInterrupts(void)
  • C2ISRに対する割込みを許可状態にする
  • SuspendOSInterruptsが呼ばれた回数だけ、発行しないと許可状態にならない

SuspendOSInterrupts

void SuspendOSInterrupts(void)
  • C2ISRに対する割込みを禁止状態にする
  • ネストして発行できるが、ネスト上限回数に関する規定がない
    • TOPPERS/ATK2では、ネスト回数の上限値を255としている

GetResource

StatusType GetResource(ResourceType ResID)
  • ResIDで指定したリソースを獲得する

ReleaseResource

StatusType ReleaseResource(ResourceType ResID)
  • ResIDで指定したリソースを開放する
  • 上限優先度が初期優先度より低いリソースを開放しようとするとE_OS_ACCESSが返ると規定されているが、そもそもそのようなリソースを獲得できないので、E_OS_ACCESSが返ることはありえない

SetEvent

StatusType SetEvent(TaskType TaskID, EventMaskType Mask)
  • TaskIDで指定したタスクに対するイベントMaskをセットする

ClearEvent

StatusType ClearEvent(EventMaskType Mask)
  • 呼び出したタスクのすべてのイベントをクリアする

GetEvent

StatusType GetEvent(TaskType TaskID, EventMaskRefType Event)
  • TaskIDで指定したタスクにセットされたイベントを取得する
  • マルチコア拡張仕様において、SetEventはコアを跨げるように拡張されているが、GetEventが拡張されていない
    • 拡張できない理由が無いため、誤記と思われる
    • TOPPERS/ATK2では、GetEventもコアを跨いで呼び出すことができるように実装している

WaitEvent

StatusType WaitEvent(EventMaskType Mask)
  • Maskで指定したイベントがセットされるのを待つ
  • 既にイベントがセットされていた場合は、タスクは実行状態を継続する

GetAlarmBase

StatusType GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info)
  • AlarmIDで指定したアラームの情報を取得する
  • 取得する情報はコンフィギュレーション時に静的に設定したパラメータのみである

GetAlarm

StatusType GetAlarm(AlarmType AlarmID, TickRefType Tick)
  • AlarmIDで指定したアラームが、満了するまでのティックを取得する

SetRelAlarm

StatusType SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle)
  • AlarmIDで指定したアラームを、相対時間指定でセットする
  • AUTOSAR仕様で、incrementで指定された値が0であった場合にE_OS_VALUEを返す標準エラーで返すと規定されている[OS304]が、OSEK仕様では、E_OS_VALUEは拡張エラーと規定されているという矛盾がある
    • TOPPERS/ATK2では、どちらのE_OS_VALUEも、拡張エラーとしている

SetAbsAlarm

StatusType SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle)
  • AlarmIDで指定したアラームを、絶対時間指定でセットする

CancelAlarm

StatusType CancelAlarm(AlarmType AlarmID)
  • AlarmIDで指定したセット済みのアラームを、キャンセルする

GetActiveApplicationMode

AppModeType GetActiveApplicationMode(void)
  • OS起動時、StartOSで引数に指定されたアプリケーションモードを取得する

StartOS

void StartOS(AppModeType Mode)

ShutdownOS

void ShutdownOS(StatusType Error)
  • OSをシャットダウンする

API仕様(AUTOSAR)

GetApplicationID

ApplicationType GetApplicationID(void)
  • 実行状態のOSAP IDを取得する
  • この機能に関する議論 → #1

GetISRID

ISRType GetISRID(void)
  • 実行状態のISR IDを取得する
  • OSEK仕様のGetTaskIDは、返り値がStatusTypeであるのに対し、対称的なAPIであるGetISRIDの戻り値はISRTypeとなっている
    • 結果として、エラーの発生有無は分からず、返り値がStatusTypeでないのでエラーフックも起動しない[OS093]
    • TOPPERS/ATK2では、返り値のデータ型に関わらず、異常発生時はエラーフックを起動するように実装している

CallTrustedFunction

StatusType CallTrustedFunction(TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams)
  • FunctionIndexで指定した信頼関数を実行する

CheckISRMemoryAccess

AccessType CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size)
  • ISRIDで指定したC2ISRの、AddressとSizeで指定したメモリ領域に対するアクセス可否を取得する
  • 引数で指定したメモリ領域が複数のメモリ保護属性の領域を跨いでいた場合の振る舞いが規定されていない
    • TOPPERS/ATK2では、アクセス不可能を返すように実装している

CheckTaskMemoryAccess

AccessType CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size)
  • TaskIDで指定したタスクの、AddressとSizeで指定したメモリ領域に対するアクセス可否を取得する
  • 引数で指定したメモリ領域が複数のメモリ保護属性の領域を跨いでいた場合の振る舞いが規定されていない
    • TOPPERS/ATK2では、アクセス不可能を返すように実装している

CheckObjectAccess

ObjectAccessType CheckObjectAccess(ApplicationType ApplID, ObjectTypeType ObjectType, void ...)
  • 可変長引数"..."で指定したオブジェクトの、ApplIDで指定されたOSAPに対するアクセス可否を取得する

CheckObjectOwnership

ApplicationType CheckObjectOwnership(ObjectTypeType ObjectType, void ...)
  • 可変長引数"..."で指定したオブジェクトが所属するOSAP IDを取得する

StartScheduleTableRel

StatusType StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset)
  • ScheduleTableIDで指定したスケジュールテーブルを、相対時間指定でセットする

StartScheduleTableAbs

StatusType StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start)
  • ScheduleTableIDで指定したスケジュールテーブルを、絶対時間指定でセットする

StopScheduleTable

StatusType StopScheduleTable(ScheduleTableType ScheduleTableID)
  • ScheduleTableIDで指定したセット済みのスケジュールテーブルを、停止する

NextScheduleTable

StatusType NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To)
  • ScheduleTableID_Fromで指定したスケジュールテーブルの1周期が終了後、ScheduleTableID_Toで指定したスケジュールテーブルを開始する
  • ScheduleTableID_Fromに指定されたスケジュールテーブルが周期動作だった場合に、ScheduleTableID_Toのスケジュールテーブルに切り替わった後も周期動作を続けるかどうかが規定されていない
    • TOPPERS/ATK2では、ScheduleTableID_Fromに指定されたスケジュールテーブルが周期動作の場合も、切り替え時に停止するように実装している
  • マルチコア拡張仕様において、StartScheduleTableRelやStartScheduleTableAbsはコアを跨げるように拡張されているが、NextScheduleTableが拡張されていない
    • 拡張できない理由が無いため、誤記と思われる
    • TOPPERS/ATK2では、NextScheduleTableもコアを跨いで呼び出すことができるように実装している

StartScheduleTableSynchron

StatusType StartScheduleTableSynchron(ScheduleTableType ScheduleTableID)
  • ScheduleTableIDで指定した明示同期スケジュールテーブルの同期を開始する

SyncScheduleTable

StatusType SyncScheduleTable(ScheduleTableType ScheduleTableID, TickType Value)
  • ScheduleTableIDで指定した明示同期スケジュールテーブルを、Valueで指定したティックで同期する

SetScheduletableAsync

StatusType SetScheduletableAsync(ScheduleTableType ScheduleTableID)
  • ScheduleTableIDで指定した明示同期スケジュールテーブルの同期を終了する

GetScheduleTableStatus

StatusType GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus)
  • ScheduleTableIDで指定したスケジュールテーブルの状態を取得する

IncrementCounter

StatusType IncrementCounter(CounterType CounterID)
  • CounterIDで指定したソフトウェアカウンタをインクリメントする
  • 同時に複数のアラーム・スケジュールテーブルが満了する場合、各満了処理が終了するごとに、再スケジューリングを行うかどうかが規定されていない
    • TOPPERS/ATK2では、再スケジューリングを行う実装としている

GetCounterValue

StatusType GetCounterValue(CounterType CounterID, TickRefType Value)
  • CounterIDで指定したカウンタの現在ティックを取得する

GetElapsedValue

StatusType GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue)
  • CounterIDで指定したカウンタが、Valueで指定したティックから、現在何ティック経過しているかを取得する
  • 第2引数で、経過時間の基準とするティックを指定するが、同時に現在のティックによって上書きされるので注意が必要

TerminateApplication

StatusType TerminateApplication(ApplicationType Application, RestartType RestartOption)
  • Applicationで指定したOSAPを強制終了する

AllowAccess

StatusType AllowAccess(void)
  • 呼び出したタスクが所属するOSAPを利用可能状態にする
    • C2ISRからも呼び出し可能と規定されているが、ユースケースは不明
  • 再起動状態のOSAPに所属するリスタートタスクから呼び出される

GetApplicationState

StatusType GetApplicationState(ApplicationType Application, ApplicationStateRefType Value)
  • Applicationで指定したOSAPの状態を取得する

GetNumberOfActivatedCores

uint32 GetNumberOfActivatedCores(void)
  • AUTOSAR OSが起動しているコアの数を取得する

GetCoreID

CoreIdType GetCoreID(void)
  • 呼び出した処理が実行されているコアIDを取得する

StartCore

void StartCore(CoreIdType CoreID, StatusType* Status)
  • CoreIDで指定したコアを、AUTOSAR OS管理のコアとして起動する
    • OSは起動しない

StartNonAutosarCore

void StartNonAutosarCore(CoreIdType CoreID, StatusType* Status)
  • CoreIDで指定したコアを、AUTOSAR OS管理外のコアとして起動する

GetSpinlock

StatusType GetSpinlock(SpinlockIdType SpinlockId)
  • SpinlockIdで指定したスピンロックを獲得する
    • 取得できない場合、獲得できるまでスピンする

ReleaseSpinlock

StatusType ReleaseSpinlock(SpinlockIdType SpinlockId)
  • SpinlockIdで指定したスピンロックを開放する
  • スピンロックとリソースの獲得、解放はLIFOで実行しなければならないと規定されている[OS702]が、スピンロックとリソースは独立したオブジェクトであり、独立してLIFOであれば問題ないため、本要求の意味は不明である

TryToGetSpinlock

StatusType TryToGetSpinlock(SpinlockIdType SpinlockId, TryToGetSpinlockType* Success)
  • SpinlockIdで指定したスピンロックを獲得する
    • 取得できない場合、エラー終了する

ShutdownAllCores

void ShutdownAllCores(StatusType Error)
  • OS実行中のすべてのコアでOSシャットダウンを行う
  • ShutdownAllCoresを呼び出していないコアのシャットダウンフックに、何のエラーコードが渡されるかは規定されていない
    • TOPPERS/ATK2では、ShutdownAllCoresを呼び出していないコアでは、シャットダウンフックにE_OS_SHUTDOWN_OTHER_COREが渡される実装としている

ControlIdle

StatusType ControlIdle(CoreIdType CoreID, IdleModeType IdleMode)

IocSend

Std_ReturnType IocSend_<IocId>[_<SenderId>](<Data> IN)
  • IocIdに対して単一のデータを送信する(キューあり)

IocWrite

Std_ReturnType IocWrite_<IocId>[_<SenderId>](<Data> IN)
  • IocIdに対して単一のデータを送信する(キューなし)

IocSendGroup

Std_ReturnType IocSendGroup_<IocId>(<Data1> IN1, <Data2> IN2, ...)
  • IocIdに対して複数のデータを送信する(キューあり)

IocWriteGroup

Std_ReturnType IocWriteGroup_<IocId>(<Data1> IN1, <Data2> IN2, ...)
  • IocIdに対して複数のデータを送信する(キューなし)

IocReceive

Std_ReturnType IocReceive_<IocId>(<Data> OUT)
  • IocIdから単一のデータを受信する(キューあり)

IocRead

Std_ReturnType IocRead_<IocId>(<Data> OUT)
  • IocIdから単一のデータを受信する(キューなし)

IocReceiveGroup

Std_ReturnType IocReceiveGroup_<IocId>(<Data1> OUT1, <Data2> OUT2, ...)
  • IocIdから複数のデータを受信する(キューあり)

IocReadGroup

Std_ReturnType IocReadGroup_<IocId>(<Data1> OUT1, <Data2> OUT2, ...)
  • IocIdから複数のデータを受信する(キューなし)

IocEmptyQueue

Std_ReturnType IocEmptyQueue_<IocId>(void)
  • IocIdのキューを空にする

GetCurrentApplicationID

ApplicationType GetCurrentApplicationID(void)

コンフィギュレーション仕様

OsAlarm

/AUTOSAR/EcucDefs/Os/OsAlarm
  • 型:Container
  • 多重度:0..*
  • アラームオブジェクトコンテナ

OsAlarmAccessingApplication

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAccessingApplication
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • アラームにアクセス可能なOSAP

OsAlarmCounterRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsCounter
  • アラームに接続するカウンタ

OsAlarmAction

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction
  • 型:Container
  • 多重度:1
  • アラームアクション指定

OsAlarmActivateTask

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask
  • 型:Container
  • 多重度:0..1
  • アラームアクションのタスク起動指定

OsAlarmActivateTaskRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsTask
  • アラームのアクションで起動するタスク

OsAlarmCallback

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmCallback
  • 型:Container
  • 多重度:0..1
  • アラームアクションのアラームコールバック指定

OsAlarmCallbackName

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmCallback/OsAlarmCallbackName
  • 型:FunctionName
  • 多重度:1
  • アラームのアクションで呼び出すアラームコールバックの名称

OsAlarmIncrementCounter

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter
  • 型:Container
  • 多重度:0..1
  • アラームアクションのカウンタインクリメント指定

OsAlarmIncrementCounterRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter/OsAlarmIncrementCounterRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsCounter
  • アラームのアクションでインクリメントするカウンタ

OsAlarmSetEvent

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent
  • 型:Container
  • 多重度:0..1
  • アラームアクションのイベントセット指定

OsAlarmSetEventRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsEvent
  • アラームのアクションでセットするイベント

OsAlarmSetEventTaskRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsTask
  • アラームのアクションでイベントをセットするタスク

OsAlarmAutostart

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart
  • 型:Container
  • 多重度:0..1
  • アラーム自動起動設定

OsAlarmAlarmTime

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:0
  • アラーム自動起動時の初回満了時刻

OsAlarmAutostartType

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • ABSOLUTE:絶対アラームとして自動起動する
    • RELATIVE:相対アラームとして自動起動する
  • アラームの動作種別

OsAlarmCycleTime

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime
  • 型:IntegerParam
  • 多重度:1
  • アラーム自動起動時の周期時間、0の場合は単発アラームとなる
  • 上限値:18446744073709551615
  • 下限値:0

OsAlarmAppModeRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef
  • 型:Reference
  • 多重度:1..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsAppMode
  • 自動起動するアプリケーションモード

OsAppMode

/AUTOSAR/EcucDefs/Os/OsAppMode
  • 型:Container
  • 多重度:1..*
  • アプリケーションモードコンテナ

OsApplication

/AUTOSAR/EcucDefs/Os/OsApplication
  • 型:Container
  • 多重度:0..*
  • OSAPオブジェクトコンテナ

OsApplicationCoreAssignment

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationCoreAssignment
  • 型:IntegerParam
  • 多重度:0..1
  • OSAPを割付けるコアID

OsApplicationCoreRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationCoreRef
  • 型:Reference
  • 多重度:0..1
  • 参照先:/AUTOSAR/EcucDefs/EcuC/EcucHardware/EcucCoreDefinition

OsTrusted

/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted
  • 型:BooleanParam
  • 多重度:1
  • デフォルト値:false
  • 信頼OSAPか非信頼OSAPかを表す

OsTrustedApplicationDelayTimingViolationCall

/AUTOSAR/EcucDefs/Os/OsApplication/OsTrustedApplicationDelayTimingViolationCall
  • 型:BooleanParam
  • 多重度:1
  • デフォルト値:true

OsTrustedApplicationWithProtection

/AUTOSAR/EcucDefs/Os/OsApplication/OsTrustedApplicationWithProtection
  • 型:BooleanParam
  • 多重度:1
  • デフォルト値:false

OsAppAlarmRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsAlarm
  • OSAPに所属するアラーム

OsAppCounterRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsCounter
  • OSAPに所属するカウンタ

OsAppEcucPartitionRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppEcucPartitionRef
  • 型:Reference
  • 多重度:0..1
  • 参照先:/AUTOSAR/EcucDefs/EcuC/EcucPartitionCollection/EcucPartition
  • OSAPに対応するEcucPartition

OsAppIsrRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppIsrRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsIsr
  • OSAPに所属するISR

OsAppScheduleTableRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsScheduleTable
  • OSAPに所属するスケジュールテーブル

OsAppTaskRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsTask
  • OSAPに所属するタスク

OsRestartTask

/AUTOSAR/EcucDefs/Os/OsApplication/OsRestartTask
  • 型:Reference
  • 多重度:0..1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsTask
  • OSAP再起動時に起動するタスク
  • 本パラメータを指定しない場合、リスタートタスクの起動は行われない

OsApplicationHooks

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks
  • 型:Container
  • 多重度:1
  • OSAP固有フックコンテナ

OsAppErrorHook

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook
  • 型:BooleanParam
  • 多重度:1
  • OSAP固有のエラーフック呼出し有無

OsAppShutdownHook

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook
  • 型:BooleanParam
  • 多重度:1
  • OSAP固有のシャットダウンフック呼出し有無

OsAppStartupHook

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook
  • 型:BooleanParam
  • 多重度:1
  • OSAP固有のスタートアップフック呼出し有無

OsApplicationTrustedFunction

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction
  • 型:Container
  • 多重度:0..*
  • 信頼関数定義

OsTrustedFunctionName

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName
  • 型:FunctionName
  • 多重度:1
  • 信頼関数名

OsCounter

/AUTOSAR/EcucDefs/Os/OsCounter
  • 型:Container
  • 多重度:0..*
  • カウンタオブジェクトコンテナ

OsCounterMaxAllowedValue

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:1
  • カウンタのティックの最大値

OsCounterMinCycle

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:1
  • 接続されたアラームがカウンタに指定できる最小周期値

OsCounterTicksPerBase

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase
  • 型:IntegerParam
  • 多重度:1
  • 上限値:4294967295
  • 下限値:1
  • OSがこの値をどのように使用するか不明
  • カウンタ固有の値(OSは不使用)

OsCounterType

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • HARDWARE:ハードウェアカウンタ
    • SOFTWARE:ソフトウェアカウンタ
  • カウンタのタイプ

OsSecondsPerTick

/AUTOSAR/EcucDefs/Os/OsCounter/OsSecondsPerTick
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • ハードウェアカウンタにおける1ティック当たりの実時間(単位:秒)
  • ジェネレータは、ユーザが実時間を計算するために、変換マクロを生成する生成されるマクロの形式は、OS_TICKS2<Unit>_<Counter>(ticks)である
  • <Unit>にはNS、US、MS、SECが入り、4種類のマクロを出力する
  • <Counter>)は本コンテナを含むカウンタの名称である

OsCounterAccessingApplication

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterAccessingApplication
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • カウンタにアクセス可能なOSAP

OsDriver

/AUTOSAR/EcucDefs/Os/OsCounter/OsDriver
  • 型:Container
  • 多重度:0..1
  • OsDriverコンテナの節がないため、削除漏れと思われる
    • TOPPERS/ATK2では削除している

OsGptChannelRef

/AUTOSAR/EcucDefs/Os/OsCounter/OsDriver/OsGptChannelRef
  • 型:Reference
  • 多重度:0..1
  • 参照先:/AUTOSAR/EcucDefs/Gpt/GptChannelConfigSet/GptChannelConfiguration
  • OsDriverコンテナの節がないため、削除漏れと思われる
    • TOPPERS/ATK2では削除している

OsTimeConstant

/AUTOSAR/EcucDefs/Os/OsCounter/OsTimeConstant
  • 型:Container
  • 多重度:0..*
  • OSがこの値をどのように使用するか不明
    • OsSecondsPerTickで同様の値を設定しているように思われる
    • TOPPERS/ATK2では削除している

OsTimeValue

/AUTOSAR/EcucDefs/Os/OsCounter/OsTimeConstant/OsTimeValue
  • 型:FloatParam
  • 多重度:1
  • 上限値:Inf
  • 下限値:0
  • OSがこの値をどのように使用するか不明
    • OsSecondsPerTickで同様の値を設定しているように思われる
    • TOPPERS/ATK2では削除している

OsEvent

/AUTOSAR/EcucDefs/Os/OsEvent
  • 型:Container
  • 多重度:0..*
  • イベントオブジェクトコンテナ

OsEventMask

/AUTOSAR/EcucDefs/Os/OsEvent/OsEventMask
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:18446744073709551615
  • 下限値:0
  • イベントマスク値

OsIsr

/AUTOSAR/EcucDefs/Os/OsIsr
  • 型:Container
  • 多重度:0..*
  • ISRオブジェクトコンテナ

OsIsrCategory

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • CATEGORY_1:C1ISR
    • CATEGORY_2:C2ISR
  • ISRのカテゴリ

OsIsrResourceRef

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrResourceRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsResource
  • ISRが獲得するリソース

OsIsrTimingProtection

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection
  • 型:Container
  • 多重度:0..1
  • ISRオブジェクトタイミング保護設定コンテナ

OsIsrAllInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrAllInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • 全割込み禁止時間バジェット(単位:秒)

OsIsrExecutionBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrExecutionBudget
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • C2ISR実行時間バジェット(単位:秒)

OsIsrOsInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrOsInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • OS割込み禁止バジェット(単位:秒)

OsIsrTimeFrame

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrTimeFrame
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • ISRタイムフレーム(単位:秒)

OsIsrResourceLock

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrResourceLock
  • 型:Container
  • 多重度:0..*
  • ISRのリソース占有時間バジェット設定コンテナ

OsIsrResourceLockBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrResourceLock/OsIsrResourceLockBudget
  • 型:FloatParam
  • 多重度:1
  • 上限値:Inf
  • 下限値:0
  • リソース占有時間バジェット(単位:秒)

OsIsrResourceLockResourceRef

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrResourceLock/OsIsrResourceLockResourceRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsResource
  • リソース占有時間バジェットを監視するリソース

OsOS

/AUTOSAR/EcucDefs/Os/OsOS
  • 型:Container
  • 多重度:1
  • OS設定コンテナ

OsNumberOfCores

/AUTOSAR/EcucDefs/Os/OsOS/OsNumberOfCores
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:65535
  • 下限値:1
  • 複数のコアの中で、どのコアがマスタコアかを指定するコンテナが存在しない
    • ComなどのBSWはマスタコアでしか使用できないため、RTEジェネレータがマスタコア/スレーブコアの判別ができない問題がある
    • TOPPERS/ATK2では、/AUTOSAR/EcucDefs/Os/OsOS/OsMasterCoreIdを新設している
  • 本OSを起動するコア数の最大値

OsScalabilityClass

/AUTOSAR/EcucDefs/Os/OsOS/OsScalabilityClass
  • 型:EnumerationParam
  • 多重度:0..1
  • 選択肢:
    • SC1:スケーラビリティクラス1
    • SC2:スケーラビリティクラス2(タイミング保護)
    • SC3:スケーラビリティクラス3(メモリ保護)
    • SC4:スケーラビリティクラス4(タイミング保護+メモリ保護)
  • スケーラビリティクラス
  • 本パラメータが省略された場合、実装定義のデフォルト値が選択される

OsStackMonitoring

/AUTOSAR/EcucDefs/Os/OsOS/OsStackMonitoring
  • 型:BooleanParam
  • 多重度:1
  • スタックモニタリングの使用有無

OsStatus

/AUTOSAR/EcucDefs/Os/OsOS/OsStatus
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • EXTENDED:標準エラーのみ検出
    • STANDARD:標準エラーと拡張エラーを検出
  • エラーコード種別の指定

OsUseGetServiceId

/AUTOSAR/EcucDefs/Os/OsOS/OsUseGetServiceId
  • 型:BooleanParam
  • 多重度:1
  • OSErrorGetServiceId()の使用有無

OsUseParameterAccess

/AUTOSAR/EcucDefs/Os/OsOS/OsUseParameterAccess
  • 型:BooleanParam
  • 多重度:1
  • エラーが発生したシステムサービスの引数取得の使用有無

OsUseResScheduler

/AUTOSAR/EcucDefs/Os/OsOS/OsUseResScheduler
  • 型:BooleanParam
  • 多重度:1
  • デフォルト値:true
  • AUTOSAR仕様では、スケジューラリソースをサポートしないため本パラメータは使用されない

OsHooks

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks
  • 型:Container
  • 多重度:1
  • フック設定コンテナ

OsErrorHook

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsErrorHook
  • 型:BooleanParam
  • 多重度:1
  • エラーフックの呼出し有無

OsPostTaskHook

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPostTaskHook
  • 型:BooleanParam
  • 多重度:1
  • ポストタスクフックの呼出し有無

OsPreTaskHook

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPreTaskHook
  • 型:BooleanParam
  • 多重度:1
  • プレタスクフックの呼出し有無

OsProtectionHook

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsProtectionHook
  • 型:BooleanParam
  • 多重度:0..1
  • プロテクションフックの呼出し有無

OsShutdownHook

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsShutdownHook
  • 型:BooleanParam
  • 多重度:1
  • シャットダウンフックの呼出し有無

OsStartupHook

/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsStartupHook
  • 型:BooleanParam
  • 多重度:1
  • スタートアップフックの呼出し有無

OsResource

/AUTOSAR/EcucDefs/Os/OsResource
  • 型:Container
  • 多重度:0..*
  • リソースオブジェクトコンテナ

OsResourceProperty

/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • INTERNAL:標準リソース
    • LINKED:リンクリソース
    • STANDARD:内部リソース
  • リソース種別

OsResourceAccessingApplication

/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • リソースにアクセス可能なOSAP

OsResourceLinkedResourceRef

/AUTOSAR/EcucDefs/Os/OsResource/OsResourceLinkedResourceRef
  • 型:Reference
  • 多重度:0..1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsResource
  • リンクリソースにおけるリンク先リソース

OsScheduleTable

/AUTOSAR/EcucDefs/Os/OsScheduleTable
  • 型:Container
  • 多重度:0..*
  • スケジュールテーブルオブジェクトコンテナ

OsScheduleTableDuration

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:0
  • スケジュールテーブル周期(ティック数)

OsScheduleTableRepeating

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating
  • 型:BooleanParam
  • 多重度:1
  • スケジュールテーブルの繰り返し指定

OsSchTblAccessingApplication

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsSchTblAccessingApplication
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • スケジュールテーブルにアクセス可能なOSAP

OsScheduleTableCounterRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsCounter
  • スケジュールテーブルに接続するカウンタ

OsScheduleTableAutostart

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart
  • 型:Container
  • 多重度:0..1
  • スケジュールテーブル自動起動設定コンテナ

OsScheduleTableAutostartType

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableAutostartType
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • ABSOLUTE:ティックの絶対値で自動起動する
    • RELATIVE:ティックの相対値で自動起動する
    • SYNCHRON:同期待ち状態で自動起動する
  • 自動起動種別の指定

OsScheduleTableStartValue

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableStartValue
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:18446744073709551615
  • 下限値:0
  • OsScheduleTableAutostartTypeがABSOLUTEの場合、自動起動するスケジュールテーブルに対して設定するティックの絶対値として使用される
  • OsScheduleTableAutostartTypeがRELATIVEの場合、自動起動するスケジュールテーブルに対して設定するティックの相対値として使用される

OsScheduleTableAppModeRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableAppModeRef
  • 型:Reference
  • 多重度:1..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsAppMode
  • 自動起動するアプリケーションモード

OsScheduleTableExpiryPoint

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint
  • 型:Container
  • 多重度:1..*
  • スケジュールテーブル満了点設定コンテナ

OsScheduleTblExpPointOffset

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:0
  • スケジュールテーブル満了点オフセット(スケジュールテーブル先頭からのティック数)

OsScheduleTableEventSetting

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting
  • 型:Container
  • 多重度:0..*
  • スケジュールテーブル満了点セットするイベントの設定コンテナ

OsScheduleTableSetEventRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsEvent
  • 満了点アクションでセットするイベント

OsScheduleTableSetEventTaskRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsTask
  • 満了点アクションでイベントをセットするタスク

OsScheduleTableTaskActivation

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation
  • 型:Container
  • 多重度:0..*
  • スケジュールテーブル満了点で起動するタスクの設定コンテナ

OsScheduleTableActivateTaskRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsTask
  • 満了点アクションで起動するタスク

OsScheduleTblAdjustableExpPoint

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblAdjustableExpPoint
  • 型:Container
  • 多重度:0..1
  • スケジュールテーブル満了点同期設定コンテナ

OsScheduleTableMaxLengthen

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblAdjustableExpPoint/OsScheduleTableMaxLengthen
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:0
  • 同期補正で満了点の遅延を伸ばしてもよい最大値(ティック数)

OsScheduleTableMaxShorten

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblAdjustableExpPoint/OsScheduleTableMaxShorten
  • 型:IntegerParam
  • 多重度:1
  • 上限値:18446744073709551615
  • 下限値:0
  • 同期補正で満了点の遅延を縮めてもよい最大値(ティック数)

OsScheduleTableSync

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync
  • 型:Container
  • 多重度:0..1
  • スケジュールテーブル同期設定コンテナ
  • 本コンテナを省略した場合、同期なしスケジュールテーブルとなる

OsScheduleTblExplicitPrecision

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblExplicitPrecision
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:18446744073709551615
  • 下限値:0
  • スケジュールテーブルを同期状態とみなす最大差分(ティック数)

OsScheduleTblSyncStrategy

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • EXPLICIT:明示同期
    • IMPLICIT:暗黙同期
    • NONE:同期なし
  • デフォルト値:NONE
  • スケジュールテーブルの同期方式

OsSpinlock

/AUTOSAR/EcucDefs/Os/OsSpinlock
  • 型:Container
  • 多重度:0..*
  • スピンロックオブジェクトコンテナ

OsSpinlockLockMethod

/AUTOSAR/EcucDefs/Os/OsSpinlock/OsSpinlockLockMethod
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • LOCK_ALL_INTERRUPTS
    • LOCK_CAT2_INTERRUPTS
    • LOCK_NOTHING
    • LOCK_WITH_RES_SCHEDULER
  • デフォルト値:LOCK_NOTHING

OsSpinlockAccessingApplication

/AUTOSAR/EcucDefs/Os/OsSpinlock/OsSpinlockAccessingApplication
  • 型:Reference
  • 多重度:1..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • スピンロックにアクセス可能なOSAP

OsSpinlockSuccessor

/AUTOSAR/EcucDefs/Os/OsSpinlock/OsSpinlockSuccessor
  • 型:Reference
  • 多重度:0..1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsSpinlock
  • ネストして獲得可能なスピンロック指定
  • 獲得するスピンロックの順に本パラメータを記述することで、スピンロック獲得順序を示すリストを管理し、チェックすることができる

OsTask

/AUTOSAR/EcucDefs/Os/OsTask
  • 型:Container
  • 多重度:0..*
  • タスクオブジェクトコンテナ

OsTaskActivation

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation
  • 型:IntegerParam
  • 多重度:1
  • 上限値:4294967295
  • 下限値:1
  • 最大起動要求回数

OsTaskPriority

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority
  • 型:IntegerParam
  • 多重度:1
  • 上限値:4294967295
  • 下限値:0
  • タスク優先度

OsTaskSchedule

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule
  • 型:EnumerationParam
  • 多重度:1
  • 選択肢:
    • FULL:フルプリエンプティブスケジューリング
    • NON:ノンプリエンプティブスケジューリング
  • タスクのスケジューリングポリシ

OsTaskAccessingApplication

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • タスクにアクセス可能なOSAP

OsTaskEventRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsEvent
  • タスクの持つイベント

OsTaskResourceRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef
  • 型:Reference
  • 多重度:0..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsResource
  • タスクが獲得するリソース

OsTaskAutostart

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart
  • 型:Container
  • 多重度:0..1
  • タスクオブジェクトの自動起動指定コンテナ

OsTaskAppModeRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef
  • 型:Reference
  • 多重度:1..*
  • 参照先:/AUTOSAR/EcucDefs/Os/OsAppMode
  • 自動起動するアプリケーションモード

OsTaskTimingProtection

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection
  • 型:Container
  • 多重度:0..1
  • タスクオブジェクトタイミング保護設定コンテナ

OsTaskAllInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskAllInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • 全割込み禁止時間バジェット(単位:秒)

OsTaskExecutionBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskExecutionBudget
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • タスク実行時間バジェット(単位:秒)

OsTaskOsInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskOsInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • OS割込み禁止バジェット(単位:秒)

OsTaskTimeFrame

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskTimeFrame
  • 型:FloatParam
  • 多重度:0..1
  • 上限値:Inf
  • 下限値:0
  • タスクタイムフレーム(単位:秒)

OsTaskResourceLock

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskResourceLock
  • 型:Container
  • 多重度:0..*
  • タスクのリソース占有時間バジェット設定コンテナ

OsTaskResourceLockBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskResourceLock/OsTaskResourceLockBudget
  • 型:FloatParam
  • 多重度:1
  • 上限値:Inf
  • 下限値:0
  • リソース占有時間バジェット(単位:秒)

OsTaskResourceLockResourceRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskResourceLock/OsTaskResourceLockResourceRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsResource
  • リソース占有時間バジェットを監視するリソース

OsIoc

/AUTOSAR/EcucDefs/Os/OsIoc
  • 型:Container
  • 多重度:0..1
  • IOC情報コンテナ

OsIocCommunication

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication
  • 型:Container
  • 多重度:0..*
  • IOCオブジェクトコンテナ

OsIocBufferLength

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocBufferLength
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:4294967295
  • 下限値:0
  • IOCのキューサイズ
  • 本パラメータを指定した場合、IOCはキューありとなり、本パラメータを省略した場合、IOCはキューなしとなる

OsIocDataProperties

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties
  • 型:Container
  • 多重度:1..*
  • 通信データ情報コンテナ
  • 本コンテナが1つ定義された場合、単一通信となり、2つ以上定義された場合、グループ通信となる

OsIocDataPropertyIndex

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:255
  • 下限値:0
  • 生成されるIOC用システムサービスの引数の順序
  • 小さい値のデータから順に、引数に与えられる

OsIocInitValue

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue
  • 型:StringParam
  • 多重度:0..1
  • 通信データの初期値

OsIocDataTypeRef

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef
  • 型:Reference
  • 多重度:1
  • 参照先:IMPLEMENTATION-DATA-TYPE
  • 通信データのデータ型

OsIocReceiverProperties

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties
  • 型:Container
  • 多重度:
    • R4.0.3:1
    • R4.2.2:1..*
  • レシーバ情報コンテナ

OsIocFunctionImplementationKind

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind
  • 型:EnumerationParam
  • 多重度:0..1
  • 選択肢:
    • DO_NOT_CARE:指定しない
    • FUNCTION:関数
    • MACRO:マクロ
  • デフォルト値:DO_NOT_CARE
  • IOC用システムサービスの実装方法の選択

OsIocReceiverPullCB

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceiverPullCB
  • 型:FunctionName
  • 多重度:0..1
  • IOCによるデータ受信時に呼び出すコールバック

OsIocReceivingOsApplicationRef

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • レシーバが所属するOSAP

OsIocSenderProperties

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties
  • 型:Container
  • 多重度:1..*
  • センダ情報コンテナ
  • 本コンテナが1つ定義された場合、1:1通信となり、2つ以上定義された場合、N:1通信となる

OsIocFunctionImplementationKind

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind
  • 型:EnumerationParam
  • 多重度:0..1
  • 選択肢:
    • DO_NOT_CARE:指定しない
    • FUNCTION:関数
    • MACRO:マクロ
  • デフォルト値:DO_NOT_CARE
  • IOC用システムサービスの実装方法の選択

OsIocSenderId

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId
  • 型:IntegerParam
  • 多重度:0..1
  • 上限値:255
  • 下限値:0
  • N:1通信時におけるセンダID

OsIocSendingOsApplicationRef

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef
  • 型:Reference
  • 多重度:1
  • 参照先:/AUTOSAR/EcucDefs/Os/OsApplication
  • センダが所属するOSAP
Note: See TracWiki for help on using the wiki.