Version 14 (modified by 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)
- 基本セット + タイミング保護 + メモリ保護
- スケーラビリティクラス1(SC1)
- すべてのSCをマルチコアに拡張可能である
- 用語一覧
- C1ISR:カテゴリ1ISR
- C2ISR:カテゴリ2ISR
- OSAP:OSアプリケーション
- API一覧
- "--"はOSEKのため未規定
- コンフィギュレーション一覧
- OsAlarm
- OsAppMode
- OsApplication
- OsCounter
- OsEvent
- OsIsr
- OsOS
- OsResource
- OsScheduleTable
- OsSpinlock
- OsTask
- OsIoc
- エラーコード一覧
- "--"は実装依存と規定されている
エラーコード 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が強制終了した場合:多重起動はリセット
- TOPPERS/ATK2では、以下のような実装としている
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)
- OSを起動する
- ECU State Managerから呼び出される
ShutdownOS
void ShutdownOS(StatusType Error)
- OSをシャットダウンする
API仕様(AUTOSAR)
GetApplicationID
ApplicationType GetApplicationID(void)
- 実行状態のOSAP IDを取得する
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.