AUTOSAR OS
Real-time operating system managing priority-based preemptive task scheduling, events, alarms, and schedule tables (OSEK/VDX derivative).
Funktionen — Übersicht
ApplicationType GetApplication (void);This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller...ApplicationType GetCurrentApplication (void);This service determines the OS - Application where the caller of the service is currently executing.ISRType GetISRID (void);This service returns the identifier of the currently executing ISR.StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);A (trusted or non - trusted) OS - Application uses this service to call a trusted functionAccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is...AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region...ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter,...ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongsStatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);This service cancels the processing of a schedule table immediately at any point while the schedule table is running.StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);This service switches the processing from one schedule table to another schedule table.StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);This service starts an explicitly synchronized schedule table synchronously.StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);Service SyncScheduleTable.StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);This service stops synchronization of a schedule table.StatusType GetScheduleTable GetScheduleTableStatusof (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus); ⚠️This service queries the state of a schedule table (also with respect to synchronization).StatusType IncrementCounter (CounterType CounterID);This service increments a software counter.StatusType GetCounterValue (CounterType CounterID, TickRefType Value);This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by...StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);This service gets the number of ticks between the current tick value and a previously read tick value.StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);Service TerminateApplication.StatusType AllowAccess (void);This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);This service returns the current state of an OS - Application.uint32 GetNumberOfActivated GetNumberActivatedCores (void); ⚠️The function returns the number of cores activated by the Start Core function.CoreIdType GetCore (void);The function returns a unique core identifier.void StartCore (CoreIdType CoreID, StatusType* Status);It is not supported to call this function after Start OS().void StartNonAutosar StartNonCore (CoreIdType CoreID, StatusType* Status); ⚠️The function start s the core specified by the parameter Core ID.StatusType GetSpinlock (SpinlockIdType SpinlockId);Get Spinlock tries to occupy a spin - lock variable.StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);Release Spinlock releases a spinlock variable that was occupied before.StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by...void ShutdownAllCores (StatusType Error);After this service the OS on all AUTOSAR cores is shut down.StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.StatusType ReadPeripheral (AreaIdType Area, const uint8* Address, uint8* ReadValue);This service returns the content of a given memory location ().StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);This service returns the content of a given memory location ().StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);This service returns the content of a given memory location ().StatusType WritePeripheral (AreaIdType Area, uint8* Address, uint8 WriteValue);This service writes the to a given memory location ().StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);This service writes the to a given memory location ().StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);This service writes the to a given memory location ().StatusType ModifyPeripheral (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);Service EnableInterruptSource.StatusType DisableInterruptSource (ISRType ISRID);Disables the interrupt source by modifying the interrupt controller registers.StatusType ClearPendingInterrupt (ISRType ISRID);Service ClearPendingInterrupt.void ActivateTaskAsyn (TaskType id);Asynchronous version of the Activate Task() function.void SetEventAsyn (TaskType id, EventMaskType m);Asynchronous version of the Set Event() function.void Ioc (void);This service initializes the data structures of the IOC.void <ReceiverPullCB> (void);This callback function can be configured for the receiver of a communication.ProtectionReturnType ProtectionHook (StatusType Fatalerror);The protection hook is always called if a serious error occurs.
Typen — Übersicht
enum AppModeTypeApp Mode of the core shall be inherited from another core.TotalNumberOfCoresThe total number of coresApplicationTypeThis data type identifies the OS - Application.enum ApplicationStateTypeThis data type identifies the state of an OS - Application.ApplicationStateRefTypeThis data type points to location where a Application State Type can be stored.TrustedFunctionIndexTypeThis data type identifies a trusted function.struct TrustedFunctionParameterRefTypeThis data type points to a structure which holds the arguments for a call to a trusted function.AccessTypeThis type holds information how a specific memory region can be accessed.ObjectAccessTypeThis data type identifies if an OS - Application has access to an object.ObjectTypeThis data type identifies an object.MemoryStartAddressTypeThis data type is a pointer which is able to point to any location in the MCU address space.MemorySizeTypeThis data type holds the size (in bytes) of a memory region.ISRTypeThis data type identifies an interrupt service routine (ISR).ScheduleTableTypeThis data type identifies a schedule table.enum ScheduleTableStatusTypeThis type describes the status of a schedule.ScheduleTableStatusRefTypeThis data type points to a variable of the data type Schedule Table Status Type.enum ProtectionReturnTypeThis data type identifies a value which controls further actions of the OS on return from the protection hook.RestartTypeThis data type defines the use of a Restart Task after terminating an OS - Application.PhysicalTimeTypeThis data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_().CoreIdTypeCore Id Type is a scalar that allows identifying a single core.SpinlockIdTypeSpinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To...TryToGetSpinlockTypeThe Try To Get Spinlock Type indicates if the spinlock has been occupied or not.enum IdleModeTypeThis data type identifies the idle mode behavior.AreaIdTypeArea Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify...TimeInMicrosecondsType-CounterTypeThis data type identifies a counter.typedef TickTypeThis data type represents count values in ticks.enum StatusTypeThis data type represents standard OSEK OS status codes (e.typedef TaskTypeThis data type identifies an AUTOSAR OS task.typedef EventMaskTypeThis data type represents an event mask for extended tasks.typedef AlarmTypeThis data type represents an AUTOSAR OS alarm identifier.
Funktionen & Typen — Detailansicht
функция GetApplication [SWS_Os_00016] 📄 PDF
ApplicationType GetApplicationID (void);
This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller originally belongs to (was configured t o).
функция GetCurrentApplication [SWS_Os_00797] 📄 PDF
ApplicationType GetCurrentApplicationID (void);
This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().
функция GetISRID [SWS_Os_00511] 📄 PDF
ISRType GetISRID (void);
This service returns the identifier of the currently executing ISR.
функция CallTrustedFunction [SWS_Os_00097] 📄 PDF
StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);
A (trusted or non - trusted) OS - Application uses this service to call a trusted function
С помощью системного сервиса CallTrustedFunction (Service ID 0x02) доверенное или недоверенное OS-Application может вызывать на выполнение определённую функцию Trusted Function [SWS_Os_00097]. Интерфейс предоставляется через заголовочный файл Os.h [SWS_Os_00097].
Вызов требует передачи двух входных параметров [SWS_Os_00097]:
FunctionIndex(типTrustedFunctionIndexType): обозначает индекс вызываемой функции [SWS_Os_00097].FunctionParams(типTrustedFunctionParameterRefType): передаёт указатель на параметры целевой функции; если аргументы не требуются, в обязательном порядке должен передаваться указатель NULL [SWS_Os_00097].
Что касается временных характеристик, выполнение зависит от целевой подпрограммы: если вызываемая функция синхронна, сервис также ведёт себя синхронно [SWS_Os_00097]. Функция реализована как реентерабельная, однако во время выполнения может вызывать перепланирование (Rescheduling) операционной системы [SWS_Os_00097].
В качестве возвращаемого значения сервис возвращает значение состояния типа StatusType [SWS_Os_00097]:
E_OK: выполнение прошло успешно и без ошибок [SWS_Os_00097].E_OS_SERVICEID: переданному индексу не сопоставлена действительная функция [SWS_Os_00097].
Это указание по использованию было автоматически сгенерировано на основе AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция CheckISRMemoryAccess [SWS_Os_00512] 📄 PDF
AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);
This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is part of the stack space.
Функция CheckISRMemoryAccess является синхронным и реентерабельным системным сервисом модуля OS ([SWS_Os_00512]). Она служит для проверки прав доступа к памяти указанной ISR для определённой области памяти во время выполнения.
Использование и параметры
Вызов CheckISRMemoryAccess ожидает три входных параметра ([SWS_Os_00512]):
ISRID: ссылка на проверяемую ISR (ISRType).Address: начальный адрес исследуемой области памяти (MemoryStartAddressType).Size: размер области памяти (MemorySizeType).
В качестве возвращаемого значения сервис возвращает тип AccessType. Это возвращаемое значение содержит права доступа (чтение, запись, выполнение) к указанной области и дополнительно сообщает, является ли область памяти частью области стека ([SWS_Os_00512]).
Параллелизм и интеграция
Согласно спецификации, функция имеет Service-ID 0x03 и объявлена как реентерабельная ([SWS_Os_00512]). Она доступна через заголовочный файл Os.h ([SWS_Os_00512]). Конкретные коды ошибок или явные уведомления в DET/DEM в данной выдержке из спецификации не приводятся.
Это указание по использованию было сгенерировано автоматически на основе данных спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция CheckTaskMemoryAccess [SWS_Os_00513] 📄 PDF
AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);
This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region is part of the stack space.
Функция CheckTaskMemoryAccess представляет собой синхронную службу операционной системы, которая предоставляется через заголовок Os.h и имеет ID службы 0x04 [SWS_Os_00513]. Она служит для запроса прав доступа к памяти конкретной задачи для определенного сегмента памяти [SWS_Os_00513].
Параметры и возвращаемые значения
При вызове служба принимает три входных параметра [SWS_Os_00513]:
Task ID(типаTaskType): ссылка на задачу, права доступа которой должны быть проверены.Address(типаMemoryStartAddressType): начальный адрес проверяемой области памяти.Size(типаMemorySizeType): размер проверяемой области памяти.
В качестве возвращаемого значения служба выдает переменную типа AccessType [SWS_Os_00513]. Это возвращаемое значение содержит информацию о том, доступна ли указанная область памяти для задачи с правами записи, чтения или выполнения, и дополнительно указывает, является ли область частью стека [SWS_Os_00513]. Дополнительные коды ошибок или сообщения DET для этой службы не специфицированы.
Параллелизм и взаимодействие
Служба специфицирована как реентерабельная и поэтому может безопасно использоваться в параллельных контекстах выполнения [SWS_Os_00513]. В то время как CheckTaskMemoryAccess запрашивает полномочия для областей памяти во время выполнения, стандарт AUTOSAR в описаниях модулей ARTI определяет интерфейсы и структуры данных, через которые инструменты отладки могут регистрировать и анализировать состояния и атрибуты объектов операционной системы [SWS_Os_00829].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция CheckObjectAccess [SWS_Os_00256] 📄 PDF
ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);
This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter, Alarm or Schedule Table in API calls.
Использование и семантика
Функция CheckObjectAccess ([SWS_Os_00256]) синхронно определяет, имеет ли определенное OS-Application право использовать ID объекта операционной системы в вызовах API. Для идентификации приложения служит входной параметр ApplID типа ApplicationType ([SWS_Os_00256]). Через ObjectType (тип ObjectTypeType) определяется, какой тип объекта должен проверяться; поддерживаются Task, Resource, Counter, Alarm и Schedule Table ([SWS_Os_00256]). Третьим параметром следует сам исследуемый объект через переменный список параметров ... ([SWS_Os_00256]).
В качестве возвращаемого значения функция выдает тип ObjectAccessType: если доступ приложения к объекту разрешен, возвращается ACCESS, в противном случае — NO_ACCESS ([SWS_Os_00256]). Служба объявлена через заголовок Os.h и имеет ID службы 0x05 ([SWS_Os_00256]).
Параллелизм, обработка ошибок и взаимодействие
Служба специфицирована как реентерабельная и поэтому может вызываться в параллельных контекстах выполнения ([SWS_Os_00256]). Специфические коды ошибок, возвращаемые значения для состояний ошибок или сообщения в DET или DEM для этой функции в спецификации не предусмотрены ([SWS_Os_00256]).
Интерпретация: переменный аргумент ... в реализации, вероятно, передает конкретный идентификатор объекта, соответствующий ObjectType. Вопрос Q-5cb52ff94bb07826 (открытый) Проверенные объекты операционной системы также отражаются в отладочной информации ARTI, которая регистрирует и оценивает атрибуты и состояния объектов операционной системы ([SWS_Os_00829]).
Это указание по использованию было сгенерировано автоматически на основе спецификации R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция CheckObjectOwnership [SWS_Os_00017] 📄 PDF
ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);
This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs
Использование
Синхронная системная функция CheckObjectOwnership служит для определения того, к какому OS-Application принадлежит определенный объект операционной системы [SWS_Os_00017]. К объектам, опрашиваемым через эту службу, относятся задачи (Tasks), процедуры обслуживания прерываний (ISR), счетчики, сигналы тревоги (Alarms), а также таблицы расписания (Schedule Tables) [SWS_Os_00017].
Функция доступна через заголовочный файл Os.h и имеет ID службы 0x06 [SWS_Os_00017]. При использовании функция принимает два входных параметра:
ObjectType: обозначает в качестве входного параметра типаObjectTypeTypeтип передаваемого далее объекта операционной системы [SWS_Os_00017]....: передает службе конкретный исследуемый объект [SWS_Os_00017].
В качестве возвращаемого значения функция предоставляет тип данных ApplicationType [SWS_Os_00017]. Он содержит идентификатор того OS-Application, которому назначен проверенный объект [SWS_Os_00017].
Обработка ошибок и характеристики выполнения
Если опрашиваемый объект не существует в системе, служба возвращает значение INVALID_OSAPPLICATION [SWS_Os_00017].
В отношении параллелизма CheckObjectOwnership специфицирована как реентерабельная и работает полностью синхронно [SWS_Os_00017]. Входные и выходные параметры (inout или out), помимо возвращаемого значения, отсутствуют [SWS_Os_00017].
Это указание по использованию основано на спецификации SWS_Os_00017 из AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция StartScheduleTableRel [SWS_Os_00347] 📄 PDF
StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);
This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.
Использование и параметры
Системный сервис StartScheduleTableRel запускает обработку таблицы расписания относительно текущего значения («Now») базового счётчика [SWS_Os_00347]. Вызов выполняется синхронно и доступен через интерфейс Os.h с идентификатором сервиса 0x07 [SWS_Os_00347].
ScheduleTableID(вход,ScheduleTableType): идентификатор запускаемой таблицы расписания [SWS_Os_00347].Offset(входной,TickType): относительное количество тиков счётчика до начала обработки таблицы [SWS_Os_00347].
Возвращаемые значения и обработка ошибок
Функция возвращает код состояния типа StatusType [SWS_Os_00347]:
E_OK: таблица расписания успешно запущена [SWS_Os_00347].E_OS_STATE: указанная таблица расписания уже запущена [SWS_Os_00347].E_OS_ID(только при статусеEXTENDED): указанныйScheduleTableIDнедействителен [SWS_Os_00347].E_OS_VALUE(только при статусеEXTENDED): параметрOffsetравен0или превышает значение(OsCounterMaxAllowedValue - InitialOffset)[SWS_Os_00347].
Параллелизм и ограничения
Функция специфицирована как реентерабельная [SWS_Os_00347]. Выходные или входные/выходные параметры отсутствуют [SWS_Os_00347].
Это указание по использованию основано на спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция StartScheduleTableAbs [SWS_Os_00358] 📄 PDF
StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);
This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.
Синхронная и реентерабельная функция StartScheduleTableAbs служит для запуска таблицы расписания (Schedule Table) при заданном абсолютном значении базового счётчика ([SWS_Os_00358]). Сервис доступен через заголовочный файл Os.h и идентифицируется через Service-ID 0x08 ([SWS_Os_00358]).
При вызове передаются два входных параметра ([SWS_Os_00358]):
ScheduleTableID: идентификатор запускаемой Schedule Table.Start: абсолютное значение тика счётчика, при котором запускается Schedule Table.
В качестве возвращаемого значения функция возвращает статус типа StatusType ([SWS_Os_00358]):
E_OK: операция запуска прошла успешно.E_OS_STATE: указанная Schedule Table уже была запущена ранее.E_OS_ID: переданныйScheduleTableIDнедействителен (возвращается только в статусеEXTENDED).E_OS_VALUE: значениеStartпревышает максимально допустимое значение счётчикаOsCounterMaxAllowedValue(возвращается только в статусеEXTENDED).
Что касается взаимодействия, состояние и динамические атрибуты объектов операционной системы, таких как Schedule Tables, могут считываться и отображаться подключёнными инструментами отладки с помощью описаний модулей ARTI ([SWS_Os_00829]). Интерпретация: контекст вызова, вероятно, охватывает прежде всего уровни задач (Task), поскольку явных ограничений в выдержке из спецификации не указано. Вопрос Q-213de28d0345ccb1 (открытый)
Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция StopScheduleTable [SWS_Os_00006] 📄 PDF
StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);
This service cancels the processing of a schedule table immediately at any point while the schedule table is running.
Синхронная системная функция StopScheduleTable ([SWS_Os_00006]) непосредственно прерывает обработку выполняющейся таблицы расписания в любой произвольный момент обработки. Сервис объявлен в заголовочном файле Os.h и имеет идентификатор сервиса 0x09 ([SWS_Os_00006]). Единственным входным параметром служит ScheduleTableID типа ScheduleTableType, который задаёт останавливаемую таблицу расписания; входные/выходные или чисто выходные параметры отсутствуют ([SWS_Os_00006]).
Синхронный вызов возвращает код состояния типа StatusType ([SWS_Os_00006]):
E_OK: обработка таблицы расписания была остановлена безошибочно ([SWS_Os_00006]).E_OS_NOFUNC: указанная таблица расписания уже находилась в остановленном состоянии ([SWS_Os_00006]).E_OS_ID: переданный идентификаторScheduleTableIDнедействителен. Согласно спецификации это возвращаемое значение формируется только в статусеEXTENDED([SWS_Os_00006]).
Функция определена как реентерабельная ([SWS_Os_00006]). Интерпретация: с учётом декларированной реентерабельности синхронный вызов, вероятно, допустим из нескольких контекстов OS, хотя конкретные ограничения по контекстам в данном фрагменте спецификации отсутствуют. Вопрос Q-9cb147c4bc7dba7e (открытый) Для мониторинга во время выполнения состояние и динамические атрибуты объектов OS, таких как таблицы расписания, могут передаваться подключённым инструментам отладки и анализа через файлы описания ARTI ([SWS_Os_00829]).
Примечание: данное пояснение сгенерировано автоматически на основе спецификации AUTOSAR Classic релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NextScheduleTable [SWS_Os_00191] 📄 PDF
StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);
This service switches the processing from one schedule table to another schedule table.
Функция NextScheduleTable служит для синхронного переключения обработки с выполняющейся таблицы расписания на последующую таблицу [SWS_Os_00191]. Сервис спроектирован как реентерабельный и объявлен через заголовочный файл Os.h [SWS_Os_00191].
Параметры и вызов
В вызов передаются два входных параметра типа ScheduleTableType [SWS_Os_00191]:
ScheduleTableID_From: идентификатор обрабатываемой в данный момент таблицы расписания [SWS_Os_00191].ScheduleTableID_To: идентификатор таблицы расписания, которая предоставляет последующую последовательность точек истечения времени (Expiry Points) [SWS_Os_00191].
Возвращаемые значения и обработка ошибок
Функция возвращает значение состояния типа StatusType [SWS_Os_00191]:
E_OK: запрос на переключение был успешно отправлен [SWS_Os_00191].E_OS_ID: возвращается исключительно при сконфигурированном статусеEXTENDED, если хотя бы один из переданных идентификаторов таблиц недействителен [SWS_Os_00191].E_OS_NOFUNC: исходная таблицаScheduleTableID_Fromне находится в запущенном состоянии [SWS_Os_00191].E_OS_STATE: целевая таблицаScheduleTableID_Toуже активно запущена или уже запланирована в качестве последующей таблицы [SWS_Os_00191].
Взаимодействие и диагностика
Для наблюдения и анализа операционной системы описания модулей ARTI поддерживают соответствующие контейнеры ORTI, с помощью которых инструменты отладки могут, помимо прочего, анализировать и отображать динамические состояния объектов операционной системы [SWS_Os_00829].
Этот текст был сгенерирован автоматически. Все данные основаны исключительно на спецификациях AUTOSAR релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF
StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);
This service starts an explicitly synchronized schedule table synchronously.
Использование
Системный сервис StartScheduleTableSynchron служит для того, чтобы синхронно запустить явно синхронизированную таблицу расписания [SWS_Os_00201]. Функция объявлена в заголовочном файле Os.h и имеет идентификатор сервиса 0x0b [SWS_Os_00201]. В качестве единственного передаваемого параметра функция ожидает входной параметр ScheduleTableID типа ScheduleTableType, который однозначно ссылается на запускаемую таблицу [SWS_Os_00201]. Входные/выходные или чисто выходные параметры отсутствуют [SWS_Os_00201]. Обработка выполняется синхронно и возвращает значение типа StatusType [SWS_Os_00201].
Обработка ошибок
При безошибочном выполнении вызов функции возвращает код состояния E_OK [SWS_Os_00201]. При ошибках специфицированы следующие возвращаемые значения:
E_OS_STATE: указанная таблица расписания уже находится в запущенном состоянии и не может быть запущена синхронно повторно [SWS_Os_00201].E_OS_ID: переданныйScheduleTableIDнедействителен [SWS_Os_00201]. Данная проверка ошибок и выдача ошибки активны исключительно в статусе EXTENDED [SWS_Os_00201].
Параллелизм и ограничения
Функция специфицирована как реентерабельная [SWS_Os_00201]. Поскольку повторный вызов для уже активной таблицы отклоняется с кодом E_OS_STATE, вызывающая сторона должна убедиться, что целевая таблица перед вызовом ещё не выполняется [SWS_Os_00201].
Взаимодействие
Переходы состояний и динамические свойства объектов операционной системы могут отслеживаться для инструментов тестирования и диагностики через файлы описания модулей ARTI и контейнеры ORTI [SWS_Os_00829]. Внешние отладчики используют эти описания для анализа внутреннего состояния объектов OS во время выполнения [SWS_Os_00829].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция SyncScheduleTable [SWS_Os_00199] 📄 PDF
StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);
Service SyncScheduleTable.
Синхронный и реентерабельный сервис операционной системы SyncScheduleTable служит для того, чтобы передать таблице расписания значение счётчика и запустить процесс синхронизации ([SWS_Os_00199]). Функция предоставляется через заголовочный файл Os.h ([SWS_Os_00199]).
Параметры и возвращаемые значения
Функция ожидает два входных параметра ([SWS_Os_00199]):
Schedule Table ID: идентификатор синхронизируемой таблицы расписания типаScheduleTableType([SWS_Os_00199]).Value: текущее значение счётчика синхронизации типаTickType([SWS_Os_00199]).
Возвращаемое значение типа StatusType сигнализирует с помощью E_OK о безошибочном выполнении ([SWS_Os_00199]).
Обработка ошибок и граничные условия
Если таблица в момент вызова находится в состоянии SCHEDULETABLE_STOPPED, возвращается ошибка E_OS_STATE ([SWS_Os_00199]). Если операционная система сконфигурирована в статусе EXTENDED, действуют дополнительные проверки ([SWS_Os_00199]):
E_OS_ID: указанный ID таблицы недействителен или таблица не может быть синхронизирована, посколькуOs Schedule Tbl Sync Strategyне сконфигурирован или установлен вIMPLICIT([SWS_Os_00199]).E_OS_VALUE: переданное значение счётчикаValueнаходится вне допустимого диапазона ([SWS_Os_00199]).
Взаимодействие и диагностика
Состояния и динамические атрибуты объектов операционной системы, таких как таблицы расписания, могут анализироваться подключёнными инструментами отладки и диагностики через описания модулей ARTI и контейнеры ORTI ([SWS_Os_00829]).
Этот текст был сгенерирован ИИ на основе AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция SetScheduletableAsync [SWS_Os_00422] 📄 PDF
StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);
This service stops synchronization of a schedule table.
функция GetScheduleTableStatusof [SWS_Os_00227] 📄 PDF
StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);
This service queries the state of a schedule table (also with respect to synchronization).
функция IncrementCounter [SWS_Os_00399] 📄 PDF
StatusType IncrementCounter (CounterType CounterID);
This service increments a software counter.
Использование
Синхронная функция операционной системы IncrementCounter служит для явного продвижения программного счетчика [SWS_Os_00399]. Она ожидает в качестве входного параметра идентификатор CounterID типа CounterType, не модифицирует другие параметры и доступна через заголовок Os.h [SWS_Os_00399]. Следует учитывать, что вызов может инициировать немедленное перепланирование (Rescheduling) операционной системы [SWS_Os_00399].
Обработка ошибок
Возвращаемое значение типа StatusType предоставляет информацию об успехе операции: в обычном режиме работы E_OK сообщает о безошибочном выполнении [SWS_Os_00399]. При активированной расширенной проверке статуса (статус EXTENDED) служба возвращает E_OS_ID, если был указан недействительный ID счетчика или если указанный счетчик реализован аппаратно и, следовательно, не может быть инкрементирован программно [SWS_Os_00399].
Параллелизм и диагностика
Функция спроектирована как реентерабельная и поэтому может вызываться параллельно [SWS_Os_00399]. Возможное перепланирование, интерпретация: вероятно, наступает тогда, когда продвижение счетчика вызывает зависимые действия, такие как срабатывание сигналов тревоги или активация задач. Вопрос Q-9004b5ced9b96230 (открытый) Для наблюдения за объектами операционной системы, такими как счетчики, а также за их динамическим состоянием описания модулей ARTI помогают подключенным инструментам анализа при мониторинге времени выполнения [SWS_Os_00829].
Это указание по использованию было сгенерировано автоматически и основано на спецификациях релиза AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция GetCounterValue [SWS_Os_00383] 📄 PDF
StatusType GetCounterValue (CounterType CounterID, TickRefType Value);
This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter).
функция GetElapsedValue [SWS_Os_00392] 📄 PDF
StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);
This service gets the number of ticks between the current tick value and a previously read tick value.
функция TerminateApplication [SWS_Os_00258] 📄 PDF
StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);
Service TerminateApplication.
Синхронная и реентерабельная функция TerminateApplication служит для завершения работы OS-Application и доступна через заголовочный файл Os.h [SWS_Os_00258]. Вызов разрешён из контекста задачи (Task), ISR категории 2, а также специфичного для приложения Error-Hook [SWS_Os_00258].
В качестве входных параметров передаются идентификатор целевого приложения (Application) и поведение при перезапуске (Restart Option) [SWS_Os_00258]:
- Если вызывающий компонент сам принадлежит к приложению, указанному в
Application, выполнение приводит к самозавершению [SWS_Os_00258]. - Через
Restart Optionопределяется, должно ли OS-Application быть перезапущено после этого (RESTART) или нет (NO_RESTART) [SWS_Os_00258].
Функция возвращает значение состояния типа StatusType [SWS_Os_00258]:
E_OKсигнализирует о безошибочном завершении [SWS_Os_00258].E_OS_STATEуказывает на то, что текущее состояниеApplicationне разрешает завершение [SWS_Os_00258].- В статусе EXTENDED выполняются дополнительные проверки ошибок:
E_OS_IDпри недействительном ID приложения,E_OS_VALUEпри недопустимом значении параметра дляRestart Option, а такжеE_OS_ACCESS, если у вызывающей стороны отсутствуют полномочия на завершениеApplication[SWS_Os_00258].
Это указание по использованию было сгенерировано автоматически на основе спецификации SWS_Os_00258.
Руководство разработчика реализации в подготовке (сложность I2)
функция AllowAccess [SWS_Os_00501] 📄 PDF
StatusType AllowAccess (void);
This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.
Использование
Синхронная системная служба AllowAccess (ID службы 0x13) служит для перевода состояния собственного OS-Application из APPLICATION_RESTARTING в APPLICATION_ACCESSIBLE ([SWS_Os_00501]). Функция доступна через заголовочный файл Os.h, не ожидает входных параметров и возвращает значение статуса типа StatusType ([SWS_Os_00501]). При успешном выполнении изменения состояния вызов возвращает значение E_OK ([SWS_Os_00501]).
Обработка ошибок и параллелизм
Если вызывающее OS-Application не находится в состоянии APPLICATION_RESTARTING, выполнение завершается сбоем, и функция возвращает значение ошибки E_OS_STATE ([SWS_Os_00501]). Специфические сообщения DET или DEM в спецификации для этой службы не определены. В отношении поведения при параллелизме функция классифицирована как реентерабельная и поэтому может безопасно выполняться в параллельных процессах ([SWS_Os_00501]).
Взаимодействие и диагностика
Интерпретация: вызов, вероятно, обычно выполняется в конце фазы перезапуска самого приложения, как только завершены все подготовительные действия и другим приложениям снова разрешено обращаться к ресурсам. Вопрос Q-f43a3f702d5d2428 (открытый) Динамические состояния операционной системы и соответствующих OS-объектов могут в рамках системной диагностики анализироваться и визуализироваться с помощью стандартизированных файлов описания ARTI и соответствующих инструментов отладки ([SWS_Os_00829]).
Этот текст создан ИИ и основан на версии спецификации R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция GetApplicationState [SWS_Os_00499] 📄 PDF
StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);
This service returns the current state of an OS - Application.
функция GetNumberActivatedCores [SWS_Os_00672] 📄 PDF
uint32 GetNumberOfActivatedCores (void);
The function returns the number of cores activated by the Start Core function. This function might be a macro. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
функция GetCore [SWS_Os_00674] 📄 PDF
CoreIdType GetCoreID (void);
The function returns a unique core identifier.
функция StartCore [SWS_Os_00676] 📄 PDF
void StartCore (CoreIdType CoreID, StatusType* Status);
It is not supported to call this function after Start OS(). The function starts the core specified by the parameter Core ID. The OUT parameter allows the caller to check whether the operation was successful or no t. If a core is started by means of this function Start OS shall be called on the core.
Синхронная функция StartCore запускает процессорное ядро, указанное через параметр Core ID [SWS_Os_00676]. Функция не имеет прямого возвращаемого значения, а передаёт результат выполнения вызывающей стороне через OUT-параметр Status [SWS_Os_00676]. Если ядро было запущено с помощью этой функции, на соответствующем ядре впоследствии необходимо вызвать Start OS [SWS_Os_00676].
Для контекста вызова и конкурентности действуют строгие ограничения: StartCore специфицирована как нереентерабельная (Non Reentrant) [SWS_Os_00676]. Вызов после запуска операционной системы через Start OS() не поддерживается [SWS_Os_00676]. Сервис реализован синхронно и предоставляется через заголовочный файл Os.h с Service-ID 0x17 [SWS_Os_00676].
Обработка ошибок осуществляется через параметр Status, который в зависимости от конфигурации статуса может принимать следующие значения [SWS_Os_00676]:
- В стандартном статусе
E_OKуказывает на безошибочное выполнение [SWS_Os_00676]. - В расширенном статусе (extended status)
E_OKтакже подтверждает успешный запуск [SWS_Os_00676]. E_OS_IDсообщает, что переданныйCore IDнедействителен [SWS_Os_00676].E_OS_ACCESSсигнализирует о недопустимом вызове после запуска операционной системы [SWS_Os_00676].E_OS_STATEуказывает на то, что запрошенное процессорное ядро уже активировано [SWS_Os_00676].
Это указание по использованию было сгенерировано ИИ и опирается исключительно на спецификацию операционной системы AUTOSAR Classic из релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция StartNonCore [SWS_Os_00682] 📄 PDF
void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);
The function start s the core specified by the parameter Core ID. It is allowed to call this function after Start OS(). The OUT parameter allows the caller to check whether the operation was successful or not. It is not allowed to call Start OS on cores activated by Start No n Autosar Core. Otherwise the behaviour is unspecified.
Использование и контекст вызова
Синхронная и нереентерабельная функция StartNonCore запускает ядро процессора, указанное через параметр CoreID [SWS_Os_00682]. Ее разрешено вызывать после запуска операционной системы через StartOS(), и она доступна через заголовочный файл Os.h [SWS_Os_00682]. Через выходной параметр Status вызывающая сторона может проверить, был ли процесс запуска успешным [SWS_Os_00682].
Обработка ошибок и значения статуса
Функция не имеет прямого возвращаемого значения, однако сообщает результат выполнения через параметр-указатель Status [SWS_Os_00682]:
E_OK: операция была выполнена успешно и безошибочно [SWS_Os_00682].E_OS_ID: указанныйCoreIDнедействителен (в стандартном статусе) [SWS_Os_00682].E_OS_STATE: указанное ядро процессора уже активировано (в стандартном статусе) [SWS_Os_00682].
Ограничения и условия порядка вызова
В качестве нереентерабельного интерфейса StartNonCore не должна выполняться параллельно [SWS_Os_00682]. Кроме того, действует строгое требование о том, что на ядрах процессора, которые были активированы через эту функцию, ни в коем случае нельзя вызывать StartOS; в противном случае поведение системы не определено [SWS_Os_00682].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция GetSpinlock [SWS_Os_00686] 📄 PDF
StatusType GetSpinlock (SpinlockIdType SpinlockId);
Get Spinlock tries to occupy a spin - lock variable. If the function returns, either the lock is successfully taken or an error has occurred. The spinlock mechanism is an active polling mechanism. The function does not cause a de - scheduling.
Синхронная и реентерабельная функция операционной системы GetSpinlock ([SWS_Os_00686]) служит для захвата переменной спинлока через входной параметр SpinlockId (тип SpinlockIdType). При выполнении функция использует механизм активного опроса («busy waiting») без вызова депланирования вызывающей задачи ([SWS_Os_00686]).
Функция возвращает управление только тогда, когда блокировка успешно получена или произошла ошибка. В качестве возвращаемого значения GetSpinlock возвращает StatusType ([SWS_Os_00686]):
E_OK: блокировка успешно захвачена (в стандартном и Extended-статусе).E_OS_ID: переданныйSpinlockIdнедействителен (только в Extended-статусе).E_OS_INTERFERENCE_DEADLOCK: задача пытается захватить спинлок, в то время как он уже захвачен задачей на том же ядре Core (только в Extended-статусе).E_OS_NESTING_DEADLOCK: задача пытается запросить спинлок, в то время как задача того же ядра Core уже удерживает другой спинлок, что может вызвать взаимоблокировку (только в Extended-статусе).E_OS_ACCESS: доступ к указанному спинлоку невозможен (только в Extended-статусе).
В рамках мониторинга системы и анализа ошибок операционная система предоставляет динамическую информацию о состоянии OS-объектов, которая в соответствии с [SWS_Os_00829] может анализироваться инструментами отладки через контейнеры ARTI и ORTI; вероятно, с их помощью можно также отслеживать ситуации блокировок на спинлоках. Вопрос Q-bac194d4132f6e88 (открытый)
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция ReleaseSpinlock [SWS_Os_00695] 📄 PDF
StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);
Release Spinlock releases a spinlock variable that was occupied before. Before terminating a TASK all spinlock variables that have been occupied with Get Spinlock() shall be released. Before calling Wait EVENT all Spinlocks shall be released.
Синхронная и реентерабельная функция ReleaseSpinlock освобождает ранее захваченную переменную спинлока ([SWS_Os_00695]). Экземпляр освобождаемого спинлока указывается через входной параметр SpinlockId типа SpinlockIdType ([SWS_Os_00695]).
Условия последовательности вызовов и ограничения
Для вызова действуют строгие временные и структурные требования ([SWS_Os_00695]):
- Перед завершением задачи все переменные спинлока, ранее захваченные с помощью
GetSpinlock(), должны быть снова освобождены ([SWS_Os_00695]). - Перед вызовом
WaitEventнеобходимо без исключения освободить все удерживаемые спинлоки ([SWS_Os_00695]). - Освобождение должно производиться в правильном порядке вложенности; попытка освобождения при всё ещё захваченных вышестоящих спинлоках или ресурсах завершается ошибкой ([SWS_Os_00695]).
Возвращаемые значения и обработка ошибок
В случае успеха сервис как в стандартном, так и в расширенном статусе возвращает E_OK ([SWS_Os_00695]). В расширенном статусе (Extended Status) определены специальные коды ошибок ([SWS_Os_00695]):
E_OS_ID: переданныйSpinlockIdнедействителен ([SWS_Os_00695]).E_OS_STATE: спинлок не захвачен вызывающей задачей ([SWS_Os_00695]).E_OS_ACCESS: доступ к спинлоку невозможен ([SWS_Os_00695]).E_OS_NOFUNC: попытка освободить спинлок, в то время как сначала должен быть освобождён другой спинлок или ресурс ([SWS_Os_00695]).
Функция доступна через заголовочный файл Os.h ([SWS_Os_00695]). Файлы описания ARTI поддерживают контейнеры ORTI для динамического анализа состояния и производительности объектов операционной системы ([SWS_Os_00829]).
Этот текст был создан ИИ и курирован с помощью autodocs.
Руководство разработчика реализации в подготовке (сложность I2)
функция TryToGetSpinlock [SWS_Os_00703] 📄 PDF
StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);
Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by a TASK on a d ifferent core the function sets the OUT parameter "Success" and returns with E_ OK.
Синхронная и реентерабельная функция операционной системы TryToGetSpinlock служит для неблокирующего захвата экземпляра спинлока через заголовочный файл Os.h [SWS_Os_00703]. Она выполняет ту же базовую функциональность, что и GetSpinlock, однако не ожидает активно, если запрошенный спинлок уже занят задачей TASK на другом ядре Core [SWS_Os_00703].
Параметры и возвращаемые значения
SpinlockId(входной): ссылается на конкретный экземпляр спинлока, который необходимо заблокировать [SWS_Os_00703].Success(выходной): указывает через типTryToGetSpinlockType*, удалось ли захватить блокировку или нет [SWS_Os_00703]. Если блокировка занята на другом ядре Core, функция соответствующим образом устанавливает этот параметр и возвращаетE_OK[SWS_Os_00703].- Возвращаемое значение: возвращает
E_OKв стандартном и Extended-статусе, если ошибки отсутствуют [SWS_Os_00703].
Обработка ошибок и граничные условия
В Extended-статусе операционная система проверяет наличие недопустимых вызовов, а также сценариев взаимоблокировки [SWS_Os_00703]:
E_OS_ID: переданныйSpinlockIdнедействителен [SWS_Os_00703].E_OS_ACCESS: доступ к спинлоку невозможен [SWS_Os_00703].E_OS_INTERFERENCE_DEADLOCK: TASK пытается захватить блокировку, в то время как эта же блокировка уже удерживается TASK на том же ядре Core [SWS_Os_00703].E_OS_NESTING_DEADLOCK: TASK пытается захватить спинлок, в то время как он уже удерживает другой спинлок, что может привести к взаимоблокировке [SWS_Os_00703].
Это указание по использованию было автоматически сгенерировано системой ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция ShutdownAllCores [SWS_Os_00713] 📄 PDF
void ShutdownAllCores (StatusType Error);
After this service the OS on all AUTOSAR cores is shut down. Allowed at TASK level and ISR level and also internally by the OS. The function will never return. The function will force other cores into a shutdown.
Синхронная системная функция ShutdownAllCores с ID службы 0x1c служит для контролируемого и полного останова операционной системы AUTOSAR на всех имеющихся ядрах процессора ([SWS_Os_00713]). Как только служба вызывается, функция принудительно вызывает останов (Shutdown) на всех остальных ядрах, так что операционная система останавливается на всех ядрах AUTOSAR ([SWS_Os_00713]).
Контекст вызова и параллелизм
Функция объявлена в заголовке Os.h и специфицирована как реентерабельная ([SWS_Os_00713]). Вызов ShutdownAllCores безоговорочно разрешен как на уровне задач (TASK level), так и на уровне прерываний (ISR level) ([SWS_Os_00713]). Кроме того, служба может также выполняться внутри операционной системы напрямую через AUTOSAR OS ([SWS_Os_00713]).
Параметры и поток управления
Интерфейс ожидает в качестве единственного входного параметра Error типа StatusType ([SWS_Os_00713]). Для этого параметра обязательно должен передаваться допустимый код ошибки, поддерживаемый операционной системой AUTOSAR ([SWS_Os_00713]). Выходные или входные/выходные параметры отсутствуют ([SWS_Os_00713]). Поскольку функция после инициации общесистемного останова никогда не возвращает управление вызывающей стороне, она не имеет возвращаемого значения (void) ([SWS_Os_00713]).
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция ControlIdle [SWS_Os_00769] 📄 PDF
StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);
This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.g. if no Task/ ISR is active). It can be used to implement energy savings. The real idle modes are hardware dependent and not standardized. The default idle mode on each core is IDLE_ NO_ HALT.
Синхронная функция ControlIdle позволяет вызывающей стороне задать действие, которое выполняется во время простоя операционной системы (когда не активна ни задача, ни ISR) [SWS_Os_00769]. Это служит прежде всего для реализации мер по энергосбережению. Реальные режимы простоя зависят от аппаратного обеспечения и не стандартизированы; стандартным режимом на каждом процессорном ядре является IDLE_NO_HALT [SWS_Os_00769]. Интерфейс предоставляется через заголовочный файл Os.h [SWS_Os_00769].
Функция ожидает два входных параметра:
CoreID(типаCoreIdType): выбирает процессорное ядро, для которого должен быть установлен режим простоя [SWS_Os_00769].IdleMode(типаIdleModeType): определяет режим, который должен выполняться во время простоя [SWS_Os_00769].
Если были переданы допустимые параметры и ошибка не возникла, функция возвращает E_OK [SWS_Os_00769], [SWS_Os_00770]. Если указанный CoreID или IdleMode недействителен — например, поскольку указанное ядро не существует или режим неизвестен, — вызов в статусе EXTENDED возвращает код ошибки E_OS_ID [SWS_Os_00769], [SWS_Os_00771]. В одноядерных системах проверка параметра CoreID опускается [SWS_Os_00771].
Что касается конкурентности, функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Os_00769]. Интерпретация: вызывающие стороны должны поэтому обеспечить, чтобы вызовы ControlIdle не происходили одновременно или нескоординированно из разных контекстов выполнения. Вопрос Q-7f239cb54752e826 (открытый)
Этот совет по использованию был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция ReadPeripheral [SWS_Os_91013] 📄 PDF
StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);
This service returns the content of a given memory location (
).Использование
Функция ReadPeripheral (в объявлении указанная как ReadPeripheral8) служит для синхронного считывания адреса памяти внутри определенной области аппаратной периферии [SWS_Os_91013]. Интерфейс доступен через заголовочный файл Os.h [SWS_Os_91013]. В качестве входных параметров служба ожидает ссылку на область Area типа AreaIdType, а также целевой адрес Address в виде указателя на const uint8 [SWS_Os_91013]. Считанное содержимое ячейки памяти предоставляется через выходной параметр ReadValue [SWS_Os_91013].
Обработка ошибок
Служба возвращает код состояния типа StatusType, причем E_OK указывает на безошибочное выполнение [SWS_Os_91013]. При активированной расширенной проверке состояния (EXTENDED status) некорректные вызовы дифференцируются по специфическим значениям ошибок [SWS_Os_91013]:
E_OS_ID: переданный идентификатор областиAreaнаходится вне допустимого диапазона [SWS_Os_91013].E_OS_VALUE: указанный адрес памятиAddressне принадлежит к указанной области периферии [SWS_Os_91013].E_OS_CALLEVEL: вызов произошел из недопустимого контекста [SWS_Os_91013].E_OS_ACCESS: вызывающая задача или ISR, вероятно, не обладает необходимыми правами для доступа к области (интерпретация) [SWS_Os_91013]. Вопрос Q-19e2c22110352ebb (открытый)
Параллелизм и ограничения
Служба API имеет идентификатор службы 0x28, работает синхронно и спроектирована как реентерабельная [SWS_Os_91013]. Вызовы разрешены только из допустимых контекстов задач или ISR; недопустимые вызовы отклоняются в расширенном статусе с кодом E_OS_CALLEVEL [SWS_Os_91013].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция ReadPeripheral16 [SWS_Os_91015] 📄 PDF
StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);
This service returns the content of a given memory location (
).Синхронная и реентерабельная функция операционной системы ReadPeripheral16 служит для считывания 16-битного значения указанного адреса памяти внутри определенной области периферии [SWS_Os_91015]. Системная служба определена под идентификатором службы 0x29 и доступна через заголовочный файл Os.h [SWS_Os_91015].
Использование и параметры
Службе в качестве входных параметров передаются ссылка на область аппаратной периферии (Area типа AreaIdType), а также целевой адрес в памяти (Address типа const uint16*) [SWS_Os_91015]. Через выходной параметр Read Value типа указателя uint16* предоставляется определенное по адресу памяти 16-битное содержимое [SWS_Os_91015]. При безошибочном выполнении функция возвращает возвращаемое значение E_OK типа StatusType [SWS_Os_91015].
Обработка ошибок и ограничения доступа
В расширенном статусе (EXTENDED status) операционная система проверяет корректность вызова и сообщает об ошибках посредством специфических кодов состояния [SWS_Os_91015]:
E_OS_ID: переданный идентификатор областиAreaнаходится вне допустимого диапазона [SWS_Os_91015].E_OS_VALUE: указанный адрес памятиAddressне принадлежит к специфицированной области периферииArea[SWS_Os_91015].E_OS_CALLEVEL: вызов произошел в контексте, недопустимом для функции API [SWS_Os_91015].E_OS_ACCESS: вызывающая задача или процедура обработки прерываний (ISR) не авторизована для доступа к указанной области [SWS_Os_91015].
Это указание по использованию создано автоматически и базируется исключительно на требованиях спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция ReadPeripheral32 [SWS_Os_91014] 📄 PDF
StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);
This service returns the content of a given memory location (
).Использование
Синхронная и реентерабельная функция ReadPeripheral32 считывает содержимое указанного адреса памяти ([SWS_Os_91014]). Вызывающая сторона передает ссылку на область аппаратной периферии через параметр Area, а требуемый адрес памяти — через Address ([SWS_Os_91014]). Считанное по этому адресу 32-битное значение синхронно предоставляется через выходной параметр ReadValue ([SWS_Os_91014]). Интерфейс предоставляется через заголовочный файл Os.h ([SWS_Os_91014]).
Обработка ошибок
Служба возвращает значение состояния типа StatusType. При безошибочном выполнении она возвращает E_OK ([SWS_Os_91014]). Если сконфигурирован расширенный статус (EXTENDED status), возвращаются следующие коды ошибок ([SWS_Os_91014]):
E_OS_ID: переданный идентификатор областиAreaнаходится вне допустимого диапазона ([SWS_Os_91014]).E_OS_VALUE: указанный адресAddressне принадлежит к указанной областиArea([SWS_Os_91014]).E_OS_CALLEVEL: функция была вызвана в недопустимом контексте вызова ([SWS_Os_91014]).E_OS_ACCESS: вызывающая задача или вызывающая ISR не обладает необходимыми правами доступа; согласно интерпретации, это, вероятно, относится к области периферии ([SWS_Os_91014]). Вопрос Q-e5893b29acc5133a (открытый)
Параллелизм и ограничения
ReadPeripheral32 специфицирована как реентерабельная и может вызываться параллельно из нескольких потоков управления ([SWS_Os_91014]). Поскольку служба работает синхронно, вызов возвращает управление только после завершения операции чтения ([SWS_Os_91014]). Вызывающие стороны должны передавать действительные указатели памяти и обеспечивать выполнение вызова из контекста, допустимого для OS API ([SWS_Os_91014]).
Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция WritePeripheral [SWS_Os_91010] 📄 PDF
StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);
This service writes the
Использование
Функция WritePeripheral (в спецификации также обозначаемая как Write Peripheral8) является синхронной и реентерабельной службой операционной системы для записи значения по указанному адресу памяти области периферии [SWS_Os_91010]. Объявление предоставляется через заголовочный файл Os.h [SWS_Os_91010]. В качестве параметров вызов ожидает ссылку на область аппаратной периферии (Area типа AreaIdType), адрес памяти (Address типа uint8*), а также записываемое значение (Write Value типа uint8) [SWS_Os_91010]. Интерпретация: хотя Write Value в тексте спецификации указан в таблице среди выходных параметров, судя по передаче по значению в сигнатуре и описанию, речь идет о записываемом входном значении. Вопрос Q-619c69ba7a85ed92 (открытый)
Обработка ошибок
Функция возвращает статус типа StatusType [SWS_Os_91010]:
E_OK: операция записи выполнена безошибочно [SWS_Os_91010].E_OS_ID: переданный ID области находится вне допустимого диапазона (в расширенном статусе) [SWS_Os_91010].E_OS_VALUE: целевой адрес не принадлежит к указанной области (в расширенном статусе) [SWS_Os_91010].E_OS_CALLEVEL: недопустимый контекст вызова функции API (в расширенном статусе) [SWS_Os_91010].E_OS_ACCESS: вызывающая задача или ISR не обладает правами доступа к области [SWS_Os_91010].
Параллелизм и ограничения
Вызов обрабатывается синхронно и является реентерабельным [SWS_Os_91010]. Вызывающие стороны должны гарантировать, что исполняющая задача или ISR действует из допустимого контекста и обладает необходимыми правами доступа к адресуемой области периферии [SWS_Os_91010].
Этот текст был сгенерирован автоматически. Все данные основаны на указанных спецификациях AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция WritePeripheral16 [SWS_Os_91012] 📄 PDF
StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);
This service writes the
Синхронная и реентерабельная функция операционной системы WritePeripheral16 ([SWS_Os_91012]) служит для записи 16-битного значения по адресу памяти области периферии. Служба предоставляется через заголовочный файл Os.h и имеет идентификатор службы 0x2c.
Использование и параметры
При вызове WritePeripheral16 вызывающая сторона передает идентификатор целевой аппаратной области (Area типа AreaIdType), целевой адрес (Address типа uint16*), а также записываемое значение (Write Value типа uint16, которое, несмотря на табличное указание в качестве Out-параметра, в сигнатуре, вероятно, служит для передачи по значению) согласно [SWS_Os_91012]. Вопрос Q-2edc50ae2e7fd0b0 (открытый) Служба выполняется синхронно и возвращает значение состояния типа StatusType.
Обработка ошибок
В случае успеха функция возвращает E_OK. Для статуса EXTENDED специфицированы следующие коды ошибок ([SWS_Os_91012]):
E_OS_ID: переданный идентификатор области (Area) находится вне допустимого диапазона.E_OS_VALUE: целевой адрес (Address) не принадлежит к указанной области периферии.E_OS_CALLEVEL: функция была вызвана из недопустимого контекста.E_OS_ACCESS: вызывающая задача или ISR, вероятно, не имеет прав на доступ к указанной области. Вопрос (открытый)
Ограничения и взаимодействие
Функция является реентерабельной ([SWS_Os_91012]), однако требует соблюдения допустимого контекста вызова (задача или ISR) во избежание таких состояний ошибки, как E_OS_CALLEVEL. Для мониторинга и анализа объектов операционной системы AUTOSAR предусматривает предоставление файлов описания ARTI ([SWS_Os_00829]).
Это указание по использованию сгенерировано автоматически и основано исключительно на данных спецификации релиза AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция WritePeripheral32 [SWS_Os_91011] 📄 PDF
StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);
This service writes the
Синхронная и реентерабельная функция WritePeripheral32 из модуля Os служит для записи 32-битного значения по указанному адресу памяти области периферии [SWS_Os_91011]. Служба доступна через заголовочный файл Os.h и имеет идентификатор службы 0x2d [SWS_Os_91011].
Параметры и вызов
Для выполнения операции записи функции требуются три входных параметра [SWS_Os_91011]:
Area(AreaIdType): ссылка на целевую область аппаратной периферии [SWS_Os_91011].Address(uint32*): адрес памяти, по которому должно быть записано значение [SWS_Os_91011].Write Value(uint32): конкретное 32-битное значение, передаваемое по целевому адресу [SWS_Os_91011].
Возвращаемые значения и обработка ошибок
Вызов возвращает значение состояния типа StatusType [SWS_Os_91011]. В случае успеха возвращается E_OK [SWS_Os_91011]. При активном статусе EXTENDED значение E_OS_ID сигнализирует о недопустимом ID области, E_OS_VALUE — об адресе, не принадлежащем области, а E_OS_CALLEVEL — о недопустимом контексте вызова [SWS_Os_91011]. Если вызывающая задача или ISR не имеет прав доступа к области, возвращается E_OS_ACCESS [SWS_Os_91011].
Параллелизм
Поскольку WritePeripheral32 реентерабельна, служба может использоваться в параллельных контекстах исполнения, если соответствующая вызывающая сторона во время выполнения обладает требуемыми правами доступа [SWS_Os_91011].
Это указание по использованию было создано автоматически на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция ModifyPeripheral [SWS_Os_91016] 📄 PDF
StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);
This service modifies a given memory location (
Использование и семантика
Синхронная и реентерабельная функция операционной системы ModifyPeripheral8 ([SWS_Os_91016]) модифицирует байт по указанному адресу памяти Address. При этом существующее содержимое памяти обновляется побитово через маску Clearmask операцией «И», а также через маску Setmask операцией «ИЛИ» согласно формуле *Address = ((*Address & Clearmask) | Setmask) ([SWS_Os_91016]). В качестве входных параметров функция ожидает ссылку на область периферии Area типа AreaIdType, целевой адрес Address (тип uint8*), а также значения обеих масок типа uint8. Функция предоставляется через заголовочный файл Os.h и имеет идентификатор службы 0x2e ([SWS_Os_91016]).
Обработка ошибок и возвращаемые значения
Возвращаемое значение типа StatusType сигнализирует об успехе операции значением E_OK ([SWS_Os_91016]). При активированном статусе Extended могут возникать специфические условия ошибок:
E_OS_ID: переданный идентификатор областиAreaнаходится вне допустимого диапазона ([SWS_Os_91016]).E_OS_VALUE: целевой адресAddressне принадлежит к указанной областиArea([SWS_Os_91016]).E_OS_CALLEVEL: служба была вызвана в недопустимом контексте вызова ([SWS_Os_91016]).E_OS_ACCESS: вызывающая задача или ISR не имеет прав доступа к целевой области ([SWS_Os_91016]).
Параллелизм и условия вызова
Поскольку ModifyPeripheral8 специфицирована как реентерабельная, вызов может безопасно выполняться в параллельных процессах ([SWS_Os_91016]). Вызывающие стороны должны гарантировать, что как контекст, так и права доступа для Area и Address являются действительными, чтобы избежать состояний ошибки ([SWS_Os_91016]).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция ModifyPeripheral16 [SWS_Os_91018] 📄 PDF
StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);
This service modifies a given memory location (
Синхронная и реентерабельная функция ModifyPeripheral16 модифицирует 16-битную ячейку памяти внутри определенной области периферии в соответствии с формулой расчета *Address = ((*Address & Clearmask) | Setmask) [SWS_Os_91018]. В качестве параметров передаются ссылка на область периферии Area (тип AreaIdType), целевой адрес Address (тип uint16*), а также битовые маски Clearmask для побитового «И» и Setmask для побитового «ИЛИ» [SWS_Os_91018]. Объявление доступно через заголовочный файл Os.h [SWS_Os_91018].
В штатном случае успеха служба возвращает возвращаемое значение E_OK [SWS_Os_91018]. При активированной расширенной проверке состояния (EXTENDED status) некорректные вызовы распознаются и отклоняются на основе специфических кодов ошибок [SWS_Os_91018]:
E_OS_ID: переданный идентификатор областиAreaнаходится вне допустимого диапазона значений [SWS_Os_91018].E_OS_VALUE: переданный адрес памятиAddressне принадлежит к указанной областиArea[SWS_Os_91018].E_OS_CALLEVEL: служба была вызвана из недопустимого контекста [SWS_Os_91018].E_OS_ACCESS: вызывающая задача или вызывающая ISR не имеет прав доступа к указанной области [SWS_Os_91018].
Вызывающие стороны должны перед выполнением убедиться, что имеются как соответствующий контекст, так и права доступа к адресуемой области во избежание нарушений прав доступа [SWS_Os_91018].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция ModifyPeripheral32 [SWS_Os_91017] 📄 PDF
StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);
This service modifies a given memory location (
Синхронная и реентерабельная функция операционной системы ModifyPeripheral32 служит согласно [SWS_Os_91017] для адресной побитовой манипуляции 32-битным адресом памяти. Предоставляемая через интерфейс Os.h, функция применяет к целевому адресу Address фиксированную формулу расчета *Address = ((*Address & Clearmask) | Setmask). При этом сначала с помощью битовой маски Clearmask биты сбрасываются побитовой операцией «И», а затем с помощью Setmask устанавливаются побитовой операцией «ИЛИ».
В качестве входных параметров служба ожидает ссылку на область периферии Area, указатель на адрес Address, а также две 32-битные маски [SWS_Os_91017]. При безошибочном выполнении возвращается код состояния E_OK. В расширенном статусе (EXTENDED status) функция выполняет проверки правдоподобия и сообщает о следующих кодах ошибок:
E_OS_ID: переданныйAreaнаходится вне допустимого диапазона значений [SWS_Os_91017].E_OS_VALUE: целевой адрес не принадлежит к указанной области периферии [SWS_Os_91017].E_OS_CALLEVEL: функция была вызвана из недопустимого контекста [SWS_Os_91017].E_OS_ACCESS: вызывающая задача или ISR не имеет прав на доступ [SWS_Os_91017] (интерпретация: отсутствие прав доступа к области периферии). Вопрос Q-b4d959765dc59c72 (открытый)
Параллельные вызовы допустимы благодаря реентерабельности при условии сохранения контекста вызова [SWS_Os_91017]. В общей системе данная прямая модификация регистров отличается от формул расчета для динамического определения данных, которые вычисляются, например, в рамках отладочной информации ARTI согласно [SWS_Os_00829].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция EnableInterruptSource [SWS_Os_91020] 📄 PDF
StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);
Service EnableInterruptSource.
Синхронная и реентерабельная системная функция EnableInterruptSource активирует источник прерываний путём модификации регистров контроллера прерываний [SWS_Os_91020], [SWS_Os_00811]. Операционная система предоставляет этот сервис для каждого сконфигурированного источника прерываний категории 2 [SWS_Os_00808].
Параметры и вызов
Через параметр ISRID передаётся идентификатор ISR категории 2 [SWS_Os_91020]. Логический параметр ClearPending определяет, должен ли флаг ожидающего прерывания быть сброшен при активации (TRUE) или оставаться без изменений (FALSE) [SWS_Os_91020], [SWS_Os_00811]. Функция доступна через заголовочный файл Os.h [SWS_Os_91020].
Обработка ошибок и возвращаемые значения
Если ошибка не обнаружена, вызов возвращает E_OK [SWS_Os_91020], [SWS_Os_00810]. Если операционная система обнаруживает ошибку, она возвращает соответствующий код состояния типа StatusType и вызывает ErrorHook() [SWS_Os_00810]. Определены следующие состояния ошибок:
E_OS_ID: параметрISRIDне является допустимым идентификатором ISR категории 2 (в статусеEXTENDED) [SWS_Os_91020].E_OS_CALLEVEL: функция была вызвана из недопустимого контекста вызова (в статусеEXTENDED) [SWS_Os_91020].E_OS_ACCESS: вызывающее приложение в рамках Service Protection не является владельцем указаннойISRID[SWS_Os_91020].
Взаимодействие
Функция вместе с DisableInterruptSource и ClearPendingInterrupt образует трио API для адресного управления отдельными источниками прерываний категории 2 (OsIsrCategory == CATEGORY_2) в операционной системе [SWS_Os_00808], [SWS_Os_00810].
Этот текст был автоматически сгенерирован на основе спецификаций релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция DisableInterruptSource [SWS_Os_91019] 📄 PDF
StatusType DisableInterruptSource (ISRType ISRID);
Disables the interrupt source by modifying the interrupt controller registers.
Использование
Синхронная и реентерабельная функция DisableInterruptSource отключает определённый источник прерывания напрямую через регистры контроллера прерываний [SWS_Os_91019], [SWS_Os_00812]. Она доступна через заголовочный файл Os.h и предоставляется для каждого источника прерывания категории 2 (OsIsrCategory == CATEGORY_2) [SWS_Os_91019], [SWS_Os_00808]. В качестве параметра передаётся идентификатор соответствующей ISR (ISRID). При успешном выполнении сервис возвращает E_OK [SWS_Os_91019], [SWS_Os_00810].
Обработка ошибок
Если операционная система во время выполнения обнаруживает ошибку, возвращается соответствующий StatusType и вызывается ErrorHook() [SWS_Os_00810]. Возможные коды ошибок:
E_OS_ID: переданныйISRIDне является допустимым идентификатором ISR категории 2 (в статусе EXTENDED) [SWS_Os_91019].E_OS_CALLEVEL: недопустимый контекст вызова функции API (в статусе EXTENDED) [SWS_Os_91019].E_OS_ACCESS: вызывающая OS-Application не является владельцем указанной ISR (Service Protection) [SWS_Os_91019].E_OS_NOFUNC: запрошенный источник прерывания уже отключён (в статусе EXTENDED при вложенных вызовах) [SWS_Os_00809].
Взаимодействие и граничные условия
Функция образует совместно с EnableInterruptSource и ClearPendingInterrupt трио API для управления источниками прерываний категории 2 [SWS_Os_00808]. Конкурентные или повторные вызовы страхуются в расширенном статусе возвратом E_OS_NOFUNC, благодаря чему избыточные отключения остаются контролируемыми [SWS_Os_00809]. Вызывающие стороны также должны обладать соответствующими правами доступа, чтобы предотвратить ошибки времени выполнения из-за Service Protection [SWS_Os_91019].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция ClearPendingInterrupt [SWS_Os_91021] 📄 PDF
StatusType ClearPendingInterrupt (ISRType ISRID);
Service ClearPendingInterrupt.
Использование и контекст вызова
Функция ClearPendingInterrupt служит для сброса ожидающего прерывания для источников категории 2 [SWS_Os_00808]. В качестве единственного входного параметра она принимает идентификатор ISRID ISR категории 2 и напрямую модифицирует соответствующие регистры контроллера прерываний [SWS_Os_91021], [SWS_Os_00813]. Вызов обрабатывается синхронно и доступен через заголовочный файл Os.h [SWS_Os_91021].
Обработка ошибок и возвращаемые значения
В случае безошибочного выполнения возвращается код состояния E_OK [SWS_Os_91021]. Если операционная система во время выполнения обнаруживает ошибку, сервис возвращает соответствующий код ошибки типа StatusType и в обязательном порядке вызывает ErrorHook() [SWS_Os_00810]. Для интерфейса специфицированы следующие состояния ошибок [SWS_Os_91021]:
E_OS_ID: переданный параметрISRIDне является допустимым идентификатором ISR категории 2 (возвращается в состоянииEXTENDED) [SWS_Os_91021].E_OS_CALLEVEL: функция была вызвана из недопустимого контекста вызова (возвращается в состоянииEXTENDED) [SWS_Os_91021].E_OS_ACCESS: вызывающее приложение в рамках Service Protection не авторизовано в качестве владельца переданной ISR [SWS_Os_91021].
Параллелизм и взаимодействие в операционной системе
Интерфейс определен как реентерабельный и, следовательно, может безопасно вызываться параллельно [SWS_Os_91021]. Операционная система предоставляет ClearPendingInterrupt для каждого источника прерываний категории 2 (OsIsrCategory == CATEGORY_2) как неотъемлемую часть управляющих API, к которым также относятся DisableInterruptSource и EnableInterruptSource [SWS_Os_00808].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция ActivateTaskAsyn [SWS_Os_91022] 📄 PDF
void ActivateTaskAsyn (TaskType id);
Asynchronous version of the Activate Task() function. Intended to be used for cross core task activation. Possible errors are not returned to the caller, but may be reported via error hooks.
Функция ActivateTaskAsyn (Service ID 0x33) представляет собой асинхронный вариант активации задач и предоставляется через заголовочный файл Os.h ([SWS_Os_91022]). Она преимущественно предназначена для межъядерной активации задач в многоядерных системах ([SWS_Os_91022]).
В качестве единственного входного параметра передается id типа TaskType, который специфицирует активируемую задачу ([SWS_Os_91022]). Интерфейс не имеет возвращаемого значения (void) и не определяет ни входных/выходных, ни чисто выходных параметров ([SWS_Os_91022]).
Возможные ошибки при активации вызывающей стороне не возвращаются ([SWS_Os_91022], [SWS_Os_00816]). Вместо этого возникающие ошибки сообщаются исключительно через глобальный Error Hook, если таковой сконфигурирован ([SWS_Os_00816]).
С точки зрения параллелизма функция является реентерабельной и работает полностью асинхронно ([SWS_Os_91022]), благодаря чему вызывающий контекст не блокируется в ожидании выполнения. Операционная система обязана предоставлять этот интерфейс согласно [SWS_Os_00816].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция SetEventAsyn [SWS_Os_91023] 📄 PDF
void SetEventAsyn (TaskType id, EventMaskType m);
Asynchronous version of the Set Event() function. Intended to be used for cross core event setting. Possible errors are not returned to the caller, but may be reported via error hooks.
функция Ioc [SWS_Os_91026] 📄 PDF
void IocInit (void);
This service initializes the data structures of the IOC. Tags: atp.Status=draft
Использование и принцип работы
Функция Ioc Init (обозначенная в релизе R20-11 как проектная) инициализирует внутренние структуры данных Inter-OS-Application Communication (IOC) [SWS_Os_91026]. Вызов выполняется синхронно, не принимает входных параметров и не имеет возвращаемого значения [SWS_Os_91026]. Если генератор операционной системы запущен в «IOC mode», он генерирует исключительно код IOC в исходном файле Ioc.c и объявляет соответствующие интерфейсы в заголовочном файле Ioc.h [SWS_Os_00834], через который также предоставляется Ioc Init [SWS_Os_91026].
Обработка ошибок и параллелизм
Для Ioc Init в спецификации не предусмотрены ни специфические возвращаемые значения ошибок, ни сообщения об ошибках в DET или DEM [SWS_Os_91026]. Служба явно определена как нереентерабельная (Non Reentrant) [SWS_Os_91026]. Интерпретация: из-за отсутствия реентерабельности и задачи инициализации служба, вероятно, должна вызываться последовательно во время фазы запуска системы, до выполнения параллельных обращений по каналам связи. Вопрос Q-47f99a4725b57c89 (открытый)
Взаимодействие с коммуникационными функциями IOC
Надлежащая инициализация структур данных образует необходимое условие для использования сгенерированных коммуникационных интерфейсов IOC:
- Отправка и запись: Отправители передают данные асинхронно через службы одиночных значений, такие как
Ioc Send[SWS_Os_00718] иIoc Write[SWS_Os_91003], или групповые функции, такие какIoc Send Group[SWS_Os_00728] иIoc Write Group[SWS_Os_91004]. - Прием и чтение: Получатели запрашивают данные синхронно через
Ioc Receive[SWS_Os_00738],Ioc Read[SWS_Os_91005] или соответствующие групповые службы [SWS_Os_00746] [SWS_Os_91006]. - Управление очередями и уведомление: При сконфигурированной буферизованной коммуникации содержимое внутренней очереди может быть синхронно очищено с помощью
Ioc Empty Queue[SWS_Os_00754]. Кроме того, при приеме данных на целевом ядре может выполняться сконфигурированный callback получателя<Receiver Pull CB>[SWS_Os_00757].
Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция <ReceiverPullCB> [SWS_Os_00757] 📄 PDF
void <ReceiverPullCB> (void);
This callback function can be configured for the receiver of a communication. If configured, IOC calls this callback on the receiving core for each data reception.
Функция обратного вызова <Receiver Pull CB> может быть опционально сконфигурирована для получателя коммуникации и объявляется через заголовочный файл Os.h [SWS_Os_00757]. Если этот колбэк настроен, IOC (Inter-OS-Application Communicator) синхронно вызывает функцию на принимающем ядре Core при каждом приёме данных [SWS_Os_00757]. Конкретный идентификатор функции обратного вызова определяется на стороне получателя через конфигурационный атрибут OsIocReceiverPullCB [SWS_Os_00757].
Для вызова и свойств интерфейса действуют следующие требования:
- Сигнатура и параметры: функция имеет прототип
void <Receiver Pull CB> ( void ); она не принимает параметров (ни входных, ни сквозных, ни выходных) и не возвращает значения [SWS_Os_00757]. - Синхронность и реентерабельность: вызов со стороны IOC выполняется с синхронной семантикой непосредственно на ядре-получателе Core [SWS_Os_00757]. Кроме того, функция обратного вызова специфицирована как реентерабельная [SWS_Os_00757].
- Обработка ошибок: спецификация не предусматривает для этой функции ни возвращаемых значений, ни специальных кодов ошибок или сообщений об ошибках [SWS_Os_00757].
Поскольку сигнатура не передаёт никаких полезных данных, вызов, вероятно, служит главным образом сигналом уведомления, чтобы проинформировать получателя о поступлении новых данных и инициировать последующее извлечение полезных данных. Вопрос Q-2365bb46ad77a476 (открытый) Разработчикам следует учитывать, что выполнение происходит синхронно на ядре-получателе Core [SWS_Os_00757].
Этот текст был создан ИИ и основан на спецификации AUTOSAR CP R20-11.
функция ProtectionHook [SWS_Os_00538] 📄 PDF
ProtectionReturnType ProtectionHook (StatusType Fatalerror);
The protection hook is always called if a serious error occurs. E.g. exceeding the worst case execution time or violating against the memory protection.
Функция ProtectionHook служит центральным колбэком операционной системы и вызывается синхронно всякий раз при возникновении критической ошибки [SWS_Os_00538]. В качестве типичных сценариев ошибок спецификация явно называет превышение времени выполнения в худшем случае (Worst Case Execution Time), а также нарушения защиты памяти [SWS_Os_00538]. Объявление интерфейса предоставляется через заголовочный файл Os_Externals.h [SWS_Os_00538].
В качестве входного параметра подпрограмма принимает Fatalerror типа StatusType, передающий исходную причину вызова хука [SWS_Os_00538]. Дополнительные входные/выходные параметры или чисто выходные параметры в сигнатуре не определены [SWS_Os_00538].
Через возвращаемое значение типа ProtectionReturnType ProtectionHook обязательно определяет, какое действие операционная система должна инициировать после выполнения хука для дальнейшей обработки ошибки [SWS_Os_00538]. В качестве возвращаемых значений доступны следующие действия [SWS_Os_00538]:
PRO_IGNORE[SWS_Os_00538]PRO_TERMINATETASKISR[SWS_Os_00538]PRO_TERMINATEAPPL[SWS_Os_00538]PRO_TERMINATEAPPL_RESTART[SWS_Os_00538]PRO_SHUTDOWN[SWS_Os_00538]
С точки зрения конкурентности и поведения при выполнении ProtectionHook специфицирована как реентерабельная и синхронная [SWS_Os_00538]. Вызов происходит непосредственно при возникновении критической ошибки, после чего операционная система выполняет определённое действие [SWS_Os_00538].
Этот текст был создан ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
тип AppModeType [SWS_Os_91007] 📄 PDF
App Mode of the core shall be inherited from another core.
Перечислимый тип AppModeType определен в заголовочном файле Os.h и служит для задания режима приложения в операционной системе [SWS_Os_91007]. В многоядерных системах этот тип позволяет процессорному ядру наследовать режим приложения от другого Core [SWS_Os_91007].
Для диапазона значений специфицировано значение DONOTCARE [SWS_Os_91007]. Интерпретация: это значение, вероятно, служит для явной конфигурации Core таким образом, чтобы оно не запускало собственный режим, а перенимало поведение вышестоящего Core. Вопрос Q-2b7d9f1c8e5f1a3f (открытый) Специфические коды ошибок или возвращаемые значения для самого типа не определены.
С точки зрения диагностики и состояния системы актуально взаимодействие с инструментами анализа. Согласно [SWS_Os_00829] файл описания модуля ARTI должен поддерживать все контейнеры ORTI, чтобы подключенные средства отладки могли анализировать и отображать информацию об операционной системе и ее объектах. Отладочная информация ARTI предоставляет динамические атрибуты, которые вычисляются с помощью формул [SWS_Os_00829]. Интерпретация: состояние режима приложения, вероятно, отображается и считывается на уровне инструментов через соответствующие атрибуты объектов ARTI. Вопрос Q-410d011cbcf1b158 (открытый)
Это указание по использованию было сгенерировано автоматически на основе требований спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип TotalNumberOfCores [SWS_Os_91002] 📄 PDF
The total number of cores
тип ApplicationType [SWS_Os_00772] 📄 PDF
This data type identifies the OS - Application.
тип ApplicationStateType [SWS_Os_00773] 📄 PDF
This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
Тип данных ApplicationStateType служит в операционной системе Classic AUTOSAR для однозначной идентификации состояния OS-Application [SWS_Os_00773]. Он специфицирован как скалярный базовый тип и предоставляется через заголовочный файл Os.h [SWS_Os_00773].
Допустимый диапазон значений ApplicationStateType охватывает три дискретных состояния для OS-Application [SWS_Os_00773]:
APPLICATION_ACCESSIBLE: указывает на то, что OS-Application готова к работе и к её ресурсам возможен доступ [SWS_Os_00773].APPLICATION_RESTARTING: сигнализирует о том, что OS-Application в настоящее время находится на этапе перезапуска [SWS_Os_00773].APPLICATION_TERMINATED: показывает, что работа OS-Application была завершена и дальнейшие действия не выполняются [SWS_Os_00773].
Что касается использования и взаимодействия с другими компонентами, этот тип, вероятно, служит в качестве возвращаемого значения или выходного параметра в соответствующих системных сервисах OS для мониторинга состояния, чтобы сообщать вызывающим сторонам текущий статус жизненного цикла приложения. Вопрос Q-9a4f2254f4013853 (открытый) Поскольку это элементарное определение типа, стандарт не определяет для него отдельных кодов ошибок, сообщений DET или DEM и не формулирует отдельных ограничений относительно контекста вызова или реентерабельности [SWS_Os_00773].
Этот текст был создан ИИ и основан на данных спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип ApplicationStateRefType [SWS_Os_00774] 📄 PDF
This data type points to location where a Application State Type can be stored.
Тип данных ApplicationStateRefType является составной частью операционной системы (модуль Os) в платформе AUTOSAR Classic и предоставляется через заголовочный файл Os.h [SWS_Os_00774]. Тип производен от указателя (pointer) и ссылается непосредственно на область памяти, в которой может быть сохранен статус приложения OS (Application State) [SWS_Os_00774].
Что касается практического применения, этот тип указателя служит для ссылки на состояния приложений: Интерпретация: в качестве типа указателя ApplicationStateRefType, вероятно, преимущественно используется в качестве ссылочного или выходного параметра в функциях запроса операционной системы, через которые состояние приложения OS передается вызывающей стороне. Вопрос Q-948bb914d3672a38 (открытый) Вызывающие стороны поэтому должны гарантировать, что перед передачей параметра выделена действительная, доступная для записи область памяти для целевого состояния, чтобы избежать некорректных обращений по указателю во время выполнения.
Специфические механизмы обработки ошибок, коды ошибок для DET или DEM, а также отдельные требования к реентерабельности и параллелизму для этого базового типа в спецификации отдельно не выделены [SWS_Os_00774]. Любые ограничения относительно разрешенного контекста вызова или соблюдения обязанностей по синхронизации вытекают исключительно из тех интерфейсов операционной системы, которые используют данный тип в сигнатурах своих функций.
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип TrustedFunctionIndexType [SWS_Os_00775] 📄 PDF
This data type identifies a trusted function.
тип TrustedFunctionParameterRefType [SWS_Os_00776] 📄 PDF
This data type points to a structure which holds the arguments for a call to a trusted function.
тип AccessType [SWS_Os_00777] 📄 PDF
This type holds information how a specific memory region can be accessed.
тип ObjectAccessType [SWS_Os_00778] 📄 PDF
This data type identifies if an OS - Application has access to an object.
тип ObjectType [SWS_Os_00779] 📄 PDF
This data type identifies an object.
тип MemoryStartAddressType [SWS_Os_00780] 📄 PDF
This data type is a pointer which is able to point to any location in the MCU address space.
тип MemorySizeType [SWS_Os_00781] 📄 PDF
This data type holds the size (in bytes) of a memory region.
тип ISRType [SWS_Os_00782] 📄 PDF
This data type identifies an interrupt service routine (ISR).
тип ScheduleTableType [SWS_Os_00783] 📄 PDF
This data type identifies a schedule table.
тип ScheduleTableStatusType [SWS_Os_00784] 📄 PDF
This type describes the status of a schedule. The status can be one of the following: o The schedule table is not started (SCHEDULETABLE_ STOPPED) o The schedule table will be started after the end of currently running schedule table (sched ule table was used in Next Schedule Table() service) (SCHEDULETABLE_ NEXT) o The schedule table uses explicit synchronization, has been started and is waiting for the global time. (SCHEDULETABLE_ WAITING) o The schedule table is running, but is currently n ot synchronous to a global time source (SCHEDULETABLE_ RUNNING) o The schedule table is running and is synchronous to a global time source (SCHEDULETABLE_ RUNNING_ AND_ SYNCHRONOUS)
Тип ScheduleTableStatusType отображает согласно [SWS_Os_00784] текущий статус выполнения и синхронизации Schedule Table в операционной системе AUTOSAR. Он предоставляется через заголовочный файл Os.h и основан на зависящем от реализации диапазоне значений.
Специфицированы следующие значения статуса:
SCHEDULETABLE_STOPPED: Schedule Table не запущена.SCHEDULETABLE_NEXT: Schedule Table запускается после истечения текущей активной Schedule Table (интерпретация: это происходит после передачи службеNextScheduleTable()). Вопрос Q-8cbcfc83969eea23 (открытый)SCHEDULETABLE_WAITING: таблица расписания (Schedule Table) использует явную синхронизацию, уже запущена и ожидает синхронизации с глобальным временем.SCHEDULETABLE_RUNNING: таблица расписания (Schedule Table) выполняется, однако в данный момент не синхронизирована с глобальным источником времени.SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: таблица расписания (Schedule Table) выполняется и синхронизирована с глобальным источником времени.
Будучи исключительно типом данных состояния, ScheduleTableStatusType не определяет собственных ошибок времени выполнения или сообщений DET/DEM. Во взаимодействии с инструментами анализа данный тип согласно [SWS_Os_00829] служит для оценки и отображения динамических объектов операционной системы с поддержкой ARTI, благодаря чему отклонения состояний и синхронизации в системе могут прозрачно фиксироваться.
Этот текст был создан ИИ и основан на спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF
This data type points to a variable of the data type Schedule Table Status Type.
Использование и определение
Тип данных ScheduleTableStatusRefType в соответствии с [SWS_Os_00785] определен как тип указателя на переменную типа данных Schedule Table Status Type. Данный тип предоставляется через заголовочный файл Os.h и служит в операционной системе AUTOSAR ссылочным типом для состояния таблицы расписания (Schedule Table) [SWS_Os_00785].
Применение и граничные условия
В типичных вызовах операционной системы этот тип указателя, вероятно, выступает в качестве выходного параметра, через который системная функция OS возвращает вызывающей стороне текущее состояние адресуемой Schedule Table. Вопрос Q-53364f3a9953dae3 (открытый) Поскольку спецификация определяет только определение типа, вызывающие компоненты при использовании должны учитывать следующее:
- Выделение памяти: Перед передачей ссылки данного типа вызывающая сторона должна убедиться, что указатель ссылается на допустимую и доступную для записи область памяти, остающуюся действительной на протяжении всего вызова.
- Действительность и нулевой указатель: Передача нулевого указателя (
NULL) в зависимости от конфигурации операционной системы (стандартный или расширенный статус), вероятно, приведет к соответствующим сообщениям об ошибках вызываемых служб OS. Вопрос Q-63d77f8c7857e6c4 (открытый) - Защита памяти: В критически важных для безопасности многоядерных или защищенных по памяти средах OS адресуемая область памяти должна быть доступна для вызывающей задачи или экземпляра OS.
Поскольку [SWS_Os_00785] не определяет дополнительных свойств времени выполнения или специфических кодов ошибок для базового типа, реентерабельность и контекст вызова определяются соответствующими службами OS, использующими этот тип указателя в качестве параметра.
Это указание по использованию создано автоматически и базируется исключительно на данных спецификации из релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип ProtectionReturnType [SWS_Os_00787] 📄 PDF
This data type identifies a value which controls further actions of the OS on return from the protection hook.
тип RestartType [SWS_Os_00788] 📄 PDF
This data type defines the use of a Restart Task after terminating an OS - Application.
тип PhysicalTimeType [SWS_Os_00789] 📄 PDF
This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2
тип CoreIdType [SWS_Os_00790] 📄 PDF
Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID
тип SpinlockIdType [SWS_Os_00791] 📄 PDF
Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.
тип TryToGetSpinlockType [SWS_Os_00792] 📄 PDF
The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.
Использование и диапазон значений
Тип перечисления TryToGetSpinlockType предоставляется через заголовочный файл Os.h и служит индикатором состояния, показывающим, удалось ли вызывающей стороне успешно захватить спинлок [SWS_Os_00792]. Он определяет результат соответствующих операций захвата в операционной системе [SWS_Os_00792].
Диапазон значений включает ровно два специфицированных литерала [SWS_Os_00792]:
TRYTOGETSPINLOCK_SUCCESS: сигнализирует о том, что спинлок удалось успешно захватить [SWS_Os_00792].TRYTOGETSPINLOCK_NOSUCCESS: указывает, что спинлок захватить не удалось [SWS_Os_00792].
Параллелизм и системный контекст
Тип применяется при синхронизации в многоядерных системах. Интерпретация: вызывающая сторона, вероятно, синхронно оценивает возвращаемое значение, чтобы непосредственно определить, разрешено ли войти в защищенную критическую секцию или же при TRYTOGETSPINLOCK_NOSUCCESS необходимо без блокирующего ожидания выбрать альтернативную ветвь программы [SWS_Os_00792]. Вопрос Q-a04e72802dc41325 (открытый) Собственные коды ошибок или сообщения об ошибках через DET или DEM для этого типа не специфицированы [SWS_Os_00792].
Взаимодействие с диагностическими инструментами
В рамках интеграции с инструментами файл описания модуля ARTI поддерживает все контейнеры ORTI для отображения информации об операционной системе, ее состояниях и объектах операционной системы, а также для определения динамических значений [SWS_Os_00829]. Интерпретация: через такие интерфейсы спинлоки и состояния их захвата, вероятно, также могут визуализироваться для инструментов отладки и трассировки [SWS_Os_00829]. Вопрос Q-a488e055eb7d402e (открытый)
Этот текст был сгенерирован ИИ и основан на спецификациях AUTOSAR релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип IdleModeType [SWS_Os_00793] 📄 PDF
This data type identifies the idle mode behavior.
Использование и диапазон значений
Скалярный тип данных IdleModeType предоставляется через заголовочный файл Os.h и служит для спецификации поведения процессорного ядра в режиме холостого хода [SWS_Os_00793]. В определенном диапазоне значений задан режим IDLE_NO_HALT, при выборе которого процессорное ядро во время простоя не выполняет никаких специальных действий [SWS_Os_00793].
Интерпретация: поскольку IdleModeType является производным от скалярного базового типа, он, вероятно, служит в контексте операционной системы конфигурационным значением или параметром вызова для служб управления поведением ядра в режиме холостого хода. Вопрос Q-911a39efb537f1bc (открытый) Интерпретация: наряду со стандартным значением IDLE_NO_HALT конкретные реализации операционной системы или архитектуры микроконтроллеров потенциально могут предусматривать дополнительные режимы останова или энергосбережения, хотя выдержка из спецификации называет лишь отсутствие специфических действий. Вопрос Q-b6688f74cacbab45 (открытый)
Ограничения и обработка ошибок
Для IdleModeType в представленном объеме спецификации не указаны конкретные коды ошибок, сообщения DET или DEM, а также требования к реентерабельности или контекстам вызова [SWS_Os_00793]. Любые функциональные ограничения или предварительные условия вытекают исключительно из вышестоящих интерфейсов операционной системы, обрабатывающих этот тип.
Этот текст был сгенерирован ИИ на основе спецификации SWS_Os_00793.
Руководство разработчика реализации в подготовке (сложность I1)
тип AreaIdType [SWS_Os_91000] 📄 PDF
Area Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify Peripheral X AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
тип TimeInMicrosecondsType [SWS_Os_00794] 📄 PDF
-
тип CounterType [SWS_Os_00786] 📄 PDF
This data type identifies a counter.
тип TickType [SWS_Os_00001] 📄 PDF
typedef uint32 TickType;
This data type represents count values in ticks.
тип StatusType [SWS_Os_00002] 📄 PDF
typedef uint8 StatusType;
This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).
Руководство разработчика реализации в подготовке (сложность I2)
тип TaskType [SWS_Os_00003] 📄 PDF
typedef uint8 TaskType;
This data type identifies an AUTOSAR OS task.
тип EventMaskType [SWS_Os_00004] 📄 PDF
typedef uint32 EventMaskType;
This data type represents an event mask for extended tasks.
тип AlarmType [SWS_Os_00005] 📄 PDF
typedef uint8 AlarmType;
This data type represents an AUTOSAR OS alarm identifier.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Os- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Os@rel:R20-11#90d84b7e- Content hash
90d84b7e- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_OS.pdf#nameddest=SWS_Os_00016
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал