{{{ #!html
OS
}}} [[BR]] = 概要 = * AUTOSARプラットフォームにおけるリアルタイムOS * 主にタスクスケジューリング、割込み管理などを行う * MCAL層が無いため、マイコンに依存した実装が伴う * [http://ja.wikipedia.org/wiki/OSEK OSEK/VDX]仕様OSの上位互換とされ、OSEK仕様書に記載されている内容については、AUTOSAR仕様書には記載されていない * OSEK仕様書もAUTOSAR同様、Webで[http://www.osek-vdx.org/ 公開]されている * 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[[BR]][Dec] =||= ID[[BR]][Hex] =|| ||= AUTOSAR仕様API =||= ID[[BR]][Dec] =||= ID[[BR]][Hex] =|| || [#ActivateTask ActivateTask] || --|| --|| || [#GetApplicationID GetApplicationID] || 0|| 0x00|| || [#TerminateTask TerminateTask] || --|| --|| || [#GetISRID GetISRID] || 1|| 0x01|| || [#ChainTask ChainTask] || --|| --|| || [#CallTrustedFunction CallTrustedFunction] || 2|| 0x02|| || [#Schedule Schedule] || --|| --|| || [#CheckISRMemoryAccess CheckISRMemoryAccess] || 3|| 0x03|| || [#GetTaskID GetTaskID] || --|| --|| || [#CheckTaskMemoryAccess CheckTaskMemoryAccess] || 4|| 0x04|| || [#GetTaskState GetTaskState] || --|| --|| || [#CheckObjectAccess CheckObjectAccess] || 5|| 0x05|| || [#EnableAllInterrupts EnableAllInterrupts] || --|| --|| || [#CheckObjectOwnership CheckObjectOwnership] || 6|| 0x06|| || [#DisableAllInterrupts DisableAllInterrupts] || --|| --|| || [#StartScheduleTableRel StartScheduleTableRel] || 7|| 0x07|| || [#ResumeAllInterrupts ResumeAllInterrupts] || --|| --|| || [#StartScheduleTableAbs StartScheduleTableAbs] || 8|| 0x08|| || [#SuspendAllInterrupts SuspendAllInterrupts] || --|| --|| || [#StopScheduleTable StopScheduleTable] || 9|| 0x09|| || [#ResumeOSInterrupts ResumeOSInterrupts] || --|| --|| || [#NextScheduleTable NextScheduleTable] || 10|| 0x0A|| || [#SuspendOSInterrupts SuspendOSInterrupts] || --|| --|| || [#StartScheduleTableSynchron StartScheduleTableSynchron] || 11|| 0x0B|| || [#GetResource GetResource] || --|| --|| || [#SyncScheduleTable SyncScheduleTable] || 12|| 0x0C|| || [#ReleaseResource ReleaseResource] || --|| --|| || [#SetScheduletableAsync SetScheduletableAsync] || 13|| 0x0D|| || [#SetEvent SetEvent] || --|| --|| || [#GetScheduleTableStatus GetScheduleTableStatus] || 14|| 0x0E|| || [#ClearEvent ClearEvent] || --|| --|| || [#IncrementCounter IncrementCounter] || 15|| 0x0F|| || [#GetEvent GetEvent] || --|| --|| || [#GetCounterValue GetCounterValue] || 16|| 0x10|| || [#WaitEvent WaitEvent] || --|| --|| || [#GetElapsedValue GetElapsedValue] || 17|| 0x11|| || [#GetAlarmBase GetAlarmBase] || --|| --|| || [#TerminateApplication TerminateApplication] || 18|| 0x12|| || [#GetAlarm GetAlarm] || --|| --|| || [#AllowAccess AllowAccess] || 19|| 0x13|| || [#SetRelAlarm SetRelAlarm] || --|| --|| || [#GetApplicationState GetApplicationState] || 20|| 0x14|| || [#SetAbsAlarm SetAbsAlarm] || --|| --|| || [#GetNumberOfActivatedCores GetNumberOfActivatedCores] || 21|| 0x15|| || [#CancelAlarm CancelAlarm] || --|| --|| || [#GetCoreID GetCoreID] || 22|| 0x16|| || [#GetActiveApplicationMode GetActiveApplicationMode] || --|| --|| || [#StartCore StartCore] || 23|| 0x17|| || [#StartOS StartOS] || --|| --|| || [#StartNonAutosarCore StartNonAutosarCore] || 24|| 0x18|| || [#ShutdownOS ShutdownOS] || --|| --|| || [#GetSpinlock GetSpinlock] || 25|| 0x19|| || || || || || [#ReleaseSpinlock ReleaseSpinlock] || 26|| 0x1A|| || || || || || [#TryToGetSpinlock TryToGetSpinlock] || 27|| 0x1B|| || || || || || [#ShutdownAllCores ShutdownAllCores] || 28|| 0x1C|| || || || || || [#IocSend IocSend] || 30|| 0x1E|| || || || || || [#IocWrite IocWrite] || 31|| 0x1F|| || || || || || [#IocSendGroup IocSendGroup] || 32|| 0x20|| || || || || || [#IocWriteGroup IocWriteGroup] || 33|| 0x21|| || || || || || [#IocReceive IocReceive] || 34|| 0x22|| || || || || || [#IocRead IocRead] || 35|| 0x23|| || || || || || [#IocReceiveGroup IocReceiveGroup] || 36|| 0x24|| || || || || || [#IocReadGroup IocReadGroup] || 37|| 0x25|| || || || || || [#IocEmptyQueue IocEmptyQueue] || 38|| 0x26|| * コンフィギュレーション一覧 * [#OsAlarm OsAlarm] * [#OsAlarmAccessingApplication OsAlarmAccessingApplication] * [#OsAlarmCounterRef OsAlarmCounterRef] * [#OsAlarmAction OsAlarmAction] * [#OsAlarmActivateTask OsAlarmActivateTask] * [#OsAlarmActivateTaskRef OsAlarmActivateTaskRef] * [#OsAlarmCallback OsAlarmCallback] * [#OsAlarmCallbackName OsAlarmCallbackName] * [#OsAlarmIncrementCounter OsAlarmIncrementCounter] * [#OsAlarmIncrementCounterRef OsAlarmIncrementCounterRef] * [#OsAlarmSetEvent OsAlarmSetEvent] * [#OsAlarmSetEventRef OsAlarmSetEventRef] * [#OsAlarmSetEventTaskRef OsAlarmSetEventTaskRef] * [#OsAlarmAutostart OsAlarmAutostart] * [#OsAlarmAlarmTime OsAlarmAlarmTime] * [#OsAlarmAutostartType OsAlarmAutostartType] * [#OsAlarmCycleTime OsAlarmCycleTime] * [#OsAlarmAppModeRef OsAlarmAppModeRef] * [#OsAppMode OsAppMode] * [#OsApplication OsApplication] * [#OsApplicationCoreAssignment OsApplicationCoreAssignment] * [#OsTrusted OsTrusted] * [#OsAppAlarmRef OsAppAlarmRef] * [#OsAppCounterRef OsAppCounterRef] * [#OsAppEcucPartitionRef OsAppEcucPartitionRef] * [#OsAppIsrRef OsAppIsrRef] * [#OsAppScheduleTableRef OsAppScheduleTableRef] * [#OsAppTaskRef OsAppTaskRef] * [#OsRestartTask OsRestartTask] * [#OsApplicationHooks OsApplicationHooks] * [#OsAppErrorHook OsAppErrorHook] * [#OsAppShutdownHook OsAppShutdownHook] * [#OsAppStartupHook OsAppStartupHook] * [#OsApplicationTrustedFunction OsApplicationTrustedFunction] * [#OsTrustedFunctionName OsTrustedFunctionName] * [#OsCounter OsCounter] * [#OsCounterMaxAllowedValue OsCounterMaxAllowedValue] * [#OsCounterMinCycle OsCounterMinCycle] * [#OsCounterTicksPerBase OsCounterTicksPerBase] * [#OsCounterType OsCounterType] * [#OsSecondsPerTick OsSecondsPerTick] * [#OsCounterAccessingApplication OsCounterAccessingApplication] * [#OsDriver OsDriver] * [#OsGptChannelRef OsGptChannelRef] * [#OsTimeConstant OsTimeConstant] * [#OsTimeValue OsTimeValue] * [#OsEvent OsEvent] * [#OsEventMask OsEventMask] * [#OsIsr OsIsr] * [#OsIsrCategory OsIsrCategory] * [#OsIsrResourceRef OsIsrResourceRef] * [#OsIsrTimingProtection OsIsrTimingProtection] * [#OsIsrAllInterruptLockBudget OsIsrAllInterruptLockBudget] * [#OsIsrExecutionBudget OsIsrExecutionBudget] * [#OsIsrOsInterruptLockBudget OsIsrOsInterruptLockBudget] * [#OsIsrTimeFrame OsIsrTimeFrame] * [#OsIsrResourceLock OsIsrResourceLock] * [#OsIsrResourceLockBudget OsIsrResourceLockBudget] * [#OsIsrResourceLockResourceRef OsIsrResourceLockResourceRef] * [#OsOS OsOS] * [#OsNumberOfCores OsNumberOfCores] * [#OsScalabilityClass OsScalabilityClass] * [#OsStackMonitoring OsStackMonitoring] * [#OsStatus OsStatus] * [#OsUseGetServiceId OsUseGetServiceId] * [#OsUseParameterAccess OsUseParameterAccess] * [#OsUseResScheduler OsUseResScheduler] * [#OsHooks OsHooks] * [#OsErrorHook OsErrorHook] * [#OsPostTaskHook OsPostTaskHook] * [#OsPreTaskHook OsPreTaskHook] * [#OsProtectionHook OsProtectionHook] * [#OsShutdownHook OsShutdownHook] * [#OsStartupHook OsStartupHook] * [#OsResource OsResource] * [#OsResourceProperty OsResourceProperty] * [#OsResourceAccessingApplication OsResourceAccessingApplication] * [#OsResourceLinkedResourceRef OsResourceLinkedResourceRef] * [#OsScheduleTable OsScheduleTable] * [#OsScheduleTableDuration OsScheduleTableDuration] * [#OsScheduleTableRepeating OsScheduleTableRepeating] * [#OsSchTblAccessingApplication OsSchTblAccessingApplication] * [#OsScheduleTableCounterRef OsScheduleTableCounterRef] * [#OsScheduleTableAutostart OsScheduleTableAutostart] * [#OsScheduleTableAutostartType OsScheduleTableAutostartType] * [#OsScheduleTableStartValue OsScheduleTableStartValue] * [#OsScheduleTableAppModeRef OsScheduleTableAppModeRef] * [#OsScheduleTableExpiryPoint OsScheduleTableExpiryPoint] * [#OsScheduleTblExpPointOffset OsScheduleTblExpPointOffset] * [#OsScheduleTableEventSetting OsScheduleTableEventSetting] * [#OsScheduleTableSetEventRef OsScheduleTableSetEventRef] * [#OsScheduleTableSetEventTaskRef OsScheduleTableSetEventTaskRef] * [#OsScheduleTableTaskActivation OsScheduleTableTaskActivation] * [#OsScheduleTableActivateTaskRef OsScheduleTableActivateTaskRef] * [#OsScheduleTblAdjustableExpPoint OsScheduleTblAdjustableExpPoint] * [#OsScheduleTableMaxLengthen OsScheduleTableMaxLengthen] * [#OsScheduleTableMaxShorten OsScheduleTableMaxShorten] * [#OsScheduleTableSync OsScheduleTableSync] * [#OsScheduleTblExplicitPrecision OsScheduleTblExplicitPrecision] * [#OsScheduleTblSyncStrategy OsScheduleTblSyncStrategy] * [#OsSpinlock OsSpinlock] * [#OsSpinlockAccessingApplication OsSpinlockAccessingApplication] * [#OsSpinlockSuccessor OsSpinlockSuccessor] * [#OsTask OsTask] * [#OsTaskActivation OsTaskActivation] * [#OsTaskPriority OsTaskPriority] * [#OsTaskSchedule OsTaskSchedule] * [#OsTaskAccessingApplication OsTaskAccessingApplication] * [#OsTaskEventRef OsTaskEventRef] * [#OsTaskResourceRef OsTaskResourceRef] * [#OsTaskAutostart OsTaskAutostart] * [#OsTaskAppModeRef OsTaskAppModeRef] * [#OsTaskTimingProtection OsTaskTimingProtection] * [#OsTaskAllInterruptLockBudget OsTaskAllInterruptLockBudget] * [#OsTaskExecutionBudget OsTaskExecutionBudget] * [#OsTaskOsInterruptLockBudget OsTaskOsInterruptLockBudget] * [#OsTaskTimeFrame OsTaskTimeFrame] * [#OsTaskResourceLock OsTaskResourceLock] * [#OsTaskResourceLockBudget OsTaskResourceLockBudget] * [#OsTaskResourceLockResourceRef OsTaskResourceLockResourceRef] * [#OsIoc OsIoc] * [#OsIocCommunication OsIocCommunication] * [#OsIocBufferLength OsIocBufferLength] * [#OsIocDataProperties OsIocDataProperties] * [#OsIocDataPropertyIndex OsIocDataPropertyIndex] * [#OsIocInitValue OsIocInitValue] * [#OsIocDataTypeRef OsIocDataTypeRef] * [#OsIocReceiverProperties OsIocReceiverProperties] * [#OsIocFunctionImplementationKind OsIocFunctionImplementationKind] * [#OsIocReceiverPullCB OsIocReceiverPullCB] * [#OsIocReceivingOsApplicationRef OsIocReceivingOsApplicationRef] * [#OsIocSenderProperties OsIocSenderProperties] * [#OsIocFunctionImplementationKind OsIocFunctionImplementationKind] * [#OsIocSenderId OsIocSenderId] * [#OsIocSendingOsApplicationRef OsIocSendingOsApplicationRef] * エラーコード一覧 * "--"は実装依存と規定されている ||= エラーコード =||= 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) }}} * OSを起動する * [wiki:spec_ECUStateManager ECU State Manager]から呼び出される == 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_[_]( IN) }}} * IocIdに対して単一のデータを送信する(キューあり) == IocWrite == {{{ Std_ReturnType IocWrite_[_]( IN) }}} * IocIdに対して単一のデータを送信する(キューなし) == IocSendGroup == {{{ Std_ReturnType IocSendGroup_( IN1, IN2, ...) }}} * IocIdに対して複数のデータを送信する(キューあり) == IocWriteGroup == {{{ Std_ReturnType IocWriteGroup_( IN1, IN2, ...) }}} * IocIdに対して複数のデータを送信する(キューなし) == IocReceive == {{{ Std_ReturnType IocReceive_( OUT) }}} * IocIdから単一のデータを受信する(キューあり) == IocRead == {{{ Std_ReturnType IocRead_( OUT) }}} * IocIdから単一のデータを受信する(キューなし) == IocReceiveGroup == {{{ Std_ReturnType IocReceiveGroup_( OUT1, OUT2, ...) }}} * IocIdから複数のデータを受信する(キューあり) == IocReadGroup == {{{ Std_ReturnType IocReadGroup_( OUT1, OUT2, ...) }}} * IocIdから複数のデータを受信する(キューなし) == IocEmptyQueue == {{{ Std_ReturnType IocEmptyQueue_(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