DEENESPTFRRUARHIKOZHNL

AUTOSAR OS

ModulOs (AUTOSAR OS)
BSW-Modul-ID1
Standard-Header#include "Os.h"
SWS-SpezifikationAUTOSAR_SWS_OS.pdf
ClusterOperating System

Guía del móduloGENERADO POR IA

Controla los procesos temporizados, protege las OS-Applications entre sí y coordina los núcleos de una ECU.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 5b459e21507a Procedencia
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Controla los procesos temporizados, protege las OS-Applications entre sí y coordina los núcleos de una ECU.

El sistema operativo ejecuta tareas (Tasks) e ISR, acciona contadores (Counters) y ScheduleTables y divide el software en OS-Applications protegidas. El EcuM inicia los núcleos con StartCore; después se llama a StartOS en cada núcleo [SWS_Os_00676]. Las ScheduleTables se pueden sincronizar explícitamente con una hora global a través del StbM. El acceso a objetos externos solo es posible con los permisos configurados SWS OS p. 62. En caso de violaciones de protección, el ProtectionHook decide si se finaliza una tarea, una OS-Application o el sistema completo.

El sistema operativo es el núcleo de ejecución de la pila Classic. Gestiona tareas (Tasks), ISR, alarmas, contadores (Counters) y ScheduleTables, agrupándolos en OS-Applications, que pueden ser trusted o non-trusted SWS OS p. 61. El EcuM inicia los núcleos con StartCore y, a continuación, el OS con StartOS; cada núcleo iniciado llama a StartOS por sí mismo SWS EcuM p. 82, [SWS_Os_00676]. ShutdownAllCores detiene el OS en todos los núcleos y no regresa [SWS_Os_00713]. Los componentes de software utilizan los servicios del OS a través de la RTE, y los servicios que pueden utilizar los módulos BSW están limitados SWS BSWGeneral p. 48.

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (parte del Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os solo servicios permitidos según SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc Contiene hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os excepción ante violación de protección

Diagrama de contexto: EcuM, StbM, RTE y los módulos BSW acceden al Os a través de grupos de servicios independientes; el IOC forma parte del Os. Fuentes: SWS EcuM p. 34, SWS OS p. 119

Los contadores (Counters) forman la base de tiempo; los valores de hardware se corrigen para que comiencen en cero y aumenten de forma monótona SWS OS p. 39. La aplicación inicia las ScheduleTables de forma absoluta o relativa respecto al contador, y una detención surte efecto de inmediato SWS OS p. 46. En la sincronización explícita, el StbM suministra el valor de la hora global con SyncScheduleTable. A continuación, el OS reajusta los puntos de expiración (Expiry Points) hasta que la desviación se encuentre dentro de la precisión configurada [SWS_Os_00199], SWS OS p. 57.

ScheduleTable start comenzar STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() o la tabla finaliza RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() o |desviación| > Precision

Diagrama de estados: ciclo de vida de una ScheduleTable desde el inicio hasta la detención, pasando por la sincronización. Fuentes: [SWS_Os_00784], SWS OS p. 49

El concepto de protección prohíbe el acceso a objetos de otras OS-Applications, a menos que la configuración lo permita SWS OS p. 62. CallTrustedFunction permite transiciones controladas entre OS-Applications [SWS_Os_00097]. Varios núcleos se coordinan mediante spinlocks con detección de bloqueos mutuos (deadlocks) y a través del IOC [SWS_Os_00686], [SWS_Os_00718].

En caso de errores graves, el valor de retorno del ProtectionHook decide lo que sucederá a continuación [SWS_Os_00538]:

  • Ignorar el error,
  • Finalizar la tarea o ISR,
  • Finalizar la OS-Application, con o sin reinicio,
  • Apagar el sistema.

Una OS-Application reiniciada se vuelve a habilitar a sí misma con AllowAccess [SWS_Os_00501].

Función del sistema operativo y sus elementos vecinos en la ECU

El sistema operativo es el núcleo de ejecución de la pila Classic. Gestiona tareas (Tasks), ISR, alarmas, contadores (Counters) y ScheduleTables. Agrupa estos objetos, junto con Hooks y Trusted Functions, en OS-Applications configurables que pueden ser trusted o non-trusted SWS OS p. 61. Además, inicializa y configura todos los temporizadores que utiliza por sí mismo y que no están gestionados por el controlador GPT SWS OS p. 39.

Los módulos contiguos acceden a través de interfaces delimitadas:

  • El EcuM controla el arranque y la parada mediante StartOS, StartCore, GetCoreID y ShutdownAllCores SWS EcuM p. 34.
  • El StbM utiliza GetCounterValue, GetElapsedValue, GetScheduleTableStatus y SyncScheduleTable SWS StbM p. 152.
  • Los componentes de software acceden a los servicios del OS mediante un puerto de la RTE con la interfaz de servicio OsService TR VFB p. 89. Para los contadores con OsSecondsPerTick configurado, esta interfaz ofrece, entre otros, GetCounterValue y GetElapsedValue [SWS_Os_00560].

En el caso de los módulos BSW, una tabla especifica qué servicios del OS tienen permitido utilizar en absoluto SWS BSWGeneral p. 48. La comunicación entre OS-Applications la asume el IOC. Forma parte del sistema operativo y es invocado por la RTE SWS OS p. 119, [SWS_Os_00718].

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (parte del Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os solo servicios permitidos según SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc Contiene hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os excepción ante violación de protección

Diagrama de contexto: el Os es utilizado por EcuM, StbM, RTE y módulos BSW a través de sus respectivos grupos de servicios y encapsula el IOC, así como los accesos al hardware. Fuentes: SWS EcuM p. 34, SWS StbM p. 152, TR VFB p. 89, SWS OS p. 119

Arranque, gestión de núcleos y parada

En el funcionamiento multinúcleo, el EcuM inicia en un bucle todos los núcleos configurados en el núcleo maestro con StartCore. Después llama a StartOS(ECUM_DEFAULT_APP_MODE) SWS EcuM p. 82. En cada núcleo iniciado también debe llamarse a StartOS [SWS_Os_00676]. De esto se encarga el EcuM del núcleo esclavo respectivo tras GetCoreID SWS EcuM p. 83.

Para StartCore se aplican las siguientes reglas SWS OS p. 166:

  • El servicio no es reentrante.
  • Una llamada posterior a StartOS devuelve E_OS_ACCESS y el núcleo no se inicia.
  • Un núcleo ya iniciado da como resultado E_OS_STATE.

Para núcleos fuera del control del AUTOSAR OS existe StartNonAutosarCore [SWS_Os_00682].

Los núcleos se identifican mediante CoreIdType. Los ID lógicos están basados en cero y son correlativos, y OS_CORE_ID_MASTER designa el núcleo maestro [SWS_Os_00790], [SWS_Os_00825]. GetCoreID devuelve el ID lógico del núcleo invocador [SWS_Os_00674]. El servicio ya se puede invocar antes de StartOS SWS OS p. 111.

Tras StartOS y antes del primer StartupHook, el OS establece todas las OS-Applications en APPLICATION_ACCESSIBLE SWS OS p. 62. A continuación se ejecuta el StartupHook para todo el sistema. Solo entonces se ejecutan los StartupHook_<App> específicos de la aplicación, cada uno con los permisos de su OS-Application SWS OS p. 134, [SWS_Os_00539].

arranque multincúcleo del OsEcuM (Master-Kern)Os (Master-Kern)Os (Slave-Kern)EcuM (Slave-Kern)GetCoreID()CoreIdTypelooppara todos los cores configuradosStartCore(CoreID, &Status)iniciar core bajo el controldel AUTOSAR OSStatus = E_OKStartOS(ECUM_DEFAULT_APP_MODE)GetCoreID()StartOS(ECUM_DEFAULT_APP_MODE)Tras StartOS: OS-Applications en APPLICATION_ACCESSIBLE,luego StartupHook, después StartupHook_<App>optStartCore tras StartOSStartCore(CoreID, &Status)Status = E_OS_ACCESS,el core no se inicia

Diagrama de secuencia: El núcleo maestro inicia los núcleos restantes antes de su propio StartOS; cada núcleo invoca StartOS por sí mismo, un StartCore posterior es rechazado. Fuentes: SWS EcuM p. 82, SWS EcuM p. 83, SWS OS p. 166, SWS OS p. 188

En R20-11, GetNumberOfActivatedCores devuelve el número de núcleos activados con StartCore [SWS_Os_00672]. Versiones posteriores se refieren en su lugar a «núcleos en los que se ejecuta el AUTOSAR OS» SWS OS p. 196.

Con ControlIdle se selecciona por núcleo la acción para el tiempo de inactividad, por ejemplo para ahorrar energía. El valor predeterminado es IDLE_NO_HALT. Un núcleo o modo desconocido produce E_OS_ID [SWS_Os_00769], [SWS_Os_00771], [SWS_Os_00793].

ShutdownAllCores apaga el OS en todos los núcleos AUTOSAR, fuerza a los demás núcleos al apagado y nunca retorna [SWS_Os_00713]. En este proceso, se ejecutan primero los ShutdownHook_<App>. Luego los núcleos se sincronizan, y solo después sigue el ShutdownHook global SWS OS p. 98, [SWS_Os_00541].

Counter y ScheduleTables como base de tiempo

GetCounterValue devuelve el valor del temporizador para Hardware-Counters y los ticks de software para Software-Counters. El OS corrige los valores de hardware de modo que comiencen en cero y aumenten hasta el módulo SWS OS p. 39, [SWS_Os_00383].

GetElapsedValue devuelve los ticks transcurridos desde un valor leído anteriormente. Si Value es mayor que el valor máximo permitido del contador, se produce E_OS_VALUE SWS OS p. 192, [SWS_Os_00392].

IncrementCounter solo incrementa Software-Counters; para Hardware-Counters devuelve E_OS_ID. Si en este proceso falla una acción de alarma, el OS invoca los Error-Hooks, pero el servicio en sí devuelve E_OK SWS OS p. 190, [SWS_Os_00399].

El inicio y la detención de una ScheduleTable son tarea de la aplicación SWS OS p. 46. El Initial Expiry Point se procesa en el siguiente valor de contador:

En el inicio relativo, un offset de 0 o mayor que OsCounterMaxAllowedValue − InitialOffset genera el error E_OS_VALUE. Una tabla ya iniciada produce E_OS_STATE SWS OS p. 179.

StopScheduleTable cancela de inmediato; una tabla ya detenida produce E_OS_NOFUNC [SWS_Os_00006]. Un reinicio posterior comienza al inicio de la tabla SWS OS p. 46.

NextScheduleTable encadena una tabla sucesora. Ambas tablas deben ser accionadas por el mismo counter; de lo contrario, se produce E_OS_ID [SWS_Os_00191], SWS OS p. 184.

Para una tabla no iniciada, GetScheduleTableStatus notifica SCHEDULETABLE_STOPPED junto con E_OK SWS OS p. 189, [SWS_Os_00784].

ScheduleTable start comenzar STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() o la tabla finaliza RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() o |desviación| > Precision

Diagrama de estados: Ciclo de vida de una ScheduleTable con todos los estados de ScheduleTableStatusType; WAITING y RUNNING se presentan solo en la sincronización explícita, las tablas sincronizadas implícitamente solo conocen STOPPED, NEXT y RUNNING_AND_SYNCHRONOUS. Fuentes: [SWS_Os_00784], SWS OS p. 43, SWS OS p. 49, SWS OS p. 48

Sincronización de ScheduleTables con tiempo global

En la sincronización implícita, el counter impulsor es en sí mismo el contador de sincronización. La tabla solo conoce entonces tres estados SWS OS p. 48. StartScheduleTableRel devuelve para OsScheduleTblSyncStrategy = IMPLICIT el error E_OS_ID SWS OS p. 179. La sincronización explícita, en cambio, ajusta una tabla impulsada localmente a un contador de sincronización externo. Está indicada como medida de seguridad para el acoplamiento a la base de tiempo del StbM Safety Measures p. 66.

Existen dos vías para el inicio SWS OS p. 49, [SWS_Os_00201]:

  • Asíncrona mediante StartScheduleTableAbs o StartScheduleTableRel, referida al counter impulsor.
  • Síncrona mediante StartScheduleTableSynchron. En este caso, el Initial Expiry Point se procesa (Duration − Value) + InitialOffset ticks tras ponerse a disposición el valor de sincronización.

SyncScheduleTable transfiere el valor actual del contador de sincronización. Su módulo se corresponde con la duración de la tabla SWS OS p. 52, [SWS_Os_00199].

A partir de ello, el OS calcula la desviación y ajusta el retardo en cada Expiry Point. Si la desviación se encuentra dentro de OsScheduleTblExplicitPrecision, la tabla se considera «running and synchronous» SWS OS p. 57. SetScheduleTableAsync detiene el seguimiento hasta el siguiente SyncScheduleTable; durante ello, los Expiry Points continúan ejecutándose SWS OS p. 188, [SWS_Os_00422].

sincronización explícita de una ScheduleTable mediante StbMtarea BSW (tarea de OS o llamada periódica)StbMOsStbM_MainFunction()GetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK, ScheduleStatusaltScheduleStatus == WAITING, RUNNING o RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Abweichung berechnen,ajustar retraso hasta el siguiente Expiry PointEn caso contrariokein SyncScheduleTableel flujo se repite con cada llamada a StbM_MainFunction()

Diagrama de secuencia: El StbM consulta cíclicamente el estado de la tabla y proporciona un valor de sincronización solo si la tabla está iniciada. Fuentes: SWS StbM p. 220, SWS StbM p. 117, [SWS_Os_00227], [SWS_Os_00199]

Concepto de protección: OS-Applications, permisos de acceso y Trusted Functions

El OS impide los accesos de una OS-Application a objetos ajenos, a menos que la configuración los permita expresamente SWS OS p. 62. Si faltan los permisos, un servicio devuelve E_OS_ACCESS. Quedan excluidos los servicios de comprobación para acceso a memoria y a objetos, que siempre están permitidos SWS OS p. 73.

En tiempo de ejecución están disponibles las siguientes consultas:

  • GetApplicationID indica la OS-Application para la cual está configurado el invocador [SWS_Os_00016].
  • GetCurrentApplicationID indica la OS-Application en la que el invocador se está ejecutando en ese momento. Ambos valores difieren únicamente dentro de CallTrustedFunction [SWS_Os_00797], [SWS_Os_00798].
  • CheckObjectOwnership devuelve el propietario de un objeto o INVALID_OSAPPLICATION SWS OS p. 178.
  • CheckObjectAccess devuelve ACCESS o NO_ACCESS; ante argumentos no válidos, devuelve siempre NO_ACCESS SWS OS p. 177.

CheckTaskMemoryAccess y CheckISRMemoryAccess devuelven como AccessType los permisos sobre una región de memoria y si pertenece a la pila. Un permiso que no aplique a toda la región se deniega. Un ID no válido no produce ningún permiso SWS OS p. 175, SWS OS p. 174. El resultado se evalúa con macros como OSMEMORY_IS_WRITEABLE SWS OS p. 160.

CallTrustedFunction ejecuta una función con los ajustes de protección de la OS-Application proveedora. Si el índice no está configurado, se produce E_OS_SERVICEID y una invocación del ErrorHook SWS OS p. 85, SWS OS p. 172. En R20-11, el comportamiento síncrono depende de la función invocada, y la llamada puede desencadenar una reprogramación de tareas (rescheduling) [SWS_Os_00097]. También para trusted OS-Applications debe poder limitarse el acceso de escritura [SWS_Os_00795].

llamada a una Trusted Functionaufrufende OS-ApplicationTrusted-Function-StubBetriebssystem (System-Call-Dispatcher)bereitstellende OS-ApplicationDienstaufrufArgumente in Parameterstruktur packenCallTrustedFunction(FunID, FunParPtr)comprobar autorizaciónaltverweigertE_OS_SERVICEIDakzeptiert<trusted function>con ajustes de protección de la OS-Application proveedoraCheckTaskMemoryAccess(...)AccessTypeRetornoE_OKValor de retorno

Diagrama de secuencia: Un stub empaqueta los argumentos; el OS verifica la autorización y solo entonces cambia a la OS-Application proveedora, cuya función a su vez verifica los permisos de memoria. Fuentes: SWS OS p. 185, SWS OS p. 396, [SWS_Os_00097]

Para accesos protegidos a hardware existen ReadPeripheral, WritePeripheral y ModifyPeripheral en 8, 16 y 32 bits. Operan sobre áreas de periféricos del tipo AreaIdType [SWS_Os_91000]. La variante modify calcula *Address = (*Address & Clearmask) | Setmask SWS OS p. 209.

Para cada ISR de categoría 2 existen DisableInterruptSource, EnableInterruptSource y ClearPendingInterrupt [SWS_Os_00808]. ClearPendingInterrupt solo borra el flag de pendiente (pending) en el controlador de interrupciones [SWS_Os_00814].

Diferencia entre las versiones: En R20-11, EnableInterruptSource borra siempre el flag de pendiente [SWS_Os_00811], a pesar de que la firma contiene un parámetro ClearPending. Versiones posteriores describen el borrado como opcional SWS OS p. 177.

Coordinación entre núcleos y particiones

Los spinlocks actúan a través de los límites entre núcleos. GetSpinlock espera de forma activa sin desplanificar al invocador y puede invocarse a nivel de tarea y de ISR de categoría 2 SWS OS p. 115. En el Extended Status reconoce dos casos de interbloqueo (deadlock) [SWS_Os_00686]:

  • E_OS_INTERFERENCE_DEADLOCK: Una tarea en el mismo núcleo ya retiene el bloqueo.
  • E_OS_NESTING_DEADLOCK: El anidamiento con otro spinlock retenido no está permitido.

TryToGetSpinlock retorna cuando una tarea en otro núcleo ocupa el bloqueo. En tal caso, devuelve E_OK con TRYTOGETSPINLOCK_NOSUCCESS [SWS_Os_00703], [SWS_Os_00792]. Antes de finalizar una tarea y antes de WaitEvent, deben liberarse todos los spinlocks en el orden correcto [SWS_Os_00695]. Contra la interferencia ayuda el encapsulamiento con SuspendAllInterrupts o el ajuste OsSpinlockLockMethod SWS OS p. 101.

ActivateTask a través de límites entre núcleos opera de forma síncrona. El manejador de errores se ejecuta en el núcleo invocador SWS OS p. 103. ActivateTaskAsyn y SetEventAsyn, en cambio, no devuelven errores al invocador, sino que solo los notifican al Error-Hook global [SWS_Os_00816], [SWS_Os_00817]. Ambos solo existen en sistemas con OS-Applications [SWS_Os_00818], [SWS_Os_00819]. Si el invocador ya no existe, la notificación se omite SWS OS p. 179.

El IOC genera sus funciones por emisor y receptor:

Si el búfer está lleno, el emisor notifica IOC_E_LIMIT, y el receptor obtiene IOC_E_LOST_DATA en la siguiente lectura SWS OS p. 219. En R20-11, IocInit y la generación por separado de código del OS y del IOC tienen todavía el estado DRAFT [SWS_Os_00835], [SWS_Os_00831], [SWS_Os_00834].

Comportamiento en caso de error

Muchas comprobaciones, por ejemplo de E_OS_ID, se realizan únicamente en el Extended Status. Los argumentos de puntero se comprueban allí para NULL_PTR y se rechazan con E_OS_ILLEGAL_ADDRESS SWS OS p. 38. Otras identificaciones de error como E_OS_PROTECTION_MEMORY y E_OS_STACKFAULT se definen de manera centralizada [SWS_Os_91025]. Si un servicio no devuelve E_OK, el OS invoca el ErrorHook y el ErrorHook_<App> SWS OS p. 186, [SWS_Os_00540].

En caso de errores graves, el OS invoca el ProtectionHook. Su ProtectionReturnType determina la reacción posterior [SWS_Os_00538], [SWS_Os_00787]. Si no se ha configurado ningún ProtectionHook, el OS invoca ShutdownOS EXP ALEH p. 60. Al terminar una OS-Application, el OS detiene todos los objetos asociados SWS OS p. 62:

  • todas las tareas e ISR,
  • sus interrupciones,
  • sus alarmas,
  • sus ScheduleTables.
reacción a una violación de protección a través de ProtectionHooktarea / ISR de categoría 2 de la OS-Application <App>ProzessorBetriebssystemUse Case: Schutzverletzungejecución con violación de protección«Exception»ProtectionHook(Fatalerror)altPRO_TERMINATETASKISRterminación forzada de la tarea / de la ISRPRO_TERMINATEAPPLterminación forzada de la OS-ApplicationPRO_TERMINATEAPPL_RESTARTterminación forzada de la OS-Application,Restart-Task startenPRO_IGNOREninguna otra acciónPRO_SHUTDOWNShutdownOS()

Diagrama de secuencia: El valor de retorno del ProtectionHook selecciona entre ignorar, finalizar la tarea/la ISR, finalizar la OS-Application (con o sin reinicio) y apagar el sistema. Fuentes: SWS OS p. 187, [SWS_Os_00538], [SWS_Os_00787]

Una OS-Application es APPLICATION_ACCESSIBLE, APPLICATION_RESTARTING o APPLICATION_TERMINATED. El estado lo devuelve GetApplicationState [SWS_Os_00773], [SWS_Os_00499]. En R20-11, TerminateApplication acepta RESTART o NO_RESTART [SWS_Os_00258], [SWS_Os_00788]. Versiones posteriores ignoran este parámetro SWS OS p. 194.

En el estado RESTARTING solo se ejecuta la OSRestartTask; otras OS-Applications no tienen acceso. Una OS-Application solo abandona el estado APPLICATION_TERMINATED mediante un reinicio de la ECU EXP ALEH p. 53. La OSRestartTask limpia en caso necesario mediante CallTrustedFunction y luego vuelve a habilitar la OS-Application con AllowAccess EXP ALEH p. 76, [SWS_Os_00501]. El código para el ProtectionHook de toda la ECU y para la tarea de reinicio lo proporciona el integrador EXP ALEH p. 79.

OsApplication start comenzar ACC APPLICATION_ACCESSIBLE start->ACC StartOS (antes del primer StartupHook) RES APPLICATION_RESTARTING ACC->RES PRO_TERMINATEAPPL_RESTART o TerminateApplication(AppID, RESTART) TER APPLICATION_TERMINATED ACC->TER PRO_TERMINATEAPPL o TerminateApplication(AppID, NO_RESTART) RES->ACC AllowAccess() (desde la Restart-Task) RES->TER TerminateApplication(self, NO_RESTART)

Diagrama de estados: StartOS hace accesible cada OS-Application; las reacciones de protección o TerminateApplication conducen a RESTARTING o TERMINATED, solo AllowAccess conduce de regreso. Fuentes: EXP ALEH p. 61, [SWS_Os_00773], [SWS_Os_00501]

Más evidencia detallada

Guía generada por IA sobre la base de los requisitos y pasajes de documentos contenidos en el payload; tienen carácter normativo los requisitos de la versión R20-11, se especifican las discrepancias de versiones posteriores.

AUTOSAR OS

Real-time operating system managing priority-based preemptive task scheduling, events, alarms, and schedule tables (OSEK/VDX derivative).

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función 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).

función 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().

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f4173cc0ef4f Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

A través del servicio de sistema CallTrustedFunction (Service ID 0x02), una OS-Application de confianza o no de confianza puede llamar para su ejecución a una Trusted Function definida [SWS_Os_00097]. La interfaz se proporciona a través de la cabecera Os.h [SWS_Os_00097].

La llamada requiere el paso de dos parámetros de entrada [SWS_Os_00097]:

  • FunctionIndex (tipo TrustedFunctionIndexType): Designa el índice de la función a invocar [SWS_Os_00097].
  • FunctionParams (tipo TrustedFunctionParameterRefType): Pasa un puntero a los parámetros de la función de destino; si no se requieren argumentos, es obligatorio pasar un puntero NULL [SWS_Os_00097].

En cuanto al comportamiento temporal, la ejecución se rige por la rutina de destino: si la función invocada es síncrona, el servicio también se comporta de forma síncrona [SWS_Os_00097]. La función está implementada de forma reentrante, pero puede provocar una reprogramación (rescheduling) del sistema operativo durante la ejecución [SWS_Os_00097].

Como valor de retorno, el servicio suministra un valor de estado de tipo StatusType [SWS_Os_00097]:

  • E_OK: La ejecución fue correcta y sin errores [SWS_Os_00097].
  • E_OS_SERVICEID: No hay ninguna función válida asignada al índice transferido [SWS_Os_00097].

Esta nota de uso se generó automáticamente a partir de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9eaf26d27eff Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función CheckISRMemoryAccess es un servicio del sistema síncrono y reentrante del módulo OS ([SWS_Os_00512]). Sirve para comprobar en tiempo de ejecución los permisos de acceso a la memoria de una ISR especificada para un área de memoria determinada.

Uso y parámetros

La llamada a CheckISRMemoryAccess espera tres parámetros de entrada ([SWS_Os_00512]):

  • ISRID: referencia a la ISR que se va a comprobar (ISRType).
  • Address: dirección inicial del área de memoria que se va a examinar (MemoryStartAddressType).
  • Size: tamaño del área de memoria (MemorySizeType).

Como valor de retorno, el servicio proporciona el tipo AccessType. Este valor de retorno contiene los permisos de acceso (lectura, escritura, ejecución) al área especificada e informa adicionalmente de si el área de memoria forma parte del área de pila ([SWS_Os_00512]).

Concurrencia e integración

Según la especificación, la función posee el ID de servicio 0x03 y está declarada como reentrante ([SWS_Os_00512]). Está disponible a través del encabezado Os.h ([SWS_Os_00512]). En el presente extracto de la especificación no se indican códigos de error específicos ni respuestas explícitas a DET/DEM.

Esta nota de uso se ha generado automáticamente a partir de los datos de especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 91d38acf9e0a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función CheckTaskMemoryAccess constituye un servicio síncrono del sistema operativo proporcionado a través de la cabecera Os.h y posee el ID de servicio 0x04 [SWS_Os_00513]. Sirve para consultar los derechos de acceso a memoria de una tarea específica para un segmento de memoria determinado [SWS_Os_00513].

Parámetros y valores de retorno

Al llamarse, el servicio acepta tres parámetros de entrada [SWS_Os_00513]:

  • Task ID (de tipo TaskType): Referencia a la tarea cuyos derechos de acceso se van a comprobar.
  • Address (de tipo MemoryStartAddressType): La dirección de inicio de la zona de memoria que se va a comprobar.
  • Size (de tipo MemorySizeType): El tamaño de la zona de memoria que se va a comprobar.

Como valor de retorno, el servicio suministra una variable del tipo AccessType [SWS_Os_00513]. Este valor de retorno contiene la información de si la zona de memoria indicada es accesible para la tarea con derechos de escritura, lectura o ejecución, e indica adicionalmente si el área forma parte del espacio de la pila [SWS_Os_00513]. No se especifican códigos de error adicionales ni notificaciones DET para este servicio.

Concurrencia e interacción

El servicio está especificado como reentrante y, por tanto, puede utilizarse de forma segura en contextos de ejecución concurrentes [SWS_Os_00513]. Mientras que CheckTaskMemoryAccess consulta los permisos de zonas de memoria en tiempo de ejecución, el estándar AUTOSAR define en las descripciones de módulos ARTI interfaces y estructuras de datos a través de las cuales las herramientas de depuración pueden registrar y evaluar estados y atributos de objetos del sistema operativo [SWS_Os_00829].

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c7ec73500d6c Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función CheckObjectAccess ([SWS_Os_00256]) determina sincrónicamente si una determinada OS-Application posee la autorización para utilizar el ID de un objeto del sistema operativo en llamadas a la API. Para identificar la aplicación se utiliza el parámetro de entrada ApplID de tipo ApplicationType ([SWS_Os_00256]). Mediante ObjectType (tipo ObjectTypeType) se define qué tipo de objeto se debe comprobar; se admiten Task, Resource, Counter, Alarm y Schedule Table ([SWS_Os_00256]). Como tercer parámetro sigue el propio objeto a examinar a través de la lista de parámetros variables ... ([SWS_Os_00256]).

Como valor de retorno, la función devuelve el tipo ObjectAccessType: si el acceso de la aplicación al objeto está permitido, se devuelve ACCESS; en caso contrario, NO_ACCESS ([SWS_Os_00256]). El servicio está declarado mediante la cabecera Os.h y posee el ID de servicio 0x05 ([SWS_Os_00256]).

Concurrencia, tratamiento de errores e interacción

El servicio está especificado como reentrante y, por tanto, puede llamarse en contextos de ejecución concurrentes ([SWS_Os_00256]). La especificación no contempla para esta función códigos de error específicos, valores de retorno para estados de error ni avisos a DET o DEM ([SWS_Os_00256]).

Interpretación: es de prever que el argumento variable ... pase en la implementación el identificador concreto del objeto correspondiente a ObjectType. Pregunta Q-5cb52ff94bb07826 (abierta) Los objetos del sistema operativo comprobados también se reflejan en la información de depuración de ARTI, que registra y evalúa atributos y estados de objetos del sistema operativo ([SWS_Os_00829]).

Esta nota de uso se ha generado de forma automatizada sobre la base de la especificación R20-11.

Guía del implementador pendiente (complejidad I1)

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 20318a993e09 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona del sistema CheckObjectOwnership sirve para determinar a qué OS-Application pertenece un determinado objeto del sistema operativo [SWS_Os_00017]. Entre los objetos consultables a través de este servicio se incluyen tareas, rutinas de servicio de interrupción (ISRs), contadores, alarmas y tablas de planificación [SWS_Os_00017].

La función está disponible a través del archivo de cabecera Os.h y posee el ID de servicio 0x06 [SWS_Os_00017]. Al utilizarse, la función acepta dos parámetros de entrada:

  • ObjectType: Identifica como parámetro de entrada de tipo ObjectTypeType el tipo del objeto del sistema operativo pasado a continuación [SWS_Os_00017].
  • ...: Pasa el objeto concreto a examinar al servicio [SWS_Os_00017].

Como valor de retorno, la función proporciona el tipo de datos ApplicationType [SWS_Os_00017]. Este contiene el identificador de aquella OS-Application a la que está asignado el objeto comprobado [SWS_Os_00017].

Tratamiento de errores y propiedades de ejecución

Si el objeto consultado no existe en el sistema, el servicio devuelve el valor de retorno INVALID_OSAPPLICATION [SWS_Os_00017].

En cuanto al comportamiento de concurrencia, CheckObjectOwnership está especificada como reentrante y opera de forma completamente síncrona [SWS_Os_00017]. Aparte del valor de retorno, no existen parámetros de entrada y salida (inout u out) [SWS_Os_00017].

Esta nota de uso se basa en la especificación SWS_Os_00017 de AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9cbbffcaa010 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y parámetros

El servicio del sistema StartScheduleTableRel inicia el procesamiento de una tabla de planificación relativo al valor actual del contador («Now») del contador subyacente [SWS_Os_00347]. La llamada se ejecuta de forma síncrona y está disponible a través de la interfaz Os.h con el ID de servicio 0x07 [SWS_Os_00347].

  • ScheduleTableID (entrada, ScheduleTableType): identificador de la tabla de planificación que se va a iniciar [SWS_Os_00347].
  • Offset (entrada, TickType): número relativo de tics de contador en el contador antes de que comience el procesamiento de la tabla [SWS_Os_00347].

Valores de retorno y tratamiento de errores

La función devuelve un código de estado de tipo StatusType [SWS_Os_00347]:

  • E_OK: la tabla de planificación se ha iniciado sin errores [SWS_Os_00347].
  • E_OS_STATE: la tabla de planificación indicada ya se ha iniciado previamente [SWS_Os_00347].
  • E_OS_ID (solo con el estado EXTENDED): la ScheduleTableID indicada no es válida [SWS_Os_00347].
  • E_OS_VALUE (solo con el estado EXTENDED): el parámetro Offset es igual a 0 o supera el valor (OsCounterMaxAllowedValue - InitialOffset) [SWS_Os_00347].

Concurrencia y restricciones

La función está especificada como reentrante [SWS_Os_00347]. No existen parámetros de salida ni de entrada/salida [SWS_Os_00347].

Esta nota de uso se basa en la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8536dbe30f67 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante StartScheduleTableAbs sirve para iniciar una tabla de planificación (Schedule Table) con un valor de contador absoluto predeterminado en el contador subyacente ([SWS_Os_00358]). El servicio está disponible a través del encabezado Os.h y se identifica mediante el ID de servicio 0x08 ([SWS_Os_00358]).

En la llamada se pasan dos parámetros de entrada ([SWS_Os_00358]):

  • ScheduleTableID: identificador de la Schedule Table que se va a iniciar.
  • Start: valor de tic de contador absoluto en el que se inicia la Schedule Table.

Como valor de retorno, la función proporciona el estado de tipo StatusType ([SWS_Os_00358]):

  • E_OK: el proceso de inicio se ha realizado correctamente.
  • E_OS_STATE: la Schedule Table indicada ya se había iniciado previamente.
  • E_OS_ID: el ScheduleTableID transmitido no es válido (solo se devuelve en el estado EXTENDED).
  • E_OS_VALUE: el valor de Start supera el valor de contador máximo permitido OsCounterMaxAllowedValue (solo se devuelve en el estado EXTENDED).

En lo referente a la interacción, el estado y los atributos dinámicos de los objetos del sistema operativo, tales como las Schedule Tables, pueden ser evaluados y mostrados por herramientas de depuración conectadas mediante descripciones de módulos ARTI ([SWS_Os_00829]). Interpretación: es probable que el contexto de llamada comprenda principalmente niveles de tarea, ya que en el extracto de la especificación no se indica ninguna restricción explícita. Pregunta Q-213de28d0345ccb1 (abierta)

Este texto ha sido elaborado por una IA y se basa exclusivamente en las especificaciones del release R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: acbfdebe2422 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función del sistema síncrona StopScheduleTable ([SWS_Os_00006]) cancela el procesamiento de una tabla de planificación en curso de forma inmediata en cualquier momento del procesamiento. El servicio está declarado en la cabecera Os.h y tiene el Service ID 0x09 ([SWS_Os_00006]). Como único parámetro de entrada sirve ScheduleTableID de tipo ScheduleTableType, que especifica la tabla de planificación que se va a detener; no existen parámetros de entrada/salida ni exclusivamente de salida ([SWS_Os_00006]).

La llamada síncrona proporciona como valor de retorno un código de estado de tipo StatusType ([SWS_Os_00006]):

  • E_OK: El procesamiento de la tabla de planificación se detuvo sin errores ([SWS_Os_00006]).
  • E_OS_NOFUNC: La tabla de planificación especificada ya se encontraba en el estado detenido ([SWS_Os_00006]).
  • E_OS_ID: El identificador ScheduleTableID transferido no es válido. Según la especificación, este valor de retorno solo se genera en el estado EXTENDED ([SWS_Os_00006]).

La función está definida como reentrante ([SWS_Os_00006]). Interpretación: En vista de la reentrancia declarada, la llamada síncrona debería ser admisible desde varios contextos de OS, aunque en el presente extracto de la especificación falten restricciones de contexto concretas. Pregunta Q-9cb147c4bc7dba7e (abierta) Para la monitorización en tiempo de ejecución, el estado y los atributos dinámicos de los objetos de OS, como las tablas de planificación, pueden transmitirse a las herramientas de depuración y análisis conectadas a través de archivos de descripción ARTI ([SWS_Os_00829]).

Nota: Esta explicación fue generada automáticamente sobre la base de la especificación de AUTOSAR Classic Release R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: dfc067e72659 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función NextScheduleTable sirve para conmutar de forma síncrona el procesamiento de una tabla de planificación en curso a una tabla sucesora [SWS_Os_00191]. El servicio está diseñado como reentrante y declarado a través de la cabecera Os.h [SWS_Os_00191].

Parámetros y llamada

A la llamada se le pasan dos parámetros de entrada de tipo ScheduleTableType [SWS_Os_00191]:

  • ScheduleTableID_From: Identificador de la tabla de planificación actualmente procesada [SWS_Os_00191].
  • ScheduleTableID_To: Identificador de la tabla de planificación que proporciona la secuencia sucesiva de puntos de expiración (Expiry Points) [SWS_Os_00191].

Valores de retorno y tratamiento de errores

La función devuelve un valor de estado del tipo StatusType [SWS_Os_00191]:

  • E_OK: La orden de cambio se emitió sin errores [SWS_Os_00191].
  • E_OS_ID: Se devuelve exclusivamente con el estado EXTENDED configurado, si al menos uno de los identificadores de tabla transferidos no es válido [SWS_Os_00191].
  • E_OS_NOFUNC: La tabla de origen ScheduleTableID_From no se encuentra en el estado iniciado [SWS_Os_00191].
  • E_OS_STATE: La tabla de destino ScheduleTableID_To ya está iniciada activamente o ya está programada como tabla sucesora [SWS_Os_00191].

Interacción y diagnóstico

Para la observación y el análisis del sistema operativo, las descripciones de módulos ARTI admiten los contenedores ORTI correspondientes, con lo que las herramientas de depuración pueden, entre otras cosas, evaluar y representar estados dinámicos de objetos del sistema operativo [SWS_Os_00829].

Este texto se generó automáticamente. Todos los datos se basan exclusivamente en las especificaciones del release R20-11 de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

This service starts an explicitly synchronized schedule table synchronously.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8edf7224d053 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

El servicio de sistema StartScheduleTableSynchron sirve para iniciar de forma síncrona una tabla de planificación sincronizada explícitamente [SWS_Os_00201]. La función está declarada en el archivo de cabecera Os.h y tiene el Service ID 0x0b [SWS_Os_00201]. Como único parámetro de transferencia, la función espera el parámetro de entrada ScheduleTableID de tipo ScheduleTableType, que referencia de forma unívoca la tabla a iniciar [SWS_Os_00201]. No existen parámetros de entrada-salida ni exclusivamente de salida [SWS_Os_00201]. El procesamiento se lleva a cabo de forma síncrona y devuelve un valor de retorno de tipo StatusType [SWS_Os_00201].

Manejo de errores

En una ejecución sin errores, la llamada a la función devuelve el código de estado E_OK [SWS_Os_00201]. En caso de errores, se especifican los siguientes valores de retorno:

  • E_OS_STATE: La tabla de planificación especificada ya se encuentra en el estado iniciado y no puede iniciarse síncronamente de nuevo [SWS_Os_00201].
  • E_OS_ID: El ScheduleTableID transferido no es válido [SWS_Os_00201]. Esta comprobación de errores y notificación de errores solo está activa en el estado EXTENDED [SWS_Os_00201].

Concurrencia y restricciones

La función está especificada como reentrante [SWS_Os_00201]. Dado que la llamada repetida para una tabla ya activa se rechaza con E_OS_STATE, el llamante debe asegurarse de que la tabla de destino no esté ya en ejecución antes de la llamada [SWS_Os_00201].

Interacción

Las transiciones de estado y las propiedades dinámicas de los objetos del sistema operativo pueden rastrearse para herramientas de prueba y diagnóstico a través de archivos de descripción de módulos ARTI y contenedores ORTI [SWS_Os_00829]. Los depuradores externos utilizan estas descripciones para evaluar el estado interno de los objetos de OS durante el tiempo de ejecución [SWS_Os_00829].

Este texto ha sido generado por una IA basándose en la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función SyncScheduleTable [SWS_Os_00199] 📄 PDF

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service SyncScheduleTable.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 50f85b0fc4ce Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El servicio síncrono y reentrante del sistema operativo SyncScheduleTable sirve para transferir un valor de contador a una tabla de planificación e iniciar el proceso de sincronización ([SWS_Os_00199]). La función se proporciona a través del archivo de cabecera Os.h ([SWS_Os_00199]).

Parámetros y valores de retorno

La función espera dos parámetros de entrada ([SWS_Os_00199]):

  • Schedule Table ID: Identificador de la tabla de planificación que se va a sincronizar, de tipo ScheduleTableType ([SWS_Os_00199]).
  • Value: Valor de contador actual del contador de sincronización, de tipo TickType ([SWS_Os_00199]).

El valor de retorno de tipo StatusType señaliza con E_OK la ejecución sin errores ([SWS_Os_00199]).

Tratamiento de errores y condiciones límite

Si la tabla se encuentra en el estado SCHEDULETABLE_STOPPED en el momento de la llamada, se devuelve el error E_OS_STATE ([SWS_Os_00199]). Si el sistema operativo está configurado en el estado EXTENDED, entran en juego comprobaciones adicionales ([SWS_Os_00199]):

  • E_OS_ID: El ID de tabla especificado no es válido o la tabla no puede sincronizarse porque Os Schedule Tbl Sync Strategy no está configurado o está establecido en IMPLICIT ([SWS_Os_00199]).
  • E_OS_VALUE: El valor de contador Value transferido está fuera del rango permitido ([SWS_Os_00199]).

Interacción y diagnóstico

Los estados y atributos dinámicos de objetos del sistema operativo, como las tablas de planificación, pueden evaluarse mediante herramientas de depuración y diagnóstico conectadas a través de descripciones de módulos ARTI y contenedores ORTI ([SWS_Os_00829]).

Este texto fue generado por una IA basándose en AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función SetScheduletableAsync [SWS_Os_00422] 📄 PDF

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

This service stops synchronization of a schedule table.

función 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).

función IncrementCounter [SWS_Os_00399] 📄 PDF

StatusType IncrementCounter (CounterType CounterID);

This service increments a software counter.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 40e8148ee79f Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona del sistema operativo IncrementCounter sirve para avanzar explícitamente un contador de software [SWS_Os_00399]. Espera como parámetro de entrada el identificador CounterID de tipo CounterType, no modifica otros parámetros y está disponible a través de la cabecera Os.h [SWS_Os_00399]. Debe tenerse en cuenta que la llamada puede provocar una replanificación inmediata del sistema operativo [SWS_Os_00399].

Manejo de errores

El valor de retorno de tipo StatusType informa sobre el éxito de la operación: en funcionamiento regular, E_OK notifica la ejecución sin errores [SWS_Os_00399]. Con la comprobación de estado ampliada activada (estado EXTENDED), el servicio devuelve E_OS_ID si se ha indicado un ID de contador no válido o si el contador referenciado está implementado en hardware y, por consiguiente, no puede incrementarse por software [SWS_Os_00399].

Concurrencia y diagnóstico

La función está diseñada para ser reentrante y, por lo tanto, puede llamarse de forma concurrente [SWS_Os_00399]. Cabe interpretar que una posible replanificación se produzca cuando el avance del contador desencadene acciones dependientes, tales como vencimientos de alarmas o activaciones de tareas. Pregunta Q-9004b5ced9b96230 (abierta) Para la observación de objetos del sistema operativo, como contadores, así como de su estado dinámico, las descripciones de módulos ARTI asisten a las herramientas de análisis conectadas en la monitorización durante el tiempo de ejecución [SWS_Os_00829].

Esta nota de uso se ha generado automáticamente y se basa en las especificaciones del release R20-11 de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función 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).

función 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.

función TerminateApplication [SWS_Os_00258] 📄 PDF

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

Service TerminateApplication.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 2ba1bf6d0722 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante TerminateApplication sirve para finalizar una OS-Application y está disponible a través del archivo de cabecera Os.h [SWS_Os_00258]. La llamada está permitida desde el contexto de una tarea, una ISR de categoría 2 y un hook de error específico de la aplicación [SWS_Os_00258].

Como parámetros de entrada se transfieren el identificador de la aplicación de destino (Application) y el comportamiento de reinicio (Restart Option) [SWS_Os_00258]:

  • Si el propio llamador pertenece a la aplicación indicada en Application, la ejecución da lugar a una autoterminación [SWS_Os_00258].
  • Mediante Restart Option se determina si la OS-Application debe reiniciarse a continuación (RESTART) o no (NO_RESTART) [SWS_Os_00258].

La función devuelve un valor de estado de tipo StatusType [SWS_Os_00258]:

  • E_OK indica una terminación sin errores [SWS_Os_00258].
  • E_OS_STATE indica que el estado actual de Application no permite la finalización [SWS_Os_00258].
  • En el estado EXTENDED se realizan comprobaciones de errores adicionales: E_OS_ID en caso de un ID de aplicación no válido, E_OS_VALUE en caso de un valor de parámetro no válido para Restart Option y E_OS_ACCESS si el llamador carece de autorización para finalizar Application [SWS_Os_00258].

Esta nota de uso se ha generado automáticamente a partir de la especificación SWS_Os_00258.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5da6dc1b3684 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

El servicio síncrono del sistema AllowAccess (ID de servicio 0x13) sirve para cambiar el estado de la propia OS-Application de APPLICATION_RESTARTING a APPLICATION_ACCESSIBLE ([SWS_Os_00501]). La función está disponible a través del archivo de cabecera Os.h, no espera parámetros y devuelve un valor de estado de tipo StatusType ([SWS_Os_00501]). Si el cambio de estado se lleva a cabo con éxito, la llamada devuelve el valor de retorno E_OK ([SWS_Os_00501]).

Tratamiento de errores y concurrencia

Si la OS-Application llamadora no se encuentra en el estado APPLICATION_RESTARTING, la ejecución falla y la función devuelve el valor de error E_OS_STATE ([SWS_Os_00501]). En la especificación no se definen notificaciones específicas a DET o DEM para este servicio. En cuanto al comportamiento de concurrencia, la función está clasificada como reentrante y, por consiguiente, puede ejecutarse de forma segura en procesos paralelos ([SWS_Os_00501]).

Interacción y diagnóstico

Interpretación: cabe suponer que la llamada se realiza típicamente al final de una fase de reinicio propia de la aplicación, tan pronto como hayan concluido todos los preparativos y otras aplicaciones puedan volver a acceder a los recursos. Pregunta Q-f43a3f702d5d2428 (abierta) Los estados dinámicos del sistema operativo y de los objetos del OS correspondientes pueden evaluarse y visualizarse en el marco del diagnóstico del sistema mediante archivos de descripción estándar de ARTI y herramientas de depuración asociadas ([SWS_Os_00829]).

Este texto ha sido generado por una IA y se basa en el estado de la especificación R20-11.

Guía del implementador pendiente (complejidad I1)

función 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

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 06b25350e939 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona StartCore inicia el núcleo de procesador especificado a través del parámetro Core ID [SWS_Os_00676]. La función no posee un valor de retorno directo, sino que transfiere el resultado de la ejecución al llamador a través del parámetro OUT Status [SWS_Os_00676]. Si se ha iniciado un núcleo mediante esta función, en el núcleo correspondiente debe llamarse a continuación a Start OS [SWS_Os_00676].

Para el contexto de llamada, así como para la concurrencia, rigen restricciones fijas: StartCore está especificada como no reentrante (Non Reentrant) [SWS_Os_00676]. No se admite una llamada tras el inicio del sistema operativo a través de Start OS() [SWS_Os_00676]. El servicio está implementado de forma síncrona y se proporciona a través del archivo de encabezado Os.h con el ID de servicio 0x17 [SWS_Os_00676].

El tratamiento de errores se realiza mediante el parámetro Status, que, en función de la configuración de estado, puede adoptar los siguientes valores [SWS_Os_00676]:

  • En el estado estándar, E_OK indica una ejecución sin errores [SWS_Os_00676].
  • En el estado ampliado (extended status), E_OK confirma igualmente un inicio correcto [SWS_Os_00676].
  • E_OS_ID notifica que la Core ID pasada no es válida [SWS_Os_00676].
  • E_OS_ACCESS indica una llamada no permitida tras el inicio del sistema operativo [SWS_Os_00676].
  • E_OS_STATE indica que el núcleo de procesador solicitado ya está activado [SWS_Os_00676].

Esta nota de uso ha sido generada por una IA y se basa exclusivamente en la especificación del sistema operativo AUTOSAR Classic del release R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4541cad4d0e6 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función síncrona y no reentrante StartNonCore arranca el núcleo de procesador especificado a través del parámetro CoreID [SWS_Os_00682]. Se permite llamarla tras el inicio del sistema operativo mediante StartOS() y está disponible a través del archivo de cabecera Os.h [SWS_Os_00682]. A través del parámetro de salida Status, el llamador puede comprobar si el proceso de arranque fue exitoso [SWS_Os_00682].

Tratamiento de errores y valores de estado

La función no posee un valor de retorno directo, pero comunica el resultado de la ejecución a través del parámetro de tipo puntero Status [SWS_Os_00682]:

  • E_OK: La operación se ejecutó con éxito y sin errores [SWS_Os_00682].
  • E_OS_ID: La CoreID indicada no es válida (en estado estándar) [SWS_Os_00682].
  • E_OS_STATE: El núcleo de procesador indicado ya está activado (en estado estándar) [SWS_Os_00682].

Restricciones y condiciones de orden

Al ser una interfaz no reentrante, StartNonCore no debe ejecutarse de forma concurrente [SWS_Os_00682]. Además, se aplica la directriz estricta de que en núcleos de procesador activados a través de esta función en ningún caso debe llamarse a StartOS; de lo contrario, el comportamiento del sistema queda sin especificar [SWS_Os_00682].

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación de AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: aaf2a4bc7e29 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante del sistema operativo GetSpinlock ([SWS_Os_00686]) sirve para ocupar una variable de spinlock mediante el parámetro de transferencia SpinlockId (tipo SpinlockIdType). Durante la ejecución, la función utiliza un mecanismo de sondeo activo («busy waiting») sin que se desencadene una desplanificación de la tarea llamadora ([SWS_Os_00686]).

La función solo retorna cuando el bloqueo se ha adquirido correctamente o se ha producido un error. Como valor de retorno, GetSpinlock devuelve el StatusType ([SWS_Os_00686]):

  • E_OK: el bloqueo se ha ocupado sin errores (en el estado estándar y Extended).
  • E_OS_ID: el SpinlockId pasado no es válido (solo en el estado Extended).
  • E_OS_INTERFERENCE_DEADLOCK: una tarea intenta ocupar el spinlock mientras este ya está ocupado por una tarea en el mismo Core (solo en el estado Extended).
  • E_OS_NESTING_DEADLOCK: una tarea intenta solicitar el spinlock mientras una tarea del mismo Core ya retiene otro spinlock, lo que podría provocar un interbloqueo (solo en el estado Extended).
  • E_OS_ACCESS: no se puede acceder al spinlock indicado (solo en el estado Extended).

En el marco de la monitorización del sistema y el análisis de errores, el sistema operativo proporciona información de estado dinámica sobre los objetos del OS que, de conformidad con [SWS_Os_00829], pueden ser evaluados por herramientas de depuración mediante contenedores ARTI y ORTI; presumiblemente, a través de esto también se pueden rastrear situaciones de bloqueo en spinlocks. Pregunta Q-bac194d4132f6e88 (abierta)

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 3c94a21733b1 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante ReleaseSpinlock libera una variable de spinlock previamente ocupada ([SWS_Os_00695]). A través del parámetro de transferencia SpinlockId de tipo SpinlockIdType se especifica la instancia de spinlock que se va a liberar ([SWS_Os_00695]).

Condiciones de secuencia y restricciones

Para la llamada rigen directrices temporales y estructurales estrictas ([SWS_Os_00695]):

  • Antes de finalizar una tarea, deben liberarse de nuevo todas las variables de spinlock previamente ocupadas mediante GetSpinlock() ([SWS_Os_00695]).
  • Antes de la llamada a WaitEvent, deben liberarse sin excepción todos los spinlocks retenidos ([SWS_Os_00695]).
  • La liberación debe realizarse en el orden de anidamiento correcto; un intento de liberación con spinlocks o recursos de nivel superior aún ocupados falla ([SWS_Os_00695]).

Valores de retorno y tratamiento de errores

En caso de éxito, el servicio devuelve E_OK tanto en el estado estándar como en el ampliado ([SWS_Os_00695]). En el estado ampliado (Extended Status) se definen códigos de error específicos ([SWS_Os_00695]):

  • E_OS_ID: El SpinlockId transferido no es válido ([SWS_Os_00695]).
  • E_OS_STATE: el spinlock no está ocupado por la tarea llamadora ([SWS_Os_00695]).
  • E_OS_ACCESS: no se puede acceder al spinlock ([SWS_Os_00695]).
  • E_OS_NOFUNC: intento de liberar el spinlock mientras aún debe liberarse previamente otro spinlock o un recurso ([SWS_Os_00695]).

La función está disponible a través del encabezado Os.h ([SWS_Os_00695]). Los archivos de descripción ARTI admiten contenedores ORTI para la evaluación dinámica del estado y el rendimiento de los objetos del sistema operativo ([SWS_Os_00829]).

Este texto fue creado por una IA y curado por autodocs.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1d98a899f332 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante del sistema operativo TryToGetSpinlock sirve para la ocupación no bloqueante de una instancia de spinlock a través del encabezado Os.h [SWS_Os_00703]. Asume la misma funcionalidad básica que GetSpinlock, pero no espera de forma activa si el spinlock solicitado ya está ocupado por una TASK en otro Core [SWS_Os_00703].

Parámetros y valores de retorno

  • SpinlockId (entrada): hace referencia a la instancia concreta de spinlock que se debe bloquear [SWS_Os_00703].
  • Success (salida): indica mediante el tipo TryToGetSpinlockType* si el bloqueo se ha podido ocupar o no [SWS_Os_00703]. Si el bloqueo está ocupado en otro Core, la función establece este parámetro en consecuencia y retorna con E_OK [SWS_Os_00703].
  • Valor de retorno: devuelve E_OK en los estados estándar y Extended si no hay ningún error [SWS_Os_00703].

Tratamiento de errores y condiciones límite

En el estado Extended, el sistema operativo comprueba si existen llamadas no válidas, así como escenarios de interbloqueo [SWS_Os_00703]:

  • E_OS_ID: El SpinlockId transferido no es válido [SWS_Os_00703].
  • E_OS_ACCESS: no se puede acceder al spinlock [SWS_Os_00703].
  • E_OS_INTERFERENCE_DEADLOCK: una TASK intenta ocupar el bloqueo mientras ese mismo bloqueo ya está retenido por una TASK en el mismo Core [SWS_Os_00703].
  • E_OS_NESTING_DEADLOCK: una TASK intenta ocupar un spinlock mientras ya retiene otro spinlock, lo que podría dar lugar a un interbloqueo [SWS_Os_00703].

Esta nota de uso ha sido generada automáticamente por un sistema de IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 751c4aeab334 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona del sistema ShutdownAllCores con el ID de servicio 0x1c sirve para el apagado controlado y completo del sistema operativo AUTOSAR en todos los núcleos de procesador presentes ([SWS_Os_00713]). En cuanto se llama al servicio, la función fuerza una parada en todos los demás cores, de modo que el sistema operativo se apaga en todos los núcleos de AUTOSAR ([SWS_Os_00713]).

Contexto de llamada y concurrencia

La función está declarada en la cabecera Os.h y especificada como reentrante ([SWS_Os_00713]). La llamada a ShutdownAllCores está permitida sin restricciones tanto a nivel de tarea (TASK level) como a nivel de interrupción (ISR level) ([SWS_Os_00713]). Además, el servicio también puede ser ejecutado internamente por el propio AUTOSAR OS ([SWS_Os_00713]).

Parámetros y flujo de control

La interfaz espera como único parámetro de entrada Error de tipo StatusType ([SWS_Os_00713]). Para este parámetro debe pasarse obligatoriamente un código de error válido compatible con el sistema operativo AUTOSAR ([SWS_Os_00713]). No existen parámetros de salida ni de entrada/salida ([SWS_Os_00713]). Dado que la función nunca retorna al llamador tras desencadenar el apagado a nivel de todo el sistema, no posee valor de retorno (void) ([SWS_Os_00713]).

Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 33a045f6c446 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona ControlIdle permite al llamador establecer la acción que se ejecuta durante el tiempo de reposo del sistema operativo (cuando ni una tarea ni una ISR están activas) [SWS_Os_00769]. Esto sirve principalmente para implementar medidas de ahorro de energía. Los modos reales de reposo dependen del hardware y no están estandarizados; el modo predeterminado en cada núcleo de procesador es IDLE_NO_HALT [SWS_Os_00769]. La interfaz se proporciona a través del archivo de cabecera Os.h [SWS_Os_00769].

La función espera dos parámetros de entrada:

  • CoreID (de tipo CoreIdType): Selecciona el núcleo de procesador cuyo modo de reposo se va a configurar [SWS_Os_00769].
  • IdleMode (de tipo IdleModeType): Determina el modo que debe ejecutarse en el tiempo de reposo [SWS_Os_00769].

Si se han pasado parámetros válidos y no se ha producido ningún error, la función devuelve E_OK [SWS_Os_00769], [SWS_Os_00770]. Si el CoreID o IdleMode indicado no es válido —por ejemplo, porque el núcleo referenciado no existe o el modo es desconocido—, la llamada devuelve el código de error E_OS_ID en el estado EXTENDED [SWS_Os_00769], [SWS_Os_00771]. En sistemas de un solo núcleo, se omite la comprobación del parámetro CoreID [SWS_Os_00771].

En cuanto a la concurrencia, la función está especificada como no reentrante (Non Reentrant) [SWS_Os_00769]. Interpretación: Por lo tanto, los llamadores deben asegurarse de que las llamadas a ControlIdle no se realicen de forma simultánea o descoordinada desde diferentes contextos de ejecución. Pregunta Q-7f239cb54752e826 (abierta)

Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función ReadPeripheral [SWS_Os_91013] 📄 PDF

StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);

This service returns the content of a given memory location (

).
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 00b6c6a1dbf2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función ReadPeripheral (indicada en la declaración como ReadPeripheral8) sirve para la lectura síncrona de una dirección de memoria dentro de un área periférica de hardware definida [SWS_Os_91013]. La interfaz está disponible a través del archivo de cabecera Os.h [SWS_Os_91013]. Como parámetros de entrada, el servicio espera la referencia de área Area de tipo AreaIdType, así como la dirección de destino Address como puntero a const uint8 [SWS_Os_91013]. El contenido leído de la posición de memoria se proporciona a través del parámetro de salida ReadValue [SWS_Os_91013].

Manejo de errores

El servicio devuelve un código de estado de tipo StatusType, donde E_OK indica la ejecución sin errores [SWS_Os_91013]. Con la comprobación de estado extendida activada (EXTENDED status), las llamadas erróneas se diferencian mediante valores de error específicos [SWS_Os_91013]:

  • E_OS_ID: el identificador de área transferido Area se encuentra fuera del rango válido [SWS_Os_91013].
  • E_OS_VALUE: la dirección de memoria indicada Address no pertenece al área periférica indicada [SWS_Os_91013].
  • E_OS_CALLEVEL: la llamada se ha producido desde un contexto no permitido [SWS_Os_91013].
  • E_OS_ACCESS: es probable que la tarea o ISR que realiza la llamada no disponga de la autorización requerida para acceder al área (interpretación) [SWS_Os_91013]. Pregunta Q-19e2c22110352ebb (abierta)

Concurrencia y restricciones

El servicio API posee el ID de servicio 0x28, funciona de forma síncrona y está diseñado como reentrante [SWS_Os_91013]. Las llamadas solo se permiten desde contextos válidos de tarea o ISR; las llamadas no permitidas se rechazan en estado extendido con E_OS_CALLEVEL [SWS_Os_91013].

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función ReadPeripheral16 [SWS_Os_91015] 📄 PDF

StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);

This service returns the content of a given memory location (

).
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5ae7289a82af Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función del sistema operativo síncrona y reentrante ReadPeripheral16 sirve para leer el valor de 16 bits de una dirección de memoria especificada dentro de un área periférica definida [SWS_Os_91015]. El servicio del sistema está definido con el ID de servicio 0x29 y está disponible a través del archivo de cabecera Os.h [SWS_Os_91015].

Uso y parámetros

Al servicio se le transfieren como parámetros de entrada la referencia al área periférica de hardware (Area de tipo AreaIdType), así como la dirección de destino en la memoria (Address de tipo const uint16*) [SWS_Os_91015]. A través del parámetro de salida Read Value de tipo puntero uint16* se proporciona el contenido de 16 bits determinado en la dirección de memoria [SWS_Os_91015]. En caso de ejecución sin errores, la función devuelve el valor de retorno E_OK de tipo StatusType [SWS_Os_91015].

Tratamiento de errores y restricciones de acceso

En el estado extendido (EXTENDED status), el sistema operativo comprueba la validez de la llamada y notifica los errores mediante códigos de estado específicos [SWS_Os_91015]:

  • E_OS_ID: el identificador de área transferido Area se encuentra fuera del rango válido [SWS_Os_91015].
  • E_OS_VALUE: la dirección de memoria indicada Address no pertenece al área periférica especificada Area [SWS_Os_91015].
  • E_OS_CALLEVEL: la llamada se ha producido en un contexto no permitido para la función API [SWS_Os_91015].
  • E_OS_ACCESS: la tarea o la rutina de servicio de interrupción (ISR) que realiza la llamada no está autorizada para acceder al área indicada [SWS_Os_91015].

Esta nota de uso se ha generado automáticamente y se basa exclusivamente en las prescripciones de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función ReadPeripheral32 [SWS_Os_91014] 📄 PDF

StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);

This service returns the content of a given memory location (

).
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a9f5d6c77f15 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona y reentrante ReadPeripheral32 lee el contenido de una dirección de memoria indicada ([SWS_Os_91014]). Quien realiza la llamada transfiere la referencia al área periférica de hardware a través del parámetro Area y la dirección de memoria deseada a través de Address ([SWS_Os_91014]). El valor de 32 bits leído en dicha dirección se proporciona de forma síncrona a través del parámetro de salida ReadValue ([SWS_Os_91014]). La interfaz se pone a disposición a través de la cabecera Os.h ([SWS_Os_91014]).

Manejo de errores

El servicio devuelve un valor de estado de tipo StatusType. En caso de ejecución sin errores, devuelve E_OK ([SWS_Os_91014]). Si está configurado el estado extendido (EXTENDED status), se devuelven los siguientes códigos de error ([SWS_Os_91014]):

  • E_OS_ID: el identificador de área transferido Area se encuentra fuera del rango permitido ([SWS_Os_91014]).
  • E_OS_VALUE: la dirección indicada Address no pertenece al área indicada Area ([SWS_Os_91014]).
  • E_OS_CALLEVEL: la función se ha llamado en un contexto de llamada no permitido ([SWS_Os_91014]).
  • E_OS_ACCESS: la tarea o la ISR que realiza la llamada no dispone del permiso de acceso requerido; según la interpretación, esto debería referirse al área periférica ([SWS_Os_91014]). Pregunta Q-e5893b29acc5133a (abierta)

Concurrencia y restricciones

ReadPeripheral32 está especificada como reentrante y se puede llamar en paralelo desde múltiples flujos de control ([SWS_Os_91014]). Dado que el servicio funciona de forma síncrona, la llamada solo retorna tras finalizar el proceso de lectura ([SWS_Os_91014]). Quienes realizan la llamada deben transferir punteros de memoria válidos y asegurarse de que la llamada se produzca desde un contexto permitido para la API de OS ([SWS_Os_91014]).

Este texto ha sido elaborado por una IA y se basa exclusivamente en las especificaciones del release R20-11.

Guía del implementador pendiente (complejidad I1)

función WritePeripheral [SWS_Os_91010] 📄 PDF

StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4e0ec4ae51d7 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función WritePeripheral (también denominada Write Peripheral8 en la especificación) es un servicio síncrono y reentrante del sistema operativo para escribir un valor en una dirección de memoria indicada de un área periférica [SWS_Os_91010]. La declaración se proporciona mediante el archivo de cabecera Os.h [SWS_Os_91010]. La llamada espera como parámetros la referencia al área periférica de hardware (Area de tipo AreaIdType), la dirección de memoria (Address de tipo uint8*), así como el valor que se va a escribir (Write Value de tipo uint8) [SWS_Os_91010]. Interpretación: aunque Write Value figura en la tabla de parámetros de salida en el texto de la especificación, a juzgar por el paso de valores en la firma y la descripción, debería tratarse del valor de entrada que se va a escribir. Pregunta Q-619c69ba7a85ed92 (abierta)

Manejo de errores

La función devuelve un estado del tipo StatusType [SWS_Os_91010]:

  • E_OK: la operación de escritura se ha realizado sin errores [SWS_Os_91010].
  • E_OS_ID: el ID de área transferido se encuentra fuera del rango válido (en estado extendido) [SWS_Os_91010].
  • E_OS_VALUE: la dirección de destino no pertenece al área indicada (en estado extendido) [SWS_Os_91010].
  • E_OS_CALLEVEL: contexto de llamada no permitido de la función API (en estado extendido) [SWS_Os_91010].
  • E_OS_ACCESS: la tarea o ISR que realiza la llamada no posee permiso de acceso para el área [SWS_Os_91010].

Concurrencia y restricciones

La llamada se procesa de forma síncrona y es reentrante [SWS_Os_91010]. Quienes realizan la llamada deben asegurarse de que la tarea o ISR ejecutante actúe desde un contexto válido y disponga de los derechos de acceso necesarios para el área periférica direccionada [SWS_Os_91010].

Este texto ha sido generado automáticamente. Toda la información se basa en las especificaciones AUTOSAR referenciadas.

Guía del implementador pendiente (complejidad I1)

función WritePeripheral16 [SWS_Os_91012] 📄 PDF

StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4e4afea6b230 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función del sistema operativo síncrona y reentrante WritePeripheral16 ([SWS_Os_91012]) sirve para escribir un valor de 16 bits en una dirección de memoria de un área periférica. El servicio se proporciona a través de la cabecera Os.h y posee el ID de servicio 0x2c.

Uso y parámetros

Al llamar a WritePeripheral16, quien realiza la llamada transfiere el identificador del área de hardware de destino (Area de tipo AreaIdType), la dirección de destino (Address de tipo uint16*), así como el valor que se va a escribir (Write Value de tipo uint16, que, a pesar de figurar en la tabla como parámetro de salida, en la firma probablemente sirve como paso de valores) según [SWS_Os_91012]. Pregunta Q-2edc50ae2e7fd0b0 (abierta) El servicio se ejecuta de forma síncrona y devuelve un valor de estado de tipo StatusType.

Manejo de errores

En caso de éxito, la función devuelve E_OK. Bajo el estado EXTENDED se especifican los siguientes códigos de error ([SWS_Os_91012]):

  • E_OS_ID: el identificador de área transferido (Area) se encuentra fuera del rango válido.
  • E_OS_VALUE: la dirección de destino (Address) no pertenece al área periférica indicada.
  • E_OS_CALLEVEL: la función se ha llamado desde un contexto no permitido.
  • E_OS_ACCESS: la tarea o ISR que realiza la llamada probablemente no posee autorización para acceder al área indicada. Pregunta (abierta)

Restricciones e interacción

La función es reentrante ([SWS_Os_91012]); sin embargo, requiere el cumplimiento del contexto de llamada permitido (tarea o ISR) para evitar estados de error como E_OS_CALLEVEL. Para la monitorización y el análisis de objetos del sistema operativo, AUTOSAR prevé el suministro de archivos de descripción ARTI ([SWS_Os_00829]).

Esta nota de uso se ha generado automáticamente y se basa exclusivamente en los datos de especificación del release R20-11 de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función WritePeripheral32 [SWS_Os_91011] 📄 PDF

StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);

This service writes the to a given memory location ().

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a189c9cd92b9 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante WritePeripheral32 del módulo Os sirve para escribir un valor de 32 bits en una dirección de memoria indicada de un área periférica [SWS_Os_91011]. El servicio está disponible a través de la cabecera Os.h y posee el ID de servicio 0x2d [SWS_Os_91011].

Parámetros y llamada

Para la ejecución del acceso de escritura, la función requiere tres parámetros de entrada [SWS_Os_91011]:

  • Area (AreaIdType): referencia al área periférica de hardware de destino [SWS_Os_91011].
  • Address (uint32*): dirección de memoria en la que se debe escribir el valor [SWS_Os_91011].
  • Write Value (uint32): el valor concreto de 32 bits que se transfiere a la dirección de destino [SWS_Os_91011].

Valores de retorno y tratamiento de errores

La llamada devuelve un valor de estado de tipo StatusType [SWS_Os_91011]. En caso de éxito, se notifica E_OK [SWS_Os_91011]. Con el estado EXTENDED activo, E_OS_ID señala un ID de área no válido, E_OS_VALUE una dirección que no pertenece al área y E_OS_CALLEVEL un contexto de llamada no permitido [SWS_Os_91011]. Si la tarea o la ISR que realiza la llamada no posee permiso de acceso para el área, se devuelve E_OS_ACCESS [SWS_Os_91011].

concurrencia

Dado que WritePeripheral32 es reentrante, el servicio se puede utilizar en contextos de ejecución concurrentes, siempre que quien realiza la llamada disponga en tiempo de ejecución del permiso de acceso requerido [SWS_Os_91011].

Esta nota de uso se generó automáticamente a partir de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función ModifyPeripheral [SWS_Os_91016] 📄 PDF

StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 031e78e21a3e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función del sistema operativo síncrona y reentrante ModifyPeripheral8 ([SWS_Os_91016]) modifica un byte en una dirección de memoria indicada Address. Para ello, el contenido de memoria existente se actualiza bit a bit mediante la máscara Clearmask por operación AND, así como mediante la máscara Setmask por operación OR conforme a la fórmula *Address = ((*Address & Clearmask) | Setmask) ([SWS_Os_91016]). Como parámetros de entrada, la función espera la referencia del área periférica Area de tipo AreaIdType, la dirección de destino Address (tipo uint8*), así como los dos valores de máscara de tipo uint8. La función se proporciona a través del archivo de cabecera Os.h y posee el ID de servicio 0x2e ([SWS_Os_91016]).

Tratamiento de errores y valores de retorno

El valor de retorno de tipo StatusType señala el éxito de la operación con E_OK ([SWS_Os_91016]). Con el estado extendido activado, pueden producirse condiciones de error específicas:

  • E_OS_ID: el identificador de área transferido Area se encuentra fuera del rango permitido ([SWS_Os_91016]).
  • E_OS_VALUE: la dirección de destino Address no pertenece al área indicada Area ([SWS_Os_91016]).
  • E_OS_CALLEVEL: el servicio se ha llamado en un contexto de llamada no permitido ([SWS_Os_91016]).
  • E_OS_ACCESS: la tarea o la ISR que realiza la llamada no posee permiso de acceso para el área de destino ([SWS_Os_91016]).

Concurrencia y condiciones de invocación

Dado que ModifyPeripheral8 está especificada como reentrante, la llamada se puede realizar de forma segura en flujos paralelos ([SWS_Os_91016]). Quienes realizan la llamada deben asegurarse de que tanto el contexto como los derechos de acceso para Area y Address sean válidos para evitar estados de error ([SWS_Os_91016]).

Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función ModifyPeripheral16 [SWS_Os_91018] 📄 PDF

StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f22ffe272912 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante ModifyPeripheral16 modifica una posición de memoria de 16 bits dentro de un área periférica definida según la fórmula de cálculo *Address = ((*Address & Clearmask) | Setmask) [SWS_Os_91018]. Como parámetros se transfieren la referencia del área periférica Area (tipo AreaIdType), la dirección de destino Address (tipo uint16*), así como las máscaras de bits Clearmask para una operación AND bit a bit y Setmask para una operación OR bit a bit [SWS_Os_91018]. La declaración está disponible a través de la cabecera Os.h [SWS_Os_91018].

En el caso regular de éxito, el servicio devuelve el valor de retorno E_OK [SWS_Os_91018]. Con la comprobación de estado extendida activada (EXTENDED status), las llamadas erróneas se detectan y rechazan mediante códigos de error específicos [SWS_Os_91018]:

  • E_OS_ID: el identificador de área transferido Area se encuentra fuera del rango de valores válido [SWS_Os_91018].
  • E_OS_VALUE: la dirección de memoria transferida Address no pertenece al área indicada Area [SWS_Os_91018].
  • E_OS_CALLEVEL: el servicio se ha llamado desde un contexto no permitido [SWS_Os_91018].
  • E_OS_ACCESS: La tarea llamadora o la ISR llamadora no posee autorización de acceso para el área indicada [SWS_Os_91018].

Los emisores de la llamada deben asegurarse antes de la ejecución de que existan tanto el contexto como los permisos para el área referenciada, a fin de evitar violaciones de acceso [SWS_Os_91018].

Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función ModifyPeripheral32 [SWS_Os_91017] 📄 PDF

StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c9ed5f9b2fff Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función del sistema operativo síncrona y reentrante ModifyPeripheral32 sirve, conforme a [SWS_Os_91017], para la manipulación bit a bit dirigida de una dirección de memoria de 32 bits. Proporcionada a través de la interfaz Os.h, la función aplica sobre la dirección de destino Address la fórmula de cálculo fija *Address = ((*Address & Clearmask) | Setmask). En este proceso, en primer lugar se restablecen bits mediante operación AND a través de la máscara de bits Clearmask y, a continuación, se fijan mediante operación OR a través de Setmask.

Como parámetros de entrada, el servicio espera la referencia del área periférica Area, el puntero de dirección Address, así como las dos máscaras de 32 bits [SWS_Os_91017]. En caso de ejecución sin errores, se devuelve el código de estado E_OK. En el estado extendido (EXTENDED status), la función realiza comprobaciones de plausibilidad y notifica los siguientes códigos de error:

  • E_OS_ID: el Area transferido se encuentra fuera del rango de valores permitido [SWS_Os_91017].
  • E_OS_VALUE: la dirección de destino no pertenece al área periférica indicada [SWS_Os_91017].
  • E_OS_CALLEVEL: La función se invocó desde un contexto no admisible [SWS_Os_91017].
  • E_OS_ACCESS: la tarea o ISR que realiza la llamada no posee autorización para el acceso [SWS_Os_91017] (interpretación: falta de permiso de acceso al área periférica). Pregunta Q-b4d959765dc59c72 (abierta)

Las llamadas concurrentes están permitidas gracias a la reentrancia, siempre que se respete el contexto de llamada [SWS_Os_91017]. En el sistema global, esta modificación directa de registros se diferencia de las fórmulas de cálculo para la determinación dinámica de datos que se evalúan, por ejemplo, en el marco de la información de depuración de ARTI conforme a [SWS_Os_00829].

Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función EnableInterruptSource [SWS_Os_91020] 📄 PDF

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

Service EnableInterruptSource.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0e3279bf544b Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función del sistema síncrona y reentrante EnableInterruptSource activa una fuente de interrupción mediante la modificación de los registros del controlador de interrupciones [SWS_Os_91020], [SWS_Os_00811]. El sistema operativo proporciona este servicio para cada fuente de interrupción de categoría 2 configurada [SWS_Os_00808].

Parámetros y llamada

A través del parámetro ISRID se pasa el identificador de la ISR de categoría 2 [SWS_Os_91020]. El parámetro booleano ClearPending determina si un flag de interrupción pendiente debe borrarse al realizar la activación (TRUE) o si permanece sin cambios (FALSE) [SWS_Os_91020], [SWS_Os_00811]. La función está disponible a través del archivo de cabecera Os.h [SWS_Os_91020].

Tratamiento de errores y valores de retorno

Si no se detecta ningún error, la llamada devuelve E_OK [SWS_Os_91020], [SWS_Os_00810]. Si el sistema operativo detecta un error, devuelve el código de estado correspondiente de tipo StatusType y llama a ErrorHook() [SWS_Os_00810]. Se definen los siguientes estados de error:

  • E_OS_ID: El parámetro ISRID no es un identificador válido de una ISR de categoría 2 (en el estado EXTENDED) [SWS_Os_91020].
  • E_OS_CALLEVEL: La función ha sido llamada desde un contexto de llamada no permitido (en el estado EXTENDED) [SWS_Os_91020].
  • E_OS_ACCESS: La aplicación llamadora no es propietaria del ISRID indicado en el marco de la Service Protection [SWS_Os_91020].

Interacción

La función forma junto con DisableInterruptSource y ClearPendingInterrupt el trío de API para el control selectivo de fuentes de interrupción individuales de categoría 2 (OsIsrCategory == CATEGORY_2) en el sistema operativo [SWS_Os_00808], [SWS_Os_00810].

Este texto ha sido generado automáticamente a partir de las especificaciones de la Release R20-11.

Guía del implementador pendiente (complejidad I2)

función DisableInterruptSource [SWS_Os_91019] 📄 PDF

StatusType DisableInterruptSource (ISRType ISRID);

Disables the interrupt source by modifying the interrupt controller registers.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c278819b07d9 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona y reentrante DisableInterruptSource desactiva una fuente de interrupción específica directamente a través de los registros del controlador de interrupciones [SWS_Os_91019], [SWS_Os_00812]. Está disponible a través del archivo de cabecera Os.h y se proporciona para cada fuente de interrupción de categoría 2 (OsIsrCategory == CATEGORY_2) [SWS_Os_91019], [SWS_Os_00808]. Como parámetro se pasa el identificador de la ISR correspondiente (ISRID). En caso de ejecución correcta, el servicio devuelve E_OK [SWS_Os_91019], [SWS_Os_00810].

Manejo de errores

Si el sistema operativo detecta un error durante la ejecución, se devuelve el StatusType correspondiente y se llama a ErrorHook() [SWS_Os_00810]. Los posibles códigos de error son:

  • E_OS_ID: El ISRID pasado no es un identificador válido de una ISR de categoría 2 (en estado EXTENDED) [SWS_Os_91019].
  • E_OS_CALLEVEL: Contexto de llamada no permitido de la función de API (en estado EXTENDED) [SWS_Os_91019].
  • E_OS_ACCESS: La OS-Application llamadora no es propietaria de la ISR especificada (Service Protection) [SWS_Os_91019].
  • E_OS_NOFUNC: La fuente de interrupción solicitada ya está desactivada (en estado EXTENDED en caso de llamadas anidadas) [SWS_Os_00809].

Interacción y condiciones marco

La función forma junto con EnableInterruptSource y ClearPendingInterrupt el trío de API para el control de fuentes de interrupción de categoría 2 [SWS_Os_00808]. Las llamadas concurrentes o repetidas se protegen en el estado extendido mediante la devolución de E_OS_NOFUNC, con lo que las desactivaciones redundantes permanecen controlables [SWS_Os_00809]. Además, los llamadores deben poseer los derechos de acceso adecuados para evitar errores de tiempo de ejecución derivados de la Service Protection [SWS_Os_91019].

Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función ClearPendingInterrupt [SWS_Os_91021] 📄 PDF

StatusType ClearPendingInterrupt (ISRType ISRID);

Service ClearPendingInterrupt.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bf5abba4980e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función ClearPendingInterrupt sirve para restablecer una interrupción pendiente para fuentes de categoría 2 [SWS_Os_00808]. Recibe como único parámetro de entrada el identificador ISRID de una ISR de categoría 2 y modifica directamente los registros correspondientes del controlador de interrupciones [SWS_Os_91021], [SWS_Os_00813]. La llamada se procesa de forma síncrona y está disponible a través del archivo de cabecera Os.h [SWS_Os_91021].

Tratamiento de errores y valores de retorno

En ausencia de errores, se devuelve el código de estado E_OK [SWS_Os_91021]. Si el sistema operativo detecta un error durante la ejecución, el servicio devuelve el código de error correspondiente de tipo StatusType y llama obligatoriamente a ErrorHook() [SWS_Os_00810]. Para la interfaz se especifican los siguientes estados de error [SWS_Os_91021]:

  • E_OS_ID: El parámetro pasado ISRID no es un identificador válido de una ISR de categoría 2 (se devuelve en el estado EXTENDED) [SWS_Os_91021].
  • E_OS_CALLEVEL: La función ha sido llamada desde un contexto de llamada no permitido (se devuelve en el estado EXTENDED) [SWS_Os_91021].
  • E_OS_ACCESS: La aplicación llamadora no está autorizada como propietaria de la ISR pasada en el marco de la Service Protection [SWS_Os_91021].

Concurrencia e interacción en el sistema operativo

La interfaz está definida como reentrante y, por tanto, se puede llamar de forma concurrente con seguridad [SWS_Os_91021]. El sistema operativo proporciona ClearPendingInterrupt para cada fuente de interrupción de categoría 2 (OsIsrCategory == CATEGORY_2) como componente fijo de las API de control, a las que también pertenecen DisableInterruptSource y EnableInterruptSource [SWS_Os_00808].

Este texto ha sido generado por una IA a partir de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6cc8f60dfafe Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función ActivateTaskAsyn (Service-ID 0x33) representa la variante asíncrona para la activación de tareas y se proporciona a través del archivo de cabecera Os.h ([SWS_Os_91022]). Está prevista principalmente para la activación de tareas entre núcleos en sistemas multinúcleo ([SWS_Os_91022]).

Como único parámetro de entrada se transfiere id del tipo TaskType, que especifica la tarea que se va a activar ([SWS_Os_91022]). La interfaz no posee ningún valor de retorno (void) y no define parámetros de entrada/salida ni de solo salida ([SWS_Os_91022]).

Los posibles errores durante la activación no se notifican al llamador ([SWS_Os_91022], [SWS_Os_00816]). En su lugar, los errores que se produzcan se notifican exclusivamente a través del hook de error global, en caso de que esté configurado ([SWS_Os_00816]).

En cuanto a la concurrencia, la función es reentrante y opera de forma completamente asíncrona ([SWS_Os_91022]), por lo que el contexto llamador no se bloquea a la espera de la ejecución. El sistema operativo está obligado a proporcionar esta interfaz según [SWS_Os_00816].

Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

función Ioc [SWS_Os_91026] 📄 PDF

void IocInit (void);

This service initializes the data structures of the IOC. Tags: atp.Status=draft

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 50632b8f91d3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y funcionamiento

La función Ioc Init (marcada como borrador en la versión R20-11) inicializa las estructuras de datos internas de la Inter-OS-Application Communication (IOC) [SWS_Os_91026]. La llamada se realiza de forma síncrona, no acepta parámetros de entrada y no tiene valor de retorno [SWS_Os_91026]. Si el generador del sistema operativo se ejecuta en «IOC mode», este genera exclusivamente el código de IOC en el archivo fuente Ioc.c y declara las interfaces correspondientes en el archivo de cabecera Ioc.h [SWS_Os_00834], a través del cual también se proporciona Ioc Init [SWS_Os_91026].

Tratamiento de errores y concurrencia

Para Ioc Init, la especificación no prevé valores de retorno de error específicos ni mensajes de error dirigidos a DET o DEM [SWS_Os_91026]. El servicio está definido explícitamente como no reentrante (Non Reentrant) [SWS_Os_91026]. Interpretación: debido a la falta de reentrancia y a la tarea de inicialización, es probable que el servicio deba llamarse secuencialmente durante la fase de inicio del sistema, antes de que se produzcan accesos concurrentes de comunicación. Pregunta Q-47f99a4725b57c89 (abierta)

Interacción con funciones de comunicación IOC

La inicialización correcta de las estructuras de datos constituye el requisito previo para el uso de las interfaces de comunicación IOC generadas:

  • Envío y escritura: los emisores transmiten datos de forma asíncrona mediante servicios de valor individual como Ioc Send [SWS_Os_00718] y Ioc Write [SWS_Os_91003] o funciones de grupo como Ioc Send Group [SWS_Os_00728] y Ioc Write Group [SWS_Os_91004].
  • Recepción y lectura: los receptores obtienen datos de forma síncrona a través de Ioc Receive [SWS_Os_00738], Ioc Read [SWS_Os_91005] o los servicios de grupo correspondientes [SWS_Os_00746] [SWS_Os_91006].
  • Gestión de colas y notificación: si la comunicación en búfer está configurada, el contenido de una cola interna se puede vaciar de forma síncrona con Ioc Empty Queue [SWS_Os_00754]. Además, al recibir datos, se puede ejecutar una callback de receptor configurada <Receiver Pull CB> en el núcleo de destino [SWS_Os_00757].

Este texto ha sido elaborado por una IA y se basa exclusivamente en las especificaciones del release R20-11.

Guía del implementador pendiente (complejidad I1)

función <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. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fe12c77b2732 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de callback <Receiver Pull CB> puede configurarse opcionalmente para el receptor de una comunicación y se declara a través del encabezado Os.h [SWS_Os_00757]. Si este callback está configurado, el IOC (Inter-OS-Application Communicator) llama a la función de forma síncrona en el Core receptor con cada recepción de datos [SWS_Os_00757]. El identificador concreto de la función de callback se determina en el lado del receptor mediante el atributo de configuración OsIocReceiverPullCB [SWS_Os_00757].

Para la llamada y las propiedades de la interfaz rigen los siguientes requisitos:

  • Firma y parámetros: La función tiene el prototipo void <Receiver Pull CB> ( void ); no recibe parámetros (ni de entrada, ni de paso ni de salida) y no devuelve ningún valor [SWS_Os_00757].
  • Sincronía y reentrancia: La llamada por parte del IOC se realiza con semántica síncrona directamente en el core receptor [SWS_Os_00757]. Además, la función de callback está especificada como reentrante [SWS_Os_00757].
  • Tratamiento de errores: La especificación no prevé para esta función valores de retorno ni códigos de error específicos o notificaciones de error [SWS_Os_00757].

Dado que la firma no transfiere ningún dato útil, la llamada probablemente sirva principalmente como señal de notificación para informar al receptor sobre la llegada de nuevos datos e iniciar la posterior recogida de los datos útiles. Pregunta Q-2365bb46ad77a476 (abierta) Los desarrolladores deben tener en cuenta que la ejecución se realiza de forma síncrona en el core receptor [SWS_Os_00757].

Este texto fue generado por una IA y se basa en la especificación AUTOSAR CP R20-11.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 85982be9edad Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función ProtectionHook sirve como callback central del sistema operativo y se llama de forma síncrona siempre que se produce un error grave [SWS_Os_00538]. Como escenarios de error típicos, la especificación menciona explícitamente la superación del tiempo de ejecución en el peor de los casos (Worst Case Execution Time), así como infracciones de la protección de memoria [SWS_Os_00538]. La declaración de la interfaz se proporciona a través del encabezado Os_Externals.h [SWS_Os_00538].

Como parámetro de entrada, la rutina recibe Fatalerror de tipo StatusType, el cual pasa la causa desencadenante de la llamada al hook [SWS_Os_00538]. En la firma no se definen parámetros de entrada/salida adicionales ni parámetros exclusivos de salida [SWS_Os_00538].

Mediante el valor de retorno de tipo ProtectionReturnType, ProtectionHook determina de forma vinculante qué acción debe iniciar el sistema operativo tras la ejecución del hook para el tratamiento posterior del error [SWS_Os_00538]. Como valores de retorno están disponibles las siguientes acciones [SWS_Os_00538]:

En relación con la concurrencia y el comportamiento de ejecución, ProtectionHook está especificada como reentrante y síncrona [SWS_Os_00538]. La llamada se produce inmediatamente al producirse el error grave, tras lo cual el sistema operativo ejecuta la acción definida [SWS_Os_00538].

Este texto fue creado por una IA sobre la base de la especificación.

Guía del implementador pendiente (complejidad I2)

tipo AppModeType [SWS_Os_91007] 📄 PDF

App Mode of the core shall be inherited from another core.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e91976813761 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración AppModeType está definido en el archivo de cabecera Os.h y sirve para fijar el modo de aplicación en el sistema operativo [SWS_Os_91007]. En sistemas multinúcleo, este tipo permite que el modo de aplicación de un núcleo de procesador se herede de otro Core [SWS_Os_91007].

Para el rango de valores se especifica el valor DONOTCARE [SWS_Os_91007]. Interpretación: este valor debería servir para configurar explícitamente un Core de forma que no inicie un modo independiente, sino que asuma el comportamiento del Core superior. Pregunta Q-2b7d9f1c8e5f1a3f (abierta) No se definen códigos de error o valores de retorno específicos para el tipo en sí.

En relación con el diagnóstico y el estado del sistema, es relevante la interacción con herramientas de análisis. Conforme a [SWS_Os_00829], el archivo de descripción de módulo ARTI debe admitir todos los contenedores ORTI para permitir a las herramientas de depuración conectadas la evaluación y visualización de información sobre el sistema operativo y sus objetos. La información de depuración de ARTI proporciona atributos dinámicos que se resuelven mediante fórmulas [SWS_Os_00829]. Interpretación: por tanto, es probable que el estado del modo de aplicación se represente y se lea a nivel de herramienta mediante los atributos de objeto ARTI correspondientes. Pregunta Q-410d011cbcf1b158 (abierta)

Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.

Guía del implementador pendiente (complejidad I1)

tipo 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 71b2dfdfc31d Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de datos ApplicationStateType sirve en el sistema operativo Classic AUTOSAR para la identificación unívoca del estado de una OS-Application [SWS_Os_00773]. Está especificado como un tipo básico escalar y se proporciona a través del archivo de cabecera Os.h [SWS_Os_00773].

El rango de valores permitido de ApplicationStateType comprende tres estados discretos para una OS-Application [SWS_Os_00773]:

  • APPLICATION_ACCESSIBLE: Identifica que la OS-Application está lista para el servicio y que se puede acceder a sus recursos [SWS_Os_00773].
  • APPLICATION_RESTARTING: Señaliza que la OS-Application se encuentra actualmente en una fase de reinicio [SWS_Os_00773].
  • APPLICATION_TERMINATED: Indica que la OS-Application ha finalizado y no ejecuta más acciones [SWS_Os_00773].

En lo que respecta al uso y a la interacción con otros componentes, es de suponer que el tipo sirva probablemente como valor de retorno o parámetro de salida en los servicios del sistema del OS correspondientes para la monitorización de estado, con el fin de comunicar a los llamadores el estado actual del ciclo de vida de una aplicación. Pregunta Q-9a4f2254f4013853 (abierta) Al tratarse de una definición de tipo elemental, el estándar no especifica códigos de error independientes ni mensajes DET o DEM para ella, ni formula restricciones específicas relativas al contexto de llamada o a la reentrancia [SWS_Os_00773].

Este texto ha sido generado por una IA y se basa en datos de especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

tipo ApplicationStateRefType [SWS_Os_00774] 📄 PDF

This data type points to location where a Application State Type can be stored.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ae68f3712f9a Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de datos ApplicationStateRefType forma parte del sistema operativo (módulo Os) en la plataforma AUTOSAR Classic y se pone a disposición a través del archivo de cabecera Os.h [SWS_Os_00774]. El tipo deriva de un puntero (Pointer) y apunta directamente a una posición de memoria en la que se puede depositar un estado de una aplicación del OS (Application State) [SWS_Os_00774].

En cuanto a su uso práctico, este tipo puntero sirve para referenciar estados de aplicación: Interpretación: Como tipo puntero, es de prever que ApplicationStateRefType se utilice principalmente como parámetro de referencia o de salida en funciones de consulta del sistema operativo mediante las cuales se transmite el estado de una aplicación del OS al invocador. Pregunta Q-948bb914d3672a38 (abierta) Por consiguiente, los invocadores deben asegurarse de que antes de la transferencia del parámetro se haya reservado un área de memoria válida y escribible para el estado de destino, a fin de evitar accesos erróneos a punteros en tiempo de ejecución.

En la especificación no se definen por separado para este tipo básico mecanismos específicos de tratamiento de errores, códigos de error para DET o DEM, ni disposiciones particulares de reentrancia y concurrencia [SWS_Os_00774]. Cualquier restricción relativa al contexto de llamada permitido o a obligaciones de sincronización a respetar se deriva exclusivamente de aquellas interfaces del sistema operativo que utilicen este tipo en sus firmas de función.

Este texto fue generado por una IA a partir de la especificación.

Guía del implementador pendiente (complejidad I1)

tipo TrustedFunctionParameterRefType [SWS_Os_00776] 📄 PDF

This data type points to a structure which holds the arguments for a call to a trusted function.

tipo AccessType [SWS_Os_00777] 📄 PDF

This type holds information how a specific memory region can be accessed.

tipo ObjectAccessType [SWS_Os_00778] 📄 PDF

This data type identifies if an OS - Application has access to an object.

tipo MemoryStartAddressType [SWS_Os_00780] 📄 PDF

This data type is a pointer which is able to point to any location in the MCU address space.

tipo 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)

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 334083bea161 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo ScheduleTableStatusType representa, según [SWS_Os_00784], el estado actual de ejecución y sincronización de una Schedule Table en el sistema operativo AUTOSAR. Se proporciona a través del archivo de cabecera Os.h y se basa en un rango de valores específico de la implementación.

Se especifican los siguientes valores de estado:

  • SCHEDULETABLE_STOPPED: La Schedule Table no está iniciada.
  • SCHEDULETABLE_NEXT: La tabla de planificación (Schedule Table) se inicia tras finalizar la tabla de planificación actualmente activa (interpretación: esto tiene lugar tras la entrega al servicio NextScheduleTable()). Pregunta Q-8cbcfc83969eea23 (abierta)
  • SCHEDULETABLE_WAITING: La tabla de planificación utiliza sincronización explícita, ya se ha iniciado y espera la sincronización con el tiempo global.
  • SCHEDULETABLE_RUNNING: La tabla de planificación se encuentra en ejecución, pero actualmente no está sincronizada con una fuente de tiempo global.
  • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: La tabla de planificación está en ejecución y sincronizada con la fuente de tiempo global.

Como tipo de datos de estado puro, ScheduleTableStatusType no define errores de tiempo de ejecución propios ni mensajes DET/DEM. En interacción con herramientas de análisis, el tipo sirve según [SWS_Os_00829] para la evaluación y representación asistidas por ARTI de objetos dinámicos del sistema operativo, lo que permite registrar de forma transparente desviaciones de estado y sincronización en el sistema.

Este texto fue generado por una IA y se basa en la especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

tipo ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF

This data type points to a variable of the data type Schedule Table Status Type.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 316994fde661 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y definición

El tipo de datos ScheduleTableStatusRefType está definido conforme a [SWS_Os_00785] como tipo puntero a una variable del tipo de datos Schedule Table Status Type. El tipo se proporciona mediante la cabecera Os.h y actúa en el sistema operativo de AUTOSAR como tipo de referencia para el estado de una tabla de planificación (Schedule Table) [SWS_Os_00785].

Uso y condiciones de contorno

En llamadas típicas al sistema operativo, es de prever que este tipo puntero funcione como parámetro de salida a través del cual una función del sistema OS devuelve al invocador el estado actual de la Schedule Table referenciada. Pregunta Q-53364f3a9953dae3 (abierta) Dado que la especificación solo establece la definición del tipo, los componentes invocadores deben tener en cuenta lo siguiente al utilizarlo:

  • Provisión de memoria: Antes de transferir una referencia de este tipo, el invocador debe asegurarse de que el puntero apunte a un área de memoria válida y escribible que permanezca válida durante toda la llamada.
  • Validez y puntero nulo: Es previsible que la transferencia de un puntero nulo (NULL) provoque, según la configuración del sistema operativo (estado estándar o extendido), las correspondientes respuestas de error por parte de los servicios del OS invocados. Pregunta Q-63d77f8c7857e6c4 (abierta)
  • Protección de memoria: En entornos del OS multinúcleo o con protección de memoria críticos para la seguridad, el área de memoria referenciada debe ser accesible para la tarea o instancia del OS invocadora.

Dado que [SWS_Os_00785] no especifica otras propiedades de tiempo de ejecución ni códigos de error específicos para el tipo base, la reentrancia y el contexto de llamada se derivan de los respectivos servicios de OS que utilizan este tipo de puntero como parámetro.

Esta nota de uso se ha generado automáticamente y se basa exclusivamente en los datos de especificación de la versión R20-11.

Guía del implementador pendiente (complejidad I1)

tipo ProtectionReturnType [SWS_Os_00787] 📄 PDF

This data type identifies a value which controls further actions of the OS on return from the protection hook.

tipo RestartType [SWS_Os_00788] 📄 PDF

This data type defines the use of a Restart Task after terminating an OS - Application.

tipo PhysicalTimeType [SWS_Os_00789] 📄 PDF

This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

tipo 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

tipo 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.

tipo TryToGetSpinlockType [SWS_Os_00792] 📄 PDF

The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9c58c4e8227f Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y rango de valores

El tipo de enumeración TryToGetSpinlockType se proporciona a través del archivo de cabecera Os.h y sirve como indicación de estado de si un spinlock pudo ser ocupado con éxito por el llamador o no [SWS_Os_00792]. Define el resultado de las correspondientes operaciones de ocupación en el sistema operativo [SWS_Os_00792].

El rango de valores comprende exactamente dos literales especificados [SWS_Os_00792]:

  • TRYTOGETSPINLOCK_SUCCESS: Señaliza que el spinlock se pudo ocupar con éxito [SWS_Os_00792].
  • TRYTOGETSPINLOCK_NOSUCCESS: Indica que el spinlock no se pudo ocupar [SWS_Os_00792].

Concurrencia y contexto del sistema

El tipo se utiliza en la sincronización en sistemas multinúcleo. Interpretación: Es probable que el llamador evalúe el valor de retorno de forma síncrona para determinar de inmediato si se permite entrar en la sección crítica protegida o si, en caso de TRYTOGETSPINLOCK_NOSUCCESS, debe seleccionarse una rama alternativa del programa sin espera bloqueante [SWS_Os_00792]. Pregunta Q-a04e72802dc41325 (abierta) Para este tipo no se han especificado códigos de error propios ni mensajes de error mediante DET o DEM [SWS_Os_00792].

Interacción con herramientas de diagnóstico

En el marco de la integración de herramientas, el archivo de descripción del módulo ARTI admite todos los contenedores ORTI para mostrar información sobre el sistema operativo, sus estados y objetos del sistema operativo, así como para determinar valores dinámicos [SWS_Os_00829]. Interpretación: A través de tales interfaces, es probable que los spinlocks y sus estados de ocupación también puedan ser visualizados por herramientas de depuración y rastreo [SWS_Os_00829]. Pregunta Q-a488e055eb7d402e (abierta)

Este texto ha sido generado por una IA y se basa en las especificaciones de AUTOSAR de la versión R20-11.

Guía del implementador pendiente (complejidad I1)

tipo IdleModeType [SWS_Os_00793] 📄 PDF

This data type identifies the idle mode behavior.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 20e46b8167e3 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y rango de valores

El tipo de datos escalar IdleModeType se proporciona a través de la cabecera Os.h y sirve para especificar el comportamiento de un núcleo de procesador en modo inactivo [SWS_Os_00793]. En el rango de valores definido se establece el modo IDLE_NO_HALT, con cuya selección el núcleo de procesador no ejecuta ninguna acción especial durante el tiempo de inactividad [SWS_Os_00793].

Interpretación: Dado que IdleModeType se deriva de un tipo base escalar, es probable que sirva en el contexto del sistema operativo como valor de configuración o parámetro de llamada para servicios de control del comportamiento de inactividad del núcleo. Pregunta Q-911a39efb537f1bc (abierta) Interpretación: Además del valor por defecto IDLE_NO_HALT, es probable que implementaciones concretas del sistema operativo o arquitecturas de microcontroladores prevean potencialmente modos de parada o de ahorro de energía adicionales, aunque el extracto de la especificación solo mencione la ausencia de acciones específicas. Pregunta Q-b6688f74cacbab45 (abierta)

Restricciones y tratamiento de errores

Para IdleModeType, en el presente alcance de la especificación no se indican códigos de error específicos, mensajes DET o DEM, ni requisitos de reentrancia o contextos de llamada [SWS_Os_00793]. Por lo tanto, las posibles restricciones funcionales o precondiciones se derivan exclusivamente de las interfaces superiores del sistema operativo que procesan este tipo.

Este texto ha sido generado por una IA sobre la base de la especificación SWS_Os_00793.

Guía del implementador pendiente (complejidad I1)

tipo 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

tipo StatusType [SWS_Os_00002] 📄 PDF

typedef uint8 StatusType;

This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).

Guía del implementador pendiente (complejidad I2)

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#a3117f0c
Content hash
a3117f0c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_OS.pdf#nameddest=SWS_Os_00016

Mapa de temas

Vista de detalle

Selecciona una entrada en el índice.

Servicios · Get…

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).

ApplicationType GetApplicationID (void);

This service returns the current state of an OS - Application.

StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);
GetCoreID función

The function returns a unique core identifier.

CoreIdType GetCoreID (void);

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).

StatusType GetCounterValue (CounterType CounterID, TickRefType Value);

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().

ApplicationType GetCurrentApplicationID (void);

This service gets the number of ticks between the current tick value and a previously read tick value.

StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);
GetISRID función

This service returns the identifier of the currently executing ISR.

ISRType GetISRID (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

uint32 GetNumberOfActivatedCores (void);

This service queries the state of a schedule table (also with respect to synchronization).

StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);
GetSpinlock función

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.

StatusType GetSpinlock (SpinlockIdType SpinlockId);

Servicios · Start…

StartCore función

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.

void StartCore (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.

void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);

This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.

StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);

This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.

StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);

This service starts an explicitly synchronized schedule table synchronously.

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

Servicios · Check…

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.

AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);

This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs

ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);

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.

AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);

Servicios · Modify…

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 ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);

Servicios · Read…

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 ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);

Servicios · Write…

This service writes the to a given memory location (). Available vi a Os.h

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 (). Available vi a Os.h

StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);

Servicios · Otros

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.

ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);

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.

void ActivateTaskAsyn (TaskType id);
AllowAccess función

This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.

StatusType AllowAccess (void);

A (trusted or non - trusted) OS - Application uses this service to call a trusted function

StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);

Service ClearPendingInterrupt.

StatusType ClearPendingInterrupt (ISRType ISRID);
ControlIdle función

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.

StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);

Disables the interrupt source by modifying the interrupt controller registers.

StatusType DisableInterruptSource (ISRType ISRID);

Service EnableInterruptSource.

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

This service increments a software counter.

StatusType IncrementCounter (CounterType CounterID);
IocInit función

This service initializes the data structures of the IOC. Tags: atp.Status=draft

void IocInit (void);

This service switches the processing from one schedule table to another schedule table.

StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);

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.

ProtectionReturnType ProtectionHook (StatusType Fatalerror);

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.

StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);
SetEventAsyn función

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.

void SetEventAsyn (TaskType id, EventMaskType m);

This service stops synchronization of a schedule table.

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

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.

void ShutdownAllCores (StatusType Error);

This service cancels the processing of a schedule table immediately at any point while the schedule table is running.

StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);

Service SyncScheduleTable.

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service TerminateApplication.

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

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.

StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);

Callouts e interfaces esperadas

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. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."

void <ReceiverPullCB> (void);

Tipos

This type holds information how a specific memory region can be accessed.

This data type represents an AUTOSAR OS alarm identifier.

typedef uint8 AlarmType;

This data type points to location where a Application State Type can be stored.

This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

This data type identifies the OS - Application.

App Mode of the core shall be inherited from another core.

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

Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID

This data type identifies a counter.

This data type represents an event mask for extended tasks.

This data type identifies the idle mode behavior.

ISRType tipo

This data type identifies an interrupt service routine (ISR).

This data type holds the size (in bytes) of a memory region.

This data type is a pointer which is able to point to any location in the MCU address space.

This data type identifies if an OS - Application has access to an object.

This data type identifies an object.

This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

This data type identifies a value which controls further actions of the OS on return from the protection hook.

This data type defines the use of a Restart Task after terminating an OS - Application.

This data type points to a variable of the data type Schedule Table Status Type.

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)

This data type identifies a schedule table.

Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.

This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).

typedef uint8 StatusType;

This data type identifies an AUTOSAR OS task.

typedef uint8 TaskType;

This data type represents count values in ticks.

typedef uint32 TickType;

The total number of cores

This data type identifies a trusted function.

This data type points to a structure which holds the arguments for a call to a trusted function.

The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.