wiki:spec/Os

Version 18 (modified by fujisft-shigihara, 9 years ago) ( diff )

--

OS


概要

  • AUTOSARプラットフォームにおけるリアルタイムOS
    • 主にタスクスケジューリング、割込み管理などを行う
    • MCAL層が無いため、マイコンに依存した実装が伴う
  • OSEK/VDX仕様OSの上位互換とされ、OSEK仕様書に記載されている内容については、AUTOSAR仕様書には記載されていない
    • OSEK仕様書もAUTOSAR同様、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仕様API ID
[Dec]
ID
[Hex]
AUTOSAR仕様API ID
[Dec]
ID
[Hex]
ActivateTask -- -- GetApplicationID 0 0x00
TerminateTask -- -- GetISRID 1 0x01
ChainTask -- -- CallTrustedFunction 2 0x02
Schedule -- -- CheckISRMemoryAccess 3 0x03
GetTaskID -- -- CheckTaskMemoryAccess 4 0x04
GetTaskState -- -- CheckObjectAccess 5 0x05
EnableAllInterrupts -- -- CheckObjectOwnership 6 0x06
DisableAllInterrupts -- -- StartScheduleTableRel 7 0x07
ResumeAllInterrupts -- -- StartScheduleTableAbs 8 0x08
SuspendAllInterrupts -- -- StopScheduleTable 9 0x09
ResumeOSInterrupts -- -- NextScheduleTable 10 0x0A
SuspendOSInterrupts -- -- StartScheduleTableSynchron 11 0x0B
GetResource -- -- SyncScheduleTable 12 0x0C
ReleaseResource -- -- SetScheduletableAsync 13 0x0D
SetEvent -- -- GetScheduleTableStatus 14 0x0E
ClearEvent -- -- IncrementCounter 15 0x0F
GetEvent -- -- GetCounterValue 16 0x10
WaitEvent -- -- GetElapsedValue 17 0x11
GetAlarmBase -- -- TerminateApplication 18 0x12
GetAlarm -- -- AllowAccess 19 0x13
SetRelAlarm -- -- GetApplicationState 20 0x14
SetAbsAlarm -- -- GetNumberOfActivatedCores 21 0x15
CancelAlarm -- -- GetCoreID 22 0x16
GetActiveApplicationMode -- -- StartCore 23 0x17
StartOS -- -- StartNonAutosarCore 24 0x18
ShutdownOS -- -- GetSpinlock 25 0x19
ReleaseSpinlock 26 0x1A
TryToGetSpinlock 27 0x1B
ShutdownAllCores 28 0x1C
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
  • エラーコード一覧
    • "--"は実装依存と規定されている
エラーコード Dec Hex
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が渡される実装としている

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のキューを空にする

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

OsAlarm

/AUTOSAR/EcucDefs/Os/OsAlarm
  • 型:Container
  • 多重度:0..*

OsAlarmAccessingApplication

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAccessingApplication
  • 型:Reference
  • 多重度:0..*

OsAlarmCounterRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef
  • 型:Reference
  • 多重度:1

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

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

OsAlarmSetEvent

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent
  • 型:Container
  • 多重度:0..1

OsAlarmSetEventRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef
  • 型:Reference
  • 多重度:1

OsAlarmSetEventTaskRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef
  • 型:Reference
  • 多重度:1

OsAlarmAutostart

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart
  • 型:Container
  • 多重度:0..1

OsAlarmAlarmTime

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime
  • 型:IntegerParam
  • 多重度:1

OsAlarmAutostartType

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType
  • 型:EnumerationParam
  • 多重度:1

OsAlarmCycleTime

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime
  • 型:IntegerParam
  • 多重度:1

OsAlarmAppModeRef

/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef
  • 型:Reference
  • 多重度:1..*

OsAppMode

/AUTOSAR/EcucDefs/Os/OsAppMode
  • 型:Container
  • 多重度:1..*

OsApplication

/AUTOSAR/EcucDefs/Os/OsApplication
  • 型:Container
  • 多重度:0..*

OsApplicationCoreAssignment

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationCoreAssignment
  • 型:IntegerParam
  • 多重度:0..1

OsTrusted

/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted
  • 型:BooleanParam
  • 多重度:1

OsAppAlarmRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef
  • 型:Reference
  • 多重度:0..*

OsAppCounterRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef
  • 型:Reference
  • 多重度:0..*

OsAppEcucPartitionRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppEcucPartitionRef
  • 型:Reference
  • 多重度:0..1

OsAppIsrRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppIsrRef
  • 型:Reference
  • 多重度:0..*

OsAppScheduleTableRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef
  • 型:Reference
  • 多重度:0..*

OsAppTaskRef

/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef
  • 型:Reference
  • 多重度:0..*

OsRestartTask

/AUTOSAR/EcucDefs/Os/OsApplication/OsRestartTask
  • 型:Reference
  • 多重度:0..1

OsApplicationHooks

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks
  • 型:Container
  • 多重度:1

OsAppErrorHook

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook
  • 型:BooleanParam
  • 多重度:1

OsAppShutdownHook

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook
  • 型:BooleanParam
  • 多重度:1

OsAppStartupHook

/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook
  • 型:BooleanParam
  • 多重度:1

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

OsCounterMinCycle

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle
  • 型:IntegerParam
  • 多重度:1

OsCounterTicksPerBase

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase
  • 型:IntegerParam
  • 多重度:1
  • OSがこの値をどのように使用するか不明

OsCounterType

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType
  • 型:EnumerationParam
  • 多重度:1

OsSecondsPerTick

/AUTOSAR/EcucDefs/Os/OsCounter/OsSecondsPerTick
  • 型:FloatParam
  • 多重度:0..1

OsCounterAccessingApplication

/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterAccessingApplication
  • 型:Reference
  • 多重度:0..*

OsDriver

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

OsGptChannelRef

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

OsTimeConstant

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

OsTimeValue

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

OsEvent

/AUTOSAR/EcucDefs/Os/OsEvent
  • 型:Container
  • 多重度:0..*

OsEventMask

/AUTOSAR/EcucDefs/Os/OsEvent/OsEventMask
  • 型:IntegerParam
  • 多重度:0..1

OsIsr

/AUTOSAR/EcucDefs/Os/OsIsr
  • 型:Container
  • 多重度:0..*

OsIsrCategory

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory
  • 型:EnumerationParam
  • 多重度:1

OsIsrResourceRef

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrResourceRef
  • 型:Reference
  • 多重度:0..*

OsIsrTimingProtection

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection
  • 型:Container
  • 多重度:0..1

OsIsrAllInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrAllInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1

OsIsrExecutionBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrExecutionBudget
  • 型:FloatParam
  • 多重度:0..1

OsIsrOsInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrOsInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1

OsIsrTimeFrame

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrTimeFrame
  • 型:FloatParam
  • 多重度:0..1

OsIsrResourceLock

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrResourceLock
  • 型:Container
  • 多重度:0..*

OsIsrResourceLockBudget

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrResourceLock/OsIsrResourceLockBudget
  • 型:FloatParam
  • 多重度:1

OsIsrResourceLockResourceRef

/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrTimingProtection/OsIsrResourceLock/OsIsrResourceLockResourceRef
  • 型:Reference
  • 多重度:1

OsOS

/AUTOSAR/EcucDefs/Os/OsOS
  • 型:Container
  • 多重度:1

OsNumberOfCores

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

OsScalabilityClass

/AUTOSAR/EcucDefs/Os/OsOS/OsScalabilityClass
  • 型:EnumerationParam
  • 多重度:0..1

OsStackMonitoring

/AUTOSAR/EcucDefs/Os/OsOS/OsStackMonitoring
  • 型:BooleanParam
  • 多重度:1

OsStatus

/AUTOSAR/EcucDefs/Os/OsOS/OsStatus
  • 型:EnumerationParam
  • 多重度:1

OsUseGetServiceId

/AUTOSAR/EcucDefs/Os/OsOS/OsUseGetServiceId
  • 型:BooleanParam
  • 多重度:1

OsUseParameterAccess

/AUTOSAR/EcucDefs/Os/OsOS/OsUseParameterAccess
  • 型:BooleanParam
  • 多重度:1

OsUseResScheduler

/AUTOSAR/EcucDefs/Os/OsOS/OsUseResScheduler
  • 型:BooleanParam
  • 多重度:1

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

OsResourceAccessingApplication

/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication
  • 型:Reference
  • 多重度:0..*

OsResourceLinkedResourceRef

/AUTOSAR/EcucDefs/Os/OsResource/OsResourceLinkedResourceRef
  • 型:Reference
  • 多重度:0..1

OsScheduleTable

/AUTOSAR/EcucDefs/Os/OsScheduleTable
  • 型:Container
  • 多重度:0..*

OsScheduleTableDuration

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration
  • 型:IntegerParam
  • 多重度:1

OsScheduleTableRepeating

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating
  • 型:BooleanParam
  • 多重度:1

OsSchTblAccessingApplication

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsSchTblAccessingApplication
  • 型:Reference
  • 多重度:0..*

OsScheduleTableCounterRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef
  • 型:Reference
  • 多重度:1

OsScheduleTableAutostart

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart
  • 型:Container
  • 多重度:0..1

OsScheduleTableAutostartType

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableAutostartType
  • 型:EnumerationParam
  • 多重度:1

OsScheduleTableStartValue

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableStartValue
  • 型:IntegerParam
  • 多重度:0..1

OsScheduleTableAppModeRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableAppModeRef
  • 型:Reference
  • 多重度:1..*

OsScheduleTableExpiryPoint

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint
  • 型:Container
  • 多重度:1..*

OsScheduleTblExpPointOffset

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset
  • 型:IntegerParam
  • 多重度:1

OsScheduleTableEventSetting

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting
  • 型:Container
  • 多重度:0..*

OsScheduleTableSetEventRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef
  • 型:Reference
  • 多重度:1

OsScheduleTableSetEventTaskRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef
  • 型:Reference
  • 多重度:1

OsScheduleTableTaskActivation

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation
  • 型:Container
  • 多重度:0..*

OsScheduleTableActivateTaskRef

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef
  • 型:Reference
  • 多重度:1

OsScheduleTblAdjustableExpPoint

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblAdjustableExpPoint
  • 型:Container
  • 多重度:0..1

OsScheduleTableMaxLengthen

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblAdjustableExpPoint/OsScheduleTableMaxLengthen
  • 型:IntegerParam
  • 多重度:1

OsScheduleTableMaxShorten

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblAdjustableExpPoint/OsScheduleTableMaxShorten
  • 型:IntegerParam
  • 多重度:1

OsScheduleTableSync

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync
  • 型:Container
  • 多重度:0..1

OsScheduleTblExplicitPrecision

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblExplicitPrecision
  • 型:IntegerParam
  • 多重度:0..1

OsScheduleTblSyncStrategy

/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy
  • 型:EnumerationParam
  • 多重度:1

OsSpinlock

/AUTOSAR/EcucDefs/Os/OsSpinlock
  • 型:Container
  • 多重度:0..*

OsSpinlockAccessingApplication

/AUTOSAR/EcucDefs/Os/OsSpinlock/OsSpinlockAccessingApplication
  • 型:Reference
  • 多重度:1..*

OsSpinlockSuccessor

/AUTOSAR/EcucDefs/Os/OsSpinlock/OsSpinlockSuccessor
  • 型:Reference
  • 多重度:0..1

OsTask

/AUTOSAR/EcucDefs/Os/OsTask
  • 型:Container
  • 多重度:0..*

OsTaskActivation

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation
  • 型:IntegerParam
  • 多重度:1

OsTaskPriority

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority
  • 型:IntegerParam
  • 多重度:1

OsTaskSchedule

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule
  • 型:EnumerationParam
  • 多重度:1

OsTaskAccessingApplication

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication
  • 型:Reference
  • 多重度:0..*

OsTaskEventRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef
  • 型:Reference
  • 多重度:0..*

OsTaskResourceRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef
  • 型:Reference
  • 多重度:0..*

OsTaskAutostart

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart
  • 型:Container
  • 多重度:0..1

OsTaskAppModeRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef
  • 型:Reference
  • 多重度:1..*

OsTaskTimingProtection

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection
  • 型:Container
  • 多重度:0..1

OsTaskAllInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskAllInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1

OsTaskExecutionBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskExecutionBudget
  • 型:FloatParam
  • 多重度:0..1

OsTaskOsInterruptLockBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskOsInterruptLockBudget
  • 型:FloatParam
  • 多重度:0..1

OsTaskTimeFrame

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskTimeFrame
  • 型:FloatParam
  • 多重度:0..1

OsTaskResourceLock

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskResourceLock
  • 型:Container
  • 多重度:0..*

OsTaskResourceLockBudget

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskResourceLock/OsTaskResourceLockBudget
  • 型:FloatParam
  • 多重度:1

OsTaskResourceLockResourceRef

/AUTOSAR/EcucDefs/Os/OsTask/OsTaskTimingProtection/OsTaskResourceLock/OsTaskResourceLockResourceRef
  • 型:Reference
  • 多重度:1

OsIoc

/AUTOSAR/EcucDefs/Os/OsIoc
  • 型:Container
  • 多重度:0..1

OsIocCommunication

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication
  • 型:Container
  • 多重度:0..*

OsIocBufferLength

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocBufferLength
  • 型:IntegerParam
  • 多重度:0..1

OsIocDataProperties

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties
  • 型:Container
  • 多重度:1..*

OsIocDataPropertyIndex

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex
  • 型:IntegerParam
  • 多重度:0..1

OsIocInitValue

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue
  • 型:StringParam
  • 多重度:0..1

OsIocDataTypeRef

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef
  • 型:Reference
  • 多重度:1

OsIocReceiverProperties

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties
  • 型:Container
  • 多重度:1

OsIocFunctionImplementationKind

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind
  • 型:EnumerationParam
  • 多重度:0..1

OsIocReceiverPullCB

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceiverPullCB
  • 型:FunctionName
  • 多重度:0..1

OsIocReceivingOsApplicationRef

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef
  • 型:Reference
  • 多重度:1

OsIocSenderProperties

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties
  • 型:Container
  • 多重度:1..*

OsIocFunctionImplementationKind

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind
  • 型:EnumerationParam
  • 多重度:0..1

OsIocSenderId

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId
  • 型:IntegerParam
  • 多重度:0..1

OsIocSendingOsApplicationRef

/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef
  • 型:Reference
  • 多重度:1
Note: See TracWiki for help on using the wiki.