DEENESPTFRRUARHIKOZHNL

AUTOSAR OS

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

Guia do móduloGERADO POR IA

Controla processos orientados por tempo, protege OS-Applications entre si e coordena os núcleos de uma ECU.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 5b459e21507a Procedência
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Controla processos orientados por tempo, protege OS-Applications entre si e coordena os núcleos de uma ECU.

O sistema operacional executa Tasks e ISRs, aciona Counters e ScheduleTables e isola o software em OS-Applications protegidas. O EcuM inicializa os núcleos com StartCore; em seguida, StartOS é chamado em cada núcleo [SWS_Os_00676]. ScheduleTables podem ser explicitamente sincronizadas com um tempo global por meio do StbM. O acesso a objetos externos só é possível com permissões configuradas SWS OS p. 62. Em caso de violações de proteção, o ProtectionHook decide se uma Task, uma OS-Application ou todo o sistema é encerrado.

O sistema operacional é o núcleo de execução da pilha Classic. Ele gerencia Tasks, ISRs, alarmes, Counters e ScheduleTables e os agrupa em OS-Applications, que são trusted ou non-trusted SWS OS p. 61. O EcuM inicializa os núcleos com StartCore e, em seguida, o OS com StartOS; cada núcleo iniciado chama StartOS por conta própria SWS EcuM p. 82, [SWS_Os_00676]. ShutdownAllCores desliga o OS em todos os núcleos e não retorna [SWS_Os_00713]. Componentes de software utilizam serviços do OS por meio da RTE, e é restrito para os módulos BSW quais serviços eles podem utilizar 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 do Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os Apenas serviços permitidos conforme a SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc contém hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os Exceção em caso de violação de proteção

Diagrama de contexto: EcuM, StbM, RTE e módulos BSW acessam o Os por meio de grupos de serviços distintos; o IOC faz parte do Os. Fontes: SWS EcuM p. 34, SWS OS p. 119

Os Counters formam a base de tempo; os valores de hardware são corrigidos de modo a começarem em zero e aumentarem monotonicamente SWS OS p. 39. A aplicação inicia as ScheduleTables de forma absoluta ou relativa ao Counter, e uma parada tem efeito imediato SWS OS p. 46. Na sincronização explícita, o StbM fornece o valor do tempo global com SyncScheduleTable. O OS ajusta então os Expiry Points sucessivamente até que o desvio esteja dentro da precisão configurada [SWS_Os_00199], SWS OS p. 57.

ScheduleTable start Start 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() ou tabela termina RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() ou |desvio| > Precision

Diagrama de estados: ciclo de vida de uma ScheduleTable desde a inicialização, passando pela sincronização, até a parada. Fontes: [SWS_Os_00784], SWS OS p. 49

O conceito de proteção proíbe acessos a objetos de outras OS-Applications, a menos que a configuração os permita SWS OS p. 62. Transições controladas entre OS-Applications são possibilitadas por CallTrustedFunction [SWS_Os_00097]. Múltiplos núcleos coordenam-se por meio de spinlocks com detecção de deadlock e por meio do IOC [SWS_Os_00686], [SWS_Os_00718].

Em caso de erros graves, o valor de retorno do ProtectionHook decide o que se segue [SWS_Os_00538]:

  • ignorar o erro,
  • encerrar Task ou ISR,
  • encerrar OS-Application, com ou sem reinicialização,
  • desligar o sistema.

Uma OS-Application recém-iniciada libera a si mesma novamente com AllowAccess [SWS_Os_00501].

Papel do sistema operacional e seus módulos vizinhos na ECU

O sistema operacional é o núcleo de execução da pilha Classic. Ele gerencia Tasks, ISRs, alarmes, Counters e ScheduleTables. Ele agrupa esses objetos, juntamente com Hooks e Trusted Functions, em OS-Applications configuráveis, que são trusted ou non-trusted SWS OS p. 61. Além disso, ele inicializa e configura todos os temporizadores que utiliza diretamente e que não são gerenciados pelo driver GPT SWS OS p. 39.

Os módulos vizinhos realizam o acesso por meio de interfaces delimitadas:

  • O EcuM controla a inicialização e o desligamento por meio de StartOS, StartCore, GetCoreID e ShutdownAllCores SWS EcuM p. 34.
  • O StbM utiliza GetCounterValue, GetElapsedValue, GetScheduleTableStatus e SyncScheduleTable SWS StbM p. 152.
  • Componentes de software acessam serviços do OS por meio de uma porta RTE com a interface de serviço OsService TR VFB p. 89. Para Counters com OsSecondsPerTick configurado, essa interface oferece, entre outros, GetCounterValue e GetElapsedValue [SWS_Os_00560].

Para módulos BSW, uma tabela define quais serviços do OS eles podem efetivamente utilizar SWS BSWGeneral p. 48. A comunicação entre OS-Applications é realizada pelo IOC. Ele faz parte do sistema operacional e é chamado pela 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 do Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os Apenas serviços permitidos conforme a SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc contém hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os Exceção em caso de violação de proteção

Diagrama de contexto: o Os é utilizado pelo EcuM, StbM, RTE e módulos BSW por meio de seus respectivos grupos de serviços e encapsula o IOC, bem como os acessos ao hardware. Fontes: SWS EcuM p. 34, SWS StbM p. 152, TR VFB p. 89, SWS OS p. 119

Inicialização, gerenciamento de núcleos e desligamento

Na operação multicore, o EcuM inicia em um loop todos os núcleos configurados no núcleo mestre com StartCore. Em seguida, ele chama StartOS(ECUM_DEFAULT_APP_MODE) SWS EcuM p. 82. Em cada núcleo iniciado, StartOS também deve ser chamado [SWS_Os_00676]. Isso é executado pelo EcuM do respectivo núcleo escravo após GetCoreID SWS EcuM p. 83.

Para StartCore aplicam-se as seguintes regras SWS OS p. 166:

  • O serviço não é reentrante.
  • Uma chamada após StartOS retorna E_OS_ACCESS, e o núcleo não é iniciado.
  • Um núcleo já iniciado resulta em E_OS_STATE.

Para núcleos fora do controle do AUTOSAR OS, existe StartNonAutosarCore [SWS_Os_00682].

Os núcleos são identificados por meio de CoreIdType. Os IDs lógicos são baseados em zero e contínuos, e OS_CORE_ID_MASTER designa o núcleo mestre [SWS_Os_00790], [SWS_Os_00825]. GetCoreID retorna o ID lógico do núcleo chamador [SWS_Os_00674]. O serviço já pode ser chamado antes de StartOS SWS OS p. 111.

Após StartOS e antes do primeiro StartupHook, o OS define todas as OS-Applications para APPLICATION_ACCESSIBLE SWS OS p. 62. Em seguida, vem o StartupHook de todo o sistema. Somente depois disso são executados os StartupHook_<App> específicos da aplicação, cada um com as permissões de sua respectiva OS-Application SWS OS p. 134, [SWS_Os_00539].

Inicialização multinúcleo do OsEcuM (Master-Kern)Os (Master-Kern)Os (Slave-Kern)EcuM (Slave-Kern)GetCoreID()CoreIdTypelooppara todos os núcleos configuradosStartCore(CoreID, &Status)Iniciar núcleo sob o controledo AUTOSAR OSStatus = E_OKStartOS(ECUM_DEFAULT_APP_MODE)GetCoreID()StartOS(ECUM_DEFAULT_APP_MODE)Após StartOS: OS-Applications em APPLICATION_ACCESSIBLE,depois StartupHook, em seguida StartupHook_<App>optStartCore após StartOSStartCore(CoreID, &Status)Status = E_OS_ACCESS,Núcleo não é iniciado

Diagrama de sequência: o núcleo mestre inicia os demais núcleos antes de seu próprio StartOS; cada núcleo chama StartOS por conta própria; um StartCore posterior é rejeitado. Fontes: SWS EcuM p. 82, SWS EcuM p. 83, SWS OS p. 166, SWS OS p. 188

GetNumberOfActivatedCores retorna na R20-11 o número de núcleos ativados com StartCore [SWS_Os_00672]. Versões posteriores referem-se, em vez disso, a “núcleos nos quais o AUTOSAR OS é executado” SWS OS p. 196.

Com ControlIdle, seleciona-se por núcleo a ação para o tempo de inatividade, por exemplo, para economia de energia. O padrão é IDLE_NO_HALT. Um núcleo ou modo desconhecido resulta em E_OS_ID [SWS_Os_00769], [SWS_Os_00771], [SWS_Os_00793].

ShutdownAllCores desliga o OS em todos os núcleos AUTOSAR, força os outros núcleos para o desligamento e nunca retorna [SWS_Os_00713]. Nesse processo, primeiro são executados os ShutdownHook_<App>. Em seguida, os núcleos se sincronizam e apenas depois disso ocorre o ShutdownHook global SWS OS p. 98, [SWS_Os_00541].

Counters e ScheduleTables como base de tempo

GetCounterValue retorna o valor do temporizador para Counters de hardware e os ticks de software para Counters de software. O OS corrige os valores de hardware de modo que comecem em zero e aumentem até o módulo SWS OS p. 39, [SWS_Os_00383].

GetElapsedValue retorna os ticks desde um valor lido anteriormente. Se Value for maior que o valor máximo permitido do Counter, segue-se E_OS_VALUE SWS OS p. 192, [SWS_Os_00392].

IncrementCounter incrementa apenas contadores de software; para contadores de hardware, retorna E_OS_ID. Se uma ação de alarme falhar durante esse processo, o OS chama os Error-Hooks, mas o próprio serviço retorna E_OK SWS OS p. 190, [SWS_Os_00399].

A inicialização e a parada de uma ScheduleTable são da responsabilidade da aplicação SWS OS p. 46. O Initial Expiry Point é processado no seguinte valor de contador:

Na inicialização relativa, um offset de 0 ou superior a OsCounterMaxAllowedValue − InitialOffset resulta no erro E_OS_VALUE. Uma tabela já iniciada resulta em E_OS_STATE SWS OS p. 179.

StopScheduleTable cancela imediatamente; uma tabela já parada resulta em E_OS_NOFUNC [SWS_Os_00006]. Uma reinicialização posterior começa no início da tabela SWS OS p. 46.

NextScheduleTable encadeia uma tabela seguinte. Ambas as tabelas têm de ser acionadas pelo mesmo contador, caso contrário ocorre E_OS_ID [SWS_Os_00191], SWS OS p. 184.

GetScheduleTableStatus reporta SCHEDULETABLE_STOPPED juntamente com E_OK para uma tabela não iniciada SWS OS p. 189, [SWS_Os_00784].

ScheduleTable start Start 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() ou tabela termina RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() ou |desvio| > Precision

Diagrama de estados: ciclo de vida de uma ScheduleTable com todos os estados de ScheduleTableStatusType; WAITING e RUNNING ocorrem apenas com sincronização explícita, tabelas sincronizadas implicitamente conhecem apenas STOPPED, NEXT e RUNNING_AND_SYNCHRONOUS. Fontes: [SWS_Os_00784], SWS OS p. 43, SWS OS p. 49, SWS OS p. 48

Sincronização de ScheduleTables com tempo global

Na sincronização implícita, o próprio contador acionador é o contador de sincronização. A tabela conhece, assim, apenas três estados SWS OS p. 48. StartScheduleTableRel retorna o erro E_OS_ID para OsScheduleTblSyncStrategy = IMPLICIT SWS OS p. 179. Em contrapartida, a sincronização explícita ajusta uma tabela acionada localmente a um contador de sincronização externo. Ela é indicada como medida de segurança para a ligação à base de tempo do StbM Safety Measures p. 66.

Existem duas vias para a inicialização SWS OS p. 49, [SWS_Os_00201]:

  • Assíncrona através de StartScheduleTableAbs ou StartScheduleTableRel, em relação ao contador acionador.
  • Síncrona através de StartScheduleTableSynchron. Aqui, o Initial Expiry Point é processado (Duration − Value) + InitialOffset ticks após a disponibilização do valor de sincronização.

SyncScheduleTable passa o valor atual do contador de sincronização. O respetivo módulo corresponde à duração da tabela SWS OS p. 52, [SWS_Os_00199].

O OS calcula o desvio a partir daí e ajusta o atraso em cada Expiry Point. Se o desvio estiver dentro de OsScheduleTblExplicitPrecision, a tabela é considerada «running and synchronous» SWS OS p. 57. SetScheduleTableAsync para o rastreamento até ao próximo SyncScheduleTable; durante esse processo, os Expiry Points continuam em execução SWS OS p. 188, [SWS_Os_00422].

Sincronização explícita de uma ScheduleTable pelo StbMTarefa BSW (tarefa de OS ou chamada cíclica)StbMOsStbM_MainFunction()GetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK, ScheduleStatusaltScheduleStatus == WAITING, RUNNING ou RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Abweichung berechnen,Ajustar atraso até o próximo Expiry Pointcaso contráriokein SyncScheduleTableO fluxo se repete a cada chamada de StbM_MainFunction()

Diagrama de sequência: O StbM consulta ciclicamente o estado da tabela e fornece um valor de sincronização apenas se a tabela estiver iniciada. Fontes: SWS StbM p. 220, SWS StbM p. 117, [SWS_Os_00227], [SWS_Os_00199]

Conceito de proteção: OS-Applications, direitos de acesso e Trusted Functions

O OS impede acessos de uma OS-Application a objetos externos, a menos que a configuração os permita expressamente SWS OS p. 62. Se faltarem os direitos, um serviço retorna E_OS_ACCESS. Excluem-se os serviços de verificação para acesso a memória e a objetos, que são sempre permitidos SWS OS p. 73.

Em tempo de execução, estão disponíveis as seguintes consultas:

  • GetApplicationID indica a OS-Application para a qual o chamador está configurado [SWS_Os_00016].
  • GetCurrentApplicationID indica a OS-Application na qual o chamador está atualmente a ser executado. Ambos os valores diferem apenas dentro de CallTrustedFunction [SWS_Os_00797], [SWS_Os_00798].
  • CheckObjectOwnership retorna o proprietário de um objeto ou INVALID_OSAPPLICATION SWS OS p. 178.
  • CheckObjectAccess retorna ACCESS ou NO_ACCESS; em caso de argumentos inválidos, retorna sempre NO_ACCESS SWS OS p. 177.

CheckTaskMemoryAccess e CheckISRMemoryAccess retornam como AccessType os direitos sobre uma área de memória e se esta pertence à stack. Um direito que não se aplique a toda a área é recusado. Um ID inválido resulta em nenhum direito SWS OS p. 175, SWS OS p. 174. O resultado é avaliado com macros como OSMEMORY_IS_WRITEABLE SWS OS p. 160.

CallTrustedFunction executa uma função com as configurações de proteção da OS-Application disponibilizadora. Se o índice não estiver configurado, seguem-se E_OS_SERVICEID e uma chamada do ErrorHook SWS OS p. 85, SWS OS p. 172. Na R20-11, o comportamento síncrono rege-se pela função chamada, e a chamada pode desencadear um rescheduling [SWS_Os_00097]. Também para trusted OS-Applications tem de ser possível restringir o acesso de escrita [SWS_Os_00795].

Chamada de uma Trusted Functionaufrufende OS-ApplicationTrusted-Function-StubBetriebssystem (System-Call-Dispatcher)bereitstellende OS-ApplicationDienstaufrufArgumente in Parameterstruktur packenCallTrustedFunction(FunID, FunParPtr)Verificar permissãoaltverweigertE_OS_SERVICEIDakzeptiert<trusted function>com configurações de proteção da OS-Application provedoraCheckTaskMemoryAccess(...)AccessTypeRetornoE_OKValor de retorno

Diagrama de sequência: Um stub empacota os argumentos; o OS verifica a autorização e só depois muda para a OS-Application disponibilizadora, cuja função, por sua vez, verifica os direitos de memória. Fontes: SWS OS p. 185, SWS OS p. 396, [SWS_Os_00097]

Para acessos protegidos ao hardware existem ReadPeripheral, WritePeripheral e ModifyPeripheral em 8, 16 e 32 bits. Operam em áreas de periféricos do tipo AreaIdType [SWS_Os_91000]. A variante Modify calcula *Address = (*Address & Clearmask) | Setmask SWS OS p. 209.

Para cada ISR de categoria 2 existem DisableInterruptSource, EnableInterruptSource e ClearPendingInterrupt [SWS_Os_00808]. ClearPendingInterrupt limpa apenas a flag de pendência no controlador de interrupções [SWS_Os_00814].

Diferença entre as versões: Na R20-11, EnableInterruptSource limpa sempre a flag de pendência [SWS_Os_00811], embora a assinatura contenha um parâmetro ClearPending. Versões posteriores descrevem a limpeza como opcional SWS OS p. 177.

Coordenação através de núcleos e partições

Os spinlocks atuam através das fronteiras entre núcleos. GetSpinlock aguarda ativamente sem retirar o chamador de escalonamento, podendo ser chamado ao nível de Task e de ISR de categoria 2 SWS OS p. 115. No Extended Status, reconhece dois casos de deadlock [SWS_Os_00686]:

  • E_OS_INTERFERENCE_DEADLOCK: Uma tarefa no mesmo núcleo já detém o lock.
  • E_OS_NESTING_DEADLOCK: O aninhamento com outro spinlock detido é inadmissível.

TryToGetSpinlock retorna quando uma tarefa noutro núcleo ocupa o lock. Retorna então E_OK com TRYTOGETSPINLOCK_NOSUCCESS [SWS_Os_00703], [SWS_Os_00792]. Antes do término de uma tarefa e antes de WaitEvent, todos os spinlocks têm de ser libertados na ordem correta [SWS_Os_00695]. O encapsulamento com SuspendAllInterrupts ou a configuração OsSpinlockLockMethod ajudam a evitar interferências SWS OS p. 101.

ActivateTask através de fronteiras entre núcleos opera de forma síncrona. O tratador de erros executa no núcleo chamador SWS OS p. 103. Em contrapartida, ActivateTaskAsyn e SetEventAsyn não retornam erros ao chamador, mas reportam-nos apenas ao Error-Hook global [SWS_Os_00816], [SWS_Os_00817]. Ambos existem apenas em sistemas com OS-Applications [SWS_Os_00818], [SWS_Os_00819]. Se o chamador já não existir, a notificação é omitida SWS OS p. 179.

O IOC gera as suas funções por emissor e recetor:

Se o buffer estiver cheio, o emissor reporta IOC_E_LIMIT, e o recetor obtém IOC_E_LOST_DATA na leitura seguinte SWS OS p. 219. IocInit e a geração separada de código de OS e de IOC ainda têm o estado DRAFT na R20-11 [SWS_Os_00835], [SWS_Os_00831], [SWS_Os_00834].

Comportamento em caso de erro

Muitas verificações, por exemplo para E_OS_ID, ocorrem apenas no Extended Status. Os argumentos de ponteiro são aí verificados quanto a NULL_PTR e rejeitados com E_OS_ILLEGAL_ADDRESS SWS OS p. 38. Outros identificadores de erro como E_OS_PROTECTION_MEMORY e E_OS_STACKFAULT estão definidos centralmente [SWS_Os_91025]. Se um serviço não retornar E_OK, o OS chama o ErrorHook e o ErrorHook_<App> SWS OS p. 186, [SWS_Os_00540].

Em caso de erros graves, o OS chama o ProtectionHook. O respetivo ProtectionReturnType determina a reação subsequente [SWS_Os_00538], [SWS_Os_00787]. Se nenhum ProtectionHook estiver configurado, o OS chama ShutdownOS EXP ALEH p. 60. Ao terminar uma OS-Application, o OS para todos os objetos associados SWS OS p. 62:

  • todas as tarefas e ISRs,
  • as suas interrupções,
  • os seus alarmes,
  • as suas ScheduleTables.
Reação a uma violação de proteção por meio do ProtectionHookTarefa / ISR de categoria 2 da OS-Application <App>ProzessorBetriebssystemUse Case: SchutzverletzungExecução com violação de proteção«Exception»ProtectionHook(Fatalerror)altPRO_TERMINATETASKISRtérmino forçado da tarefa / da ISRPRO_TERMINATEAPPLtérmino forçado da OS-ApplicationPRO_TERMINATEAPPL_RESTARTtérmino forçado da OS-Application,Restart-Task startenPRO_IGNOREnenhuma ação adicionalPRO_SHUTDOWNShutdownOS()

Diagrama de sequência: O valor de retorno do ProtectionHook seleciona entre ignorar, terminar a tarefa/ISR, terminar a OS-Application (com ou sem reinício) e desligar. Fontes: SWS OS p. 187, [SWS_Os_00538], [SWS_Os_00787]

Uma OS-Application é APPLICATION_ACCESSIBLE, APPLICATION_RESTARTING ou APPLICATION_TERMINATED. O estado é retornado por GetApplicationState [SWS_Os_00773], [SWS_Os_00499]. TerminateApplication recebe RESTART ou NO_RESTART na R20-11 [SWS_Os_00258], [SWS_Os_00788]. Versões posteriores ignoram este parâmetro SWS OS p. 194.

No estado RESTARTING, apenas a OSRestartTask é executada; outras OS-Applications não têm acesso. Uma OS-Application só sai do estado APPLICATION_TERMINATED através de um reinício da ECU EXP ALEH p. 53. Se necessário, a OSRestartTask faz a limpeza através de CallTrustedFunction e depois liberta novamente a OS-Application com AllowAccess EXP ALEH p. 76, [SWS_Os_00501]. O código para o ProtectionHook a nível da ECU e para a tarefa de reinício é disponibilizado pelo integrador EXP ALEH p. 79.

OsApplication start Start ACC APPLICATION_ACCESSIBLE start->ACC StartOS (antes do primeiro StartupHook) RES APPLICATION_RESTARTING ACC->RES PRO_TERMINATEAPPL_RESTART ou TerminateApplication(AppID, RESTART) TER APPLICATION_TERMINATED ACC->TER PRO_TERMINATEAPPL ou TerminateApplication(AppID, NO_RESTART) RES->ACC AllowAccess() (a partir da tarefa de reinicialização) RES->TER TerminateApplication(self, NO_RESTART)

Diagrama de estados: O StartOS torna cada OS-Application acessível; reações de proteção ou TerminateApplication conduzem a RESTARTING ou TERMINATED, apenas AllowAccess conduz de volta. Fontes: EXP ALEH p. 61, [SWS_Os_00773], [SWS_Os_00501]

Evidências mais detalhadas

Guia gerado por IA com base nos requisitos e passagens de documentos contidos no payload; os requisitos da versão R20-11 são normativos, divergências de versões posteriores estão identificadas.

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

função 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).

função GetCurrentApplication [SWS_Os_00797] 📄 PDF

ApplicationType GetCurrentApplicationID (void);

This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f4173cc0ef4f Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Através do serviço de sistema CallTrustedFunction (service ID 0x02), uma OS-Application confiável ou não confiável pode chamar uma Trusted Function definida para execução [SWS_Os_00097]. A interface é disponibilizada através do cabeçalho Os.h [SWS_Os_00097].

A chamada requer a passagem de dois parâmetros de entrada [SWS_Os_00097]:

  • FunctionIndex (tipo TrustedFunctionIndexType): Designa o índice da função a ser chamada [SWS_Os_00097].
  • FunctionParams (tipo TrustedFunctionParameterRefType): Passa um ponteiro para os parâmetros da função de destino; se nenhum argumento for necessário, deve ser obrigatoriamente passado um ponteiro NULL [SWS_Os_00097].

Em relação ao comportamento temporal, a execução orienta-se pela rotina de destino: se a função chamada for síncrona, o serviço também se comportará de forma síncrona [SWS_Os_00097]. A função está implementada como reentrante, mas pode provocar um reagendamento (rescheduling) do sistema operacional durante a execução [SWS_Os_00097].

Como valor de retorno, o serviço fornece um valor de status do tipo StatusType [SWS_Os_00097]:

  • E_OK: A execução foi bem-sucedida e livre de erros [SWS_Os_00097].
  • E_OS_SERVICEID: Nenhuma função válida está atribuída ao índice passado [SWS_Os_00097].

Esta nota de uso foi gerada automaticamente com base no AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9eaf26d27eff Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função CheckISRMemoryAccess é um serviço de sistema síncrono e reentrante do módulo OS ([SWS_Os_00512]). Ela serve para verificar em tempo de execução os direitos de acesso à memória de uma ISR especificada para uma determinada região de memória.

Utilização e parâmetros

A chamada de CheckISRMemoryAccess espera três parâmetros de entrada ([SWS_Os_00512]):

  • ISRID: Referência à ISR a ser verificada (ISRType).
  • Address: Endereço inicial da região de memória a ser examinada (MemoryStartAddressType).
  • Size: Tamanho da região de memória (MemorySizeType).

Como valor de retorno, o serviço fornece o tipo AccessType. Este valor de retorno contém as permissões de acesso (leitura, escrita, execução) à região especificada e informa adicionalmente se a região de memória faz parte da área da stack ([SWS_Os_00512]).

Simultaneidade e integração

De acordo com a especificação, a função possui o Service-ID 0x03 e é declarada como reentrante ([SWS_Os_00512]). Ela está disponível através do cabeçalho Os.h ([SWS_Os_00512]). Códigos de erro específicos ou respostas explícitas a DET/DEM não são listados no presente extrato da especificação.

Esta nota de uso foi gerada automaticamente com base nos dados de especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 91d38acf9e0a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função CheckTaskMemoryAccess representa um serviço síncrono do sistema operacional, disponibilizado através do cabeçalho Os.h e possuindo o ID de serviço 0x04 [SWS_Os_00513]. Ela serve para consultar as permissões de acesso à memória de uma tarefa específica para um determinado segmento de memória [SWS_Os_00513].

Parâmetros e valores de retorno

Ao ser chamado, o serviço aceita três parâmetros de entrada [SWS_Os_00513]:

  • Task ID (do tipo TaskType): referência à tarefa cujas permissões de acesso devem ser verificadas.
  • Address (do tipo MemoryStartAddressType): o endereço inicial da região de memória a ser verificada.
  • Size (do tipo MemorySizeType): o tamanho da região de memória a ser verificada.

Como valor de retorno, o serviço fornece uma variável do tipo AccessType [SWS_Os_00513]. Esse valor de retorno contém a informação se a região de memória especificada é acessível para a tarefa com permissões de gravação, leitura ou execução, e indica adicionalmente se a região faz parte da área de pilha [SWS_Os_00513]. Códigos de erro adicionais ou mensagens DET não são especificados para este serviço.

Concorrência e interação

O serviço é especificado como reentrante e pode, portanto, ser utilizado com segurança em contextos de execução concorrentes [SWS_Os_00513]. Enquanto o CheckTaskMemoryAccess consulta as permissões para regiões de memória em tempo de execução, o padrão AUTOSAR define, em descrições de módulos ARTI, interfaces e estruturas de dados por meio das quais ferramentas de depuração podem capturar e avaliar estados e atributos de objetos do sistema operacional [SWS_Os_00829].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c7ec73500d6c Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função CheckObjectAccess ([SWS_Os_00256]) determina de forma síncrona se uma determinada OS-Application possui permissão para usar o ID de um objeto do sistema operacional em chamadas de API. Para a identificação da aplicação é utilizado o parâmetro de entrada ApplID do tipo ApplicationType ([SWS_Os_00256]). Através de ObjectType (tipo ObjectTypeType) define-se qual tipo de objeto deve ser verificado; são suportados Task, Resource, Counter, Alarm e Schedule Table ([SWS_Os_00256]). Como terceiro parâmetro, segue o próprio objeto a ser examinado por meio da lista variável de parâmetros ... ([SWS_Os_00256]).

Como valor de retorno, a função fornece o tipo ObjectAccessType: se o acesso da aplicação ao objeto for permitido, é retornado ACCESS, caso contrário NO_ACCESS ([SWS_Os_00256]). O serviço é declarado através do cabeçalho Os.h e possui o ID de serviço 0x05 ([SWS_Os_00256]).

Concorrência, tratamento de erros e interação

O serviço é especificado como reentrante e pode, portanto, ser chamado em contextos de execução concorrentes ([SWS_Os_00256]). Códigos de erro específicos, valores de retorno para estados de erro ou notificações para o DET ou DEM não estão previstos na especificação para esta função ([SWS_Os_00256]).

Interpretação: o argumento variável ... provavelmente passa, na implementação, o identificador concreto do objeto de forma compatível com ObjectType. Pergunta Q-5cb52ff94bb07826 (aberta) Os objetos do sistema operacional verificados também se refletem nas informações de depuração ARTI, que registram e avaliam atributos e estados de objetos do sistema operacional ([SWS_Os_00829]).

Esta nota de uso foi gerada automaticamente com base na especificação R20-11.

Guia do implementador em breve (complexidade I1)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 20318a993e09 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona do sistema CheckObjectOwnership serve para determinar a qual OS-Application pertence um determinado objeto do sistema operacional [SWS_Os_00017]. Entre os objetos que podem ser consultados por meio deste serviço estão Tasks, Interrupt Service Routines (ISRs), contadores, alarmes e Schedule Tables [SWS_Os_00017].

A função está disponível através do arquivo de cabeçalho Os.h e possui o ID de serviço 0x06 [SWS_Os_00017]. Ao ser utilizada, a função recebe dois parâmetros de entrada:

  • ObjectType: Como parâmetro de entrada do tipo ObjectTypeType, identifica o tipo do objeto do sistema operacional passado em seguida [SWS_Os_00017].
  • ...: Passa o objeto concreto a ser examinado para o serviço [SWS_Os_00017].

Como valor de retorno, a função fornece o tipo de dados ApplicationType [SWS_Os_00017]. Este contém o identificador da OS-Application à qual o objeto verificado está atribuído [SWS_Os_00017].

Tratamento de erros e propriedades de execução

Caso o objeto consultado não exista no sistema, o serviço retorna o valor de retorno INVALID_OSAPPLICATION [SWS_Os_00017].

Quanto ao comportamento de concorrência, o CheckObjectOwnership é especificado como reentrante e opera de forma totalmente síncrona [SWS_Os_00017]. Não existem parâmetros de entrada e saída (inout ou out) além do valor de retorno [SWS_Os_00017].

Esta nota de uso baseia-se na especificação SWS_Os_00017 do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9cbbffcaa010 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e parâmetros

O serviço de sistema StartScheduleTableRel inicia o processamento de uma schedule table relativamente ao valor atual do contador («Now») do contador subjacente [SWS_Os_00347]. A chamada é executada de forma síncrona e está disponível através da interface Os.h com o service ID 0x07 [SWS_Os_00347].

  • ScheduleTableID (entrada, ScheduleTableType): Identificador da schedule table a ser iniciada [SWS_Os_00347].
  • Offset (entrada, TickType): Número relativo de pulsos de contagem no contador antes que o processamento da tabela comece [SWS_Os_00347].

Valores de retorno e tratamento de erros

A função retorna um código de status do tipo StatusType [SWS_Os_00347]:

  • E_OK: A schedule table foi iniciada sem erros [SWS_Os_00347].
  • E_OS_STATE: A schedule table indicada já foi iniciada [SWS_Os_00347].
  • E_OS_ID (apenas no status EXTENDED): O ScheduleTableID indicado é inválido [SWS_Os_00347].
  • E_OS_VALUE (apenas no status EXTENDED): O parâmetro Offset é igual a 0 ou excede o valor (OsCounterMaxAllowedValue - InitialOffset) [SWS_Os_00347].

Simultaneidade e restrições

A função é especificada como reentrante [SWS_Os_00347]. Não existem parâmetros de saída ou de entrada/saída [SWS_Os_00347].

Esta nota de uso baseia-se na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8536dbe30f67 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante StartScheduleTableAbs serve para iniciar uma tabela de escalonamento (Schedule Table) em uma contagem absoluta predefinida no contador subjacente ([SWS_Os_00358]). O serviço está disponível através do cabeçalho Os.h e é identificado pelo Service-ID 0x08 ([SWS_Os_00358]).

Na chamada, são passados dois parâmetros de entrada ([SWS_Os_00358]):

  • ScheduleTableID: Identificador da Schedule Table a ser iniciada.
  • Start: Valor absoluto de ticks do contador no qual a Schedule Table é iniciada.

Como valor de retorno, a função fornece o status do tipo StatusType ([SWS_Os_00358]):

  • E_OK: O processo de inicialização foi bem-sucedido.
  • E_OS_STATE: A Schedule Table especificada já foi iniciada anteriormente.
  • E_OS_ID: O ScheduleTableID passado é inválido (retornado apenas no status EXTENDED).
  • E_OS_VALUE: O valor de Start excede o valor máximo permitido do contador OsCounterMaxAllowedValue (retornado apenas no status EXTENDED).

Em relação à interação mútua, o estado e os atributos dinâmicos de objetos do sistema operacional, como Schedule Tables, podem ser avaliados e exibidos por ferramentas de depuração conectadas por meio de descrições de módulo ARTI ([SWS_Os_00829]). Interpretação: O contexto de chamada deve abranger principalmente níveis de tarefa, uma vez que nenhuma restrição explícita é fornecida no extrato da especificação. Pergunta Q-213de28d0345ccb1 (aberta)

Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: acbfdebe2422 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de sistema síncrona StopScheduleTable ([SWS_Os_00006]) cancela a execução de uma schedule table em andamento imediatamente a qualquer momento do processamento. O serviço está declarado no cabeçalho Os.h e possui o service ID 0x09 ([SWS_Os_00006]). Como único parâmetro de entrada atua ScheduleTableID do tipo ScheduleTableType, o qual especifica a schedule table a ser parada; não existem parâmetros de entrada/saída ou puramente de saída ([SWS_Os_00006]).

A chamada síncrona fornece como valor de retorno um código de status do tipo StatusType ([SWS_Os_00006]):

  • E_OK: O processamento da schedule table foi parado sem erros ([SWS_Os_00006]).
  • E_OS_NOFUNC: A schedule table indicada já se encontrava no estado parado ([SWS_Os_00006]).
  • E_OS_ID: O identificador ScheduleTableID passado é inválido. Este valor de retorno só é gerado, segundo a especificação, no status EXTENDED ([SWS_Os_00006]).

A função é definida como reentrante ([SWS_Os_00006]). Interpretação: Diante da reentrância declarada, a chamada síncrona a partir de múltiplos contextos de OS deve ser permitida, embora restrições de contexto concretas estejam ausentes no presente extrato de especificação. Para o monitoramento em tempo de execução, o estado e os atributos dinâmicos de objetos do OS, como schedule tables, podem ser transmitidos através de arquivos de descrição ARTI para ferramentas de depuração e análise conectadas ([SWS_Os_00829]). Pergunta Q-9cb147c4bc7dba7e (aberta)

Nota: Esta explicação foi gerada automaticamente com base na especificação do AUTOSAR Classic Release R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: dfc067e72659 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função NextScheduleTable serve para a comutação síncrona do processamento de uma schedule table em andamento para uma schedule table seguinte [SWS_Os_00191]. O serviço é concebido como reentrante e declarado através do cabeçalho Os.h [SWS_Os_00191].

Parâmetros e chamada

À chamada são passados dois parâmetros de entrada do tipo ScheduleTableType [SWS_Os_00191]:

  • ScheduleTableID_From: Identificador da schedule table atualmente processada [SWS_Os_00191].
  • ScheduleTableID_To: Identificador da schedule table que fornece a sequência subsequente de pontos de expiração (Expiry Points) [SWS_Os_00191].

Valores de retorno e tratamento de erros

A função retorna um valor de status do tipo StatusType [SWS_Os_00191]:

  • E_OK: A solicitação de troca foi emitida sem erros [SWS_Os_00191].
  • E_OS_ID: Retornado exclusivamente com o status EXTENDED configurado, caso pelo menos um dos identificadores de tabela passados seja inválido [SWS_Os_00191].
  • E_OS_NOFUNC: A tabela de origem ScheduleTableID_From não se encontra no estado iniciado [SWS_Os_00191].
  • E_OS_STATE: A tabela de destino ScheduleTableID_To já foi iniciada ativamente ou já está agendada como tabela seguinte [SWS_Os_00191].

Interação e diagnóstico

Para observação e análise do sistema operacional, descrições de módulo ARTI suportam contêineres ORTI correspondentes, com os quais ferramentas de depuração podem, entre outras coisas, avaliar e apresentar estados dinâmicos de objetos do sistema operacional [SWS_Os_00829].

Este texto foi gerado automaticamente. Todas as informações baseiam-se exclusivamente nas especificações do release AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

This service starts an explicitly synchronized schedule table synchronously.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8edf7224d053 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

O serviço de sistema StartScheduleTableSynchron serve para iniciar de forma síncrona uma schedule table explicitamente sincronizada [SWS_Os_00201]. A função está declarada no arquivo de cabeçalho Os.h e possui o service ID 0x0b [SWS_Os_00201]. Como único parâmetro de passagem, a função espera o parâmetro de entrada ScheduleTableID do tipo ScheduleTableType, que referencia univocamente a tabela a ser iniciada [SWS_Os_00201]. Parâmetros de entrada/saída ou puramente de saída não estão presentes [SWS_Os_00201]. O processamento ocorre de forma síncrona e retorna um valor de retorno do tipo StatusType [SWS_Os_00201].

Tratamento de erros

Em caso de fluxo sem erros, a chamada de função retorna o código de status E_OK [SWS_Os_00201]. Em caso de erros, os seguintes valores de retorno são especificados:

  • E_OS_STATE: A schedule table indicada já se encontra no estado iniciado e não pode ser iniciada novamente de forma síncrona [SWS_Os_00201].
  • E_OS_ID: O ScheduleTableID passado é inválido [SWS_Os_00201]. Esta verificação de erro e notificação de erro está ativa exclusivamente no status EXTENDED [SWS_Os_00201].

Simultaneidade e restrições

A função é especificada como reentrante [SWS_Os_00201]. Como a chamada repetida para uma tabela já ativa é rejeitada com E_OS_STATE, o chamador deve assegurar que a tabela de destino já não esteja em execução antes da chamada [SWS_Os_00201].

Interação

Transições de estado e propriedades dinâmicas de objetos do sistema operacional podem ser acompanhadas para ferramentas de teste e diagnóstico através de arquivos de descrição de módulo ARTI e contêineres ORTI [SWS_Os_00829]. Depuradores externos utilizam essas descrições para avaliar o status interno dos objetos de OS em tempo de execução [SWS_Os_00829].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função SyncScheduleTable [SWS_Os_00199] 📄 PDF

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service SyncScheduleTable.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 50f85b0fc4ce Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O serviço de sistema operacional síncrono e reentrante SyncScheduleTable serve para passar um valor de contador a uma schedule table e iniciar o processo de sincronização ([SWS_Os_00199]). A função é disponibilizada através do arquivo de cabeçalho Os.h ([SWS_Os_00199]).

Parâmetros e valores de retorno

A função espera dois parâmetros de entrada ([SWS_Os_00199]):

  • Schedule Table ID: Identificador da schedule table a ser sincronizada do tipo ScheduleTableType ([SWS_Os_00199]).
  • Value: Valor de contagem atual do contador de sincronização do tipo TickType ([SWS_Os_00199]).

O valor de retorno do tipo StatusType sinaliza com E_OK a execução sem erros ([SWS_Os_00199]).

Tratamento de erros e condições de contorno

Se a tabela estiver no estado SCHEDULETABLE_STOPPED no momento da chamada, é retornado o erro E_OS_STATE ([SWS_Os_00199]). Se o sistema operacional estiver configurado no status EXTENDED, verificações adicionais entram em vigor ([SWS_Os_00199]):

  • E_OS_ID: O ID de tabela indicado é inválido ou a tabela não pode ser sincronizada porque Os Schedule Tbl Sync Strategy não está configurado ou está definido como IMPLICIT ([SWS_Os_00199]).
  • E_OS_VALUE: O valor de contador Value passado está fora da faixa permitida ([SWS_Os_00199]).

Interação e diagnóstico

Estados e atributos dinâmicos de objetos do sistema operacional, como schedule tables, podem ser avaliados por ferramentas de depuração e diagnóstico conectadas através de descrições de módulo ARTI e contêineres ORTI ([SWS_Os_00829]).

Este texto foi gerado por uma IA com base no AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função SetScheduletableAsync [SWS_Os_00422] 📄 PDF

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

This service stops synchronization of a schedule table.

função 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).

função IncrementCounter [SWS_Os_00399] 📄 PDF

StatusType IncrementCounter (CounterType CounterID);

This service increments a software counter.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 40e8148ee79f Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona de sistema operacional IncrementCounter destina-se ao avanço explícito de um contador de software [SWS_Os_00399]. Ela espera como parâmetro de entrada o identificador CounterID do tipo CounterType, não modifica outros parâmetros e está disponível através do cabeçalho Os.h [SWS_Os_00399]. Deve-se observar que a chamada pode causar um reagendamento imediato do sistema operacional [SWS_Os_00399].

Tratamento de erros

O valor de retorno do tipo StatusType fornece informações sobre o sucesso da operação: em operação regular, E_OK reporta a execução sem erros [SWS_Os_00399]. Com a verificação de status estendida ativada (status EXTENDED), o serviço retorna E_OS_ID se um ID de contador inválido tiver sido especificado ou se o contador referenciado estiver implementado em hardware e, consequentemente, não puder ser incrementado via software [SWS_Os_00399].

Concorrência e diagnóstico

A função foi projetada como reentrante e pode, portanto, ser chamada concorrentemente [SWS_Os_00399]. Um possível reagendamento provavelmente ocorre, interpretação: se o avanço do contador acionar ações dependentes, tais como expirações de alarme ou ativações de tarefas. Pergunta Q-9004b5ced9b96230 (aberta) Para a observação de objetos do sistema operacional, como contadores, bem como de seu estado dinâmico, as descrições de módulos ARTI auxiliam ferramentas de análise conectadas no monitoramento em tempo de execução [SWS_Os_00829].

Esta nota de uso foi gerada automaticamente e baseia-se nas especificações do release R20-11 do AUTOSAR.

Guia do implementador em breve (complexidade I2)

função 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).

função 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.

função TerminateApplication [SWS_Os_00258] 📄 PDF

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

Service TerminateApplication.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 2ba1bf6d0722 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante TerminateApplication serve para finalizar uma OS-Application e está disponível através do arquivo de cabeçalho Os.h [SWS_Os_00258]. A chamada é permitida a partir do contexto de uma tarefa, de uma ISR de categoria 2 bem como de um error hook específico da aplicação [SWS_Os_00258].

Como parâmetros de entrada, são passados o identificador da aplicação de destino (Application) e o comportamento de reinício (Restart Option) [SWS_Os_00258]:

  • Se o próprio chamador pertencer à aplicação indicada em Application, a execução leva a uma autoterminação [SWS_Os_00258].
  • Através de Restart Option, define-se se a OS-Application deve ser reiniciada em seguida (RESTART) ou não (NO_RESTART) [SWS_Os_00258].

A função retorna um valor de status do tipo StatusType [SWS_Os_00258]:

  • E_OK sinaliza uma finalização sem erros [SWS_Os_00258].
  • E_OS_STATE indica que o estado atual de Application não permite a finalização [SWS_Os_00258].
  • No status EXTENDED, são realizadas verificações de erro adicionais: E_OS_ID em caso de um ID de aplicação inválido, E_OS_VALUE em caso de um valor de parâmetro inválido para Restart Option, bem como E_OS_ACCESS caso falte ao chamador a permissão para finalizar Application [SWS_Os_00258].

Esta nota de uso foi gerada automaticamente com base na especificação SWS_Os_00258.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5da6dc1b3684 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

O serviço síncrono de sistema AllowAccess (ID de serviço 0x13) serve para definir o estado da própria OS-Application de APPLICATION_RESTARTING para APPLICATION_ACCESSIBLE ([SWS_Os_00501]). A função está disponível por meio do arquivo de cabeçalho Os.h, não espera parâmetros de entrada e retorna um valor de status do tipo StatusType ([SWS_Os_00501]). Em caso de execução bem-sucedida da alteração de estado, a chamada retorna o valor de retorno E_OK ([SWS_Os_00501]).

Tratamento de erros e simultaneidade

Caso a OS-Application chamadora não esteja no estado APPLICATION_RESTARTING, a execução falha e a função retorna o valor de erro E_OS_STATE ([SWS_Os_00501]). Mensagens específicas de DET ou DEM não estão definidas na especificação para este serviço. Em relação ao comportamento de concorrência, a função é classificada como reentrante e pode, portanto, ser executada com segurança em fluxos paralelos ([SWS_Os_00501]).

Interação e diagnóstico

Interpretação: a chamada provavelmente ocorre de forma típica no final de uma fase de reinício própria da aplicação, assim que todos os preparativos tiverem sido concluídos e outras aplicações puderem acessar novamente os recursos. Pergunta Q-f43a3f702d5d2428 (aberta) Os estados dinâmicos do sistema operacional e dos objetos de OS associados podem ser avaliados e visualizados no âmbito do diagnóstico do sistema através de arquivos de descrição ARTI padronizados e ferramentas de depuração correspondentes ([SWS_Os_00829]).

Este texto foi criado por uma IA e baseia-se no estado de especificação R20-11.

Guia do implementador em breve (complexidade I1)

função 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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 06b25350e939 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona StartCore inicia o núcleo de processador especificado por meio do parâmetro Core ID [SWS_Os_00676]. A função não possui valor de retorno direto, mas passa o resultado da execução ao chamador por meio do parâmetro OUT Status [SWS_Os_00676]. Se um núcleo tiver sido iniciado por meio desta função, Start OS deverá ser chamado em seguida no núcleo em questão [SWS_Os_00676].

Aplicam-se restrições estritas para o contexto de chamada e a concorrência: StartCore é especificado como não reentrante (Non Reentrant) [SWS_Os_00676]. Não há suporte para uma chamada após a inicialização do sistema operacional por meio de Start OS() [SWS_Os_00676]. O serviço é implementado de forma síncrona e é disponibilizado através do arquivo de cabeçalho Os.h com o Service-ID 0x17 [SWS_Os_00676].

O tratamento de erros ocorre por meio do parâmetro Status, que pode assumir os seguintes valores, dependendo da configuração de status [SWS_Os_00676]:

  • No status padrão (Standard Status), E_OK indica uma execução livre de erros [SWS_Os_00676].
  • No status estendido (extended status), E_OK também confirma uma inicialização bem-sucedida [SWS_Os_00676].
  • E_OS_ID relata que o Core ID passado é inválido [SWS_Os_00676].
  • E_OS_ACCESS sinaliza uma chamada inadmissível após a inicialização do sistema operacional [SWS_Os_00676].
  • E_OS_STATE indica que o núcleo de processador solicitado já está ativado [SWS_Os_00676].

Esta nota de uso foi gerada por uma IA e baseia-se exclusivamente na especificação do sistema operacional AUTOSAR Classic da release R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4541cad4d0e6 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função síncrona e não reentrante StartNonCore inicializa o núcleo de processador especificado através do parâmetro CoreID [SWS_Os_00682]. Ela pode ser chamada após o início do sistema operacional via StartOS() e está disponível através do arquivo de cabeçalho Os.h [SWS_Os_00682]. Através do parâmetro de saída Status, o chamador pode verificar se o processo de inicialização foi bem-sucedido [SWS_Os_00682].

Tratamento de erros e valores de status

A função não possui um valor de retorno direto, mas reporta o resultado da execução através do parâmetro de ponteiro Status [SWS_Os_00682]:

  • E_OK: A operação foi executada com sucesso e sem erros [SWS_Os_00682].
  • E_OS_ID: O CoreID especificado é inválido (no status padrão) [SWS_Os_00682].
  • E_OS_STATE: O núcleo de processador especificado já está ativado (no status padrão) [SWS_Os_00682].

Restrições e condições de sequência

Como interface não reentrante, StartNonCore não pode ser executada concorrentemente [SWS_Os_00682]. Além disso, aplica-se a exigência estrita de que StartOS não deve, sob hipótese alguma, ser chamado em núcleos de processador ativados por meio desta função; caso contrário, o comportamento do sistema é não especificado [SWS_Os_00682].

Esta nota de uso foi gerada de forma automatizada com base na especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: aaf2a4bc7e29 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de sistema operacional síncrona e reentrante GetSpinlock ([SWS_Os_00686]) serve para a ocupação de uma variável de spinlock por meio do parâmetro de transferência SpinlockId (tipo SpinlockIdType). Durante a execução, a função utiliza um mecanismo de polling ativo («busy waiting»), sem que seja disparado um desescalonamento da tarefa chamadora ([SWS_Os_00686]).

A função só retorna quando o bloqueio for adquirido com sucesso ou tiver ocorrido um erro. Como valor de retorno, GetSpinlock fornece o StatusType ([SWS_Os_00686]):

  • E_OK: O bloqueio foi ocupado sem erros (no status Standard e Extended).
  • E_OS_ID: O SpinlockId fornecido é inválido (apenas no status Extended).
  • E_OS_INTERFERENCE_DEADLOCK: Uma tarefa tenta ocupar o spinlock enquanto ele já está ocupado por uma tarefa no mesmo Core (apenas no status Extended).
  • E_OS_NESTING_DEADLOCK: Uma tarefa tenta solicitar o spinlock enquanto uma tarefa do mesmo Core já retém outro spinlock, o que poderia causar um deadlock (apenas no status Extended).
  • E_OS_ACCESS: O spinlock especificado não pode ser acessado (apenas no status Extended).

No âmbito do monitoramento do sistema e da análise de erros, o sistema operacional fornece informações dinâmicas de estado sobre objetos do OS, as quais, de acordo com [SWS_Os_00829], podem ser avaliadas por ferramentas de depuração através de contêineres ARTI e ORTI; presumivelmente, situações de bloqueio em spinlocks também podem ser rastreadas por esse meio. Pergunta Q-bac194d4132f6e88 (aberta)

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 3c94a21733b1 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante ReleaseSpinlock libera uma variável de spinlock previamente ocupada ([SWS_Os_00695]). A instância de spinlock a ser liberada é especificada através do parâmetro de transferência SpinlockId do tipo SpinlockIdType ([SWS_Os_00695]).

Condições de ordenação e restrições

Aplicam-se diretrizes temporais e estruturais estritas para a chamada ([SWS_Os_00695]):

  • Antes de encerrar uma tarefa, todas as variáveis de spinlock previamente ocupadas por meio de GetSpinlock() devem ser liberadas novamente ([SWS_Os_00695]).
  • Antes da chamada de WaitEvent, todos os spinlocks retidos devem ser liberados sem exceção ([SWS_Os_00695]).
  • A liberação deve ocorrer na ordem correta de aninhamento; uma tentativa de liberação com spinlocks de nível superior ou recursos ainda ocupados falha ([SWS_Os_00695]).

Valores de retorno e tratamento de erros

Em caso de sucesso, o serviço retorna E_OK tanto no status padrão quanto no estendido ([SWS_Os_00695]). No status estendido (Extended Status), códigos de erro específicos são definidos ([SWS_Os_00695]):

  • E_OS_ID: A SpinlockId passada é inválida ([SWS_Os_00695]).
  • E_OS_STATE: O spinlock não está ocupado pela tarefa chamadora ([SWS_Os_00695]).
  • E_OS_ACCESS: O spinlock não pode ser acessado ([SWS_Os_00695]).
  • E_OS_NOFUNC: Tentativa de liberar o spinlock enquanto outro spinlock ou recurso ainda precisa ser liberado previamente ([SWS_Os_00695]).

A função está disponível através do cabeçalho Os.h ([SWS_Os_00695]). Arquivos de descrição ARTI suportam contêineres ORTI para a avaliação dinâmica de estado e desempenho de objetos do sistema operacional ([SWS_Os_00829]).

Este texto foi criado por uma IA e curado pelo autodocs.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 1d98a899f332 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de sistema operacional síncrona e reentrante TryToGetSpinlock serve para a ocupação não bloqueante de uma instância de spinlock através do cabeçalho Os.h [SWS_Os_00703]. Ela assume a mesma funcionalidade básica que GetSpinlock, mas não espera ativamente se o spinlock solicitado já estiver ocupado por uma TASK em outro Core [SWS_Os_00703].

Parâmetros e valores de retorno

  • SpinlockId (entrada): Referencia a instância concreta de spinlock que deve ser bloqueada [SWS_Os_00703].
  • Success (saída): Indica através do tipo TryToGetSpinlockType* se o lock pôde ser ocupado ou não [SWS_Os_00703]. Se o bloqueio estiver ocupado em outro Core, a função define este parâmetro adequadamente e retorna com E_OK [SWS_Os_00703].
  • Valor de retorno: Fornece E_OK no status Standard e Extended se não houver erro [SWS_Os_00703].

Tratamento de erros e condições de contorno

No status Extended, o sistema operacional verifica chamadas inválidas, bem como cenários de deadlock [SWS_Os_00703]:

  • E_OS_ID: O SpinlockId passado é inválido [SWS_Os_00703].
  • E_OS_ACCESS: O spinlock não pode ser acessado [SWS_Os_00703].
  • E_OS_INTERFERENCE_DEADLOCK: Uma TASK tenta ocupar o bloqueio enquanto o mesmo bloqueio já é retido por uma TASK no mesmo Core [SWS_Os_00703].
  • E_OS_NESTING_DEADLOCK: Uma TASK tenta ocupar um spinlock enquanto já retém outro spinlock, o que poderia levar a um deadlock [SWS_Os_00703].

Esta nota de uso foi gerada automaticamente por um sistema de IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 751c4aeab334 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona de sistema ShutdownAllCores com o ID de serviço 0x1c serve para o desligamento controlado e completo do sistema operacional AUTOSAR em todos os núcleos de processador existentes ([SWS_Os_00713]). Assim que o serviço é chamado, a função força um shutdown em todos os outros Cores, de modo que o sistema operacional seja desligado em todos os núcleos AUTOSAR ([SWS_Os_00713]).

Contexto de chamada e concorrência

A função está declarada no cabeçalho Os.h e é especificada como reentrante ([SWS_Os_00713]). A chamada de ShutdownAllCores é irrestritamente permitida tanto no nível de tarefa (TASK level) quanto no nível de interrupção (ISR level) ([SWS_Os_00713]). Além disso, o serviço também pode ser executado internamente ao sistema operacional diretamente pelo AUTOSAR OS ([SWS_Os_00713]).

Parâmetros e fluxo de controle

A interface espera como único parâmetro de entrada Error do tipo StatusType ([SWS_Os_00713]). Para este parâmetro, deve obrigatoriamente ser passado um código de erro válido, suportado pelo sistema operacional AUTOSAR ([SWS_Os_00713]). Não existem parâmetros de saída ou de entrada/saída ([SWS_Os_00713]). Como a função nunca retorna ao chamador após disparar o shutdown em todo o sistema, ela não possui valor de retorno (void) ([SWS_Os_00713]).

Esta nota de utilização foi gerada automaticamente com base na especificação de AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 33a045f6c446 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona ControlIdle permite que o chamador defina a ação que é executada durante o tempo ocioso do sistema operacional (quando nem uma tarefa nem uma ISR está ativa) [SWS_Os_00769]. Isso serve primariamente para a implementação de medidas de economia de energia. Os modos ociosos reais são dependentes de hardware e não padronizados; o modo padrão em cada núcleo de processador é IDLE_NO_HALT [SWS_Os_00769]. A interface é disponibilizada através do arquivo de cabeçalho Os.h [SWS_Os_00769].

A função espera dois parâmetros de entrada:

  • CoreID (do tipo CoreIdType): Seleciona o núcleo de processador cujo modo ocioso deve ser definido [SWS_Os_00769].
  • IdleMode (do tipo IdleModeType): Determina o modo que deve ser executado no tempo ocioso [SWS_Os_00769].

Se parâmetros válidos foram transmitidos e nenhum erro ocorreu, a função retorna E_OK [SWS_Os_00769], [SWS_Os_00770]. Se o CoreID ou IdleMode especificado for inválido – por exemplo, porque o núcleo referenciado não existe ou o modo é desconhecido –, a chamada no status EXTENDED retorna o código de erro E_OS_ID [SWS_Os_00769], [SWS_Os_00771]. Em sistemas de núcleo único (single-core), a verificação do parâmetro CoreID é omitida [SWS_Os_00771].

Em relação à concorrência, a função é especificada como não reentrante (Non Reentrant) [SWS_Os_00769]. Interpretação: Os chamadores devem, portanto, assegurar que as chamadas de ControlIdle não ocorram simultaneamente ou de forma não coordenada a partir de diferentes contextos de execução. Pergunta Q-7f239cb54752e826 (aberta)

Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função ReadPeripheral [SWS_Os_91013] 📄 PDF

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

This service returns the content of a given memory location (

).
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 00b6c6a1dbf2 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função ReadPeripheral (constando na declaração como ReadPeripheral8) serve para a leitura síncrona de um endereço de memória dentro de uma área de periféricos de hardware definida [SWS_Os_91013]. A interface está disponível através do arquivo de cabeçalho Os.h [SWS_Os_91013]. Como parâmetros de entrada, o serviço espera a referência de área Area do tipo AreaIdType bem como o endereço de destino Address como ponteiro para const uint8 [SWS_Os_91013]. O conteúdo lido da posição de memória é disponibilizado através do parâmetro de saída ReadValue [SWS_Os_91013].

Tratamento de erros

O serviço retorna um código de status do tipo StatusType, em que E_OK indica a execução sem erros [SWS_Os_91013]. Com a verificação de status estendido ativada (EXTENDED status), chamadas errôneas são diferenciadas com base em valores de erro específicos [SWS_Os_91013]:

  • E_OS_ID: O identificador de área passado Area está fora da faixa válida [SWS_Os_91013].
  • E_OS_VALUE: O endereço de memória indicado Address não pertence à área de periféricos indicada [SWS_Os_91013].
  • E_OS_CALLEVEL: A chamada ocorreu a partir de um contexto inadmissível [SWS_Os_91013].
  • E_OS_ACCESS: A tarefa chamadora ou ISR não deve dispor da permissão necessária para o acesso à área (interpretação) [SWS_Os_91013]. Pergunta Q-19e2c22110352ebb (aberta)

Simultaneidade e restrições

O serviço de API possui o ID de serviço 0x28, opera de forma síncrona e foi concebido como reentrante [SWS_Os_91013]. As chamadas são permitidas apenas a partir de contextos admissíveis de tarefa ou ISR; chamadas inadmissíveis são rejeitadas no status estendido com E_OS_CALLEVEL [SWS_Os_91013].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função ReadPeripheral16 [SWS_Os_91015] 📄 PDF

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

This service returns the content of a given memory location (

).
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5ae7289a82af Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante do sistema operacional ReadPeripheral16 serve para ler o valor de 16 bits de um endereço de memória especificado dentro de uma área de periféricos definida [SWS_Os_91015]. O serviço do sistema é definido sob o ID de serviço 0x29 e está disponível através do arquivo de cabeçalho Os.h [SWS_Os_91015].

Utilização e parâmetros

Ao serviço são passados como parâmetros de entrada a referência à área de periféricos de hardware (Area do tipo AreaIdType) bem como o endereço de destino na memória (Address do tipo const uint16*) [SWS_Os_91015]. Através do parâmetro de saída Read Value do tipo de ponteiro uint16*, é disponibilizado o conteúdo de 16 bits determinado no endereço de memória [SWS_Os_91015]. Em caso de execução sem erros, a função retorna o valor de retorno E_OK do tipo StatusType [SWS_Os_91015].

Tratamento de erros e restrições de acesso

No status estendido (EXTENDED status), o sistema operacional verifica a validade da chamada e reporta erros através de códigos de status específicos [SWS_Os_91015]:

  • E_OS_ID: O identificador de área passado Area está fora da faixa válida [SWS_Os_91015].
  • E_OS_VALUE: O endereço de memória indicado Address não pertence à área de periféricos especificada Area [SWS_Os_91015].
  • E_OS_CALLEVEL: A chamada ocorreu em um contexto inadmissível para a função de API [SWS_Os_91015].
  • E_OS_ACCESS: A tarefa chamadora ou a rotina de serviço de interrupção (ISR) não está autorizada a acessar a área indicada [SWS_Os_91015].

Esta nota de uso foi gerada automaticamente e baseia-se exclusivamente nas diretrizes da especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função ReadPeripheral32 [SWS_Os_91014] 📄 PDF

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

This service returns the content of a given memory location (

).
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a9f5d6c77f15 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona e reentrante ReadPeripheral32 lê o conteúdo de um endereço de memória especificado ([SWS_Os_91014]). O chamador passa a referência para a área de periféricos de hardware através do parâmetro Area e o endereço de memória desejado através de Address ([SWS_Os_91014]). O valor de 32 bits lido neste endereço é disponibilizado de forma síncrona através do parâmetro de saída ReadValue ([SWS_Os_91014]). A interface é disponibilizada através do cabeçalho Os.h ([SWS_Os_91014]).

Tratamento de erros

O serviço retorna um valor de status do tipo StatusType. Em caso de execução sem erros, ele fornece E_OK ([SWS_Os_91014]). Se o status estendido estiver configurado (EXTENDED status), são retornados os seguintes códigos de erro ([SWS_Os_91014]):

  • E_OS_ID: O identificador de área passado Area está fora da faixa permitida ([SWS_Os_91014]).
  • E_OS_VALUE: O endereço indicado Address não pertence à área indicada Area ([SWS_Os_91014]).
  • E_OS_CALLEVEL: A função foi chamada em um contexto de chamada inadmissível ([SWS_Os_91014]).
  • E_OS_ACCESS: A tarefa chamadora ou a ISR chamadora não dispõe da permissão de acesso necessária; segundo interpretação, isso deve referir-se à área de periféricos ([SWS_Os_91014]). Pergunta Q-e5893b29acc5133a (aberta)

Simultaneidade e restrições

ReadPeripheral32 está especificada como reentrante e pode ser chamada em paralelo por múltiplos fluxos de controle ([SWS_Os_91014]). Como o serviço opera de forma síncrona, a chamada retorna somente após a conclusão do procedimento de leitura ([SWS_Os_91014]). Os chamadores devem passar ponteiros de memória válidos e assegurar que a chamada ocorra a partir de um contexto permitido para a API de OS ([SWS_Os_91014]).

Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release R20-11.

Guia do implementador em breve (complexidade I1)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4e0ec4ae51d7 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função WritePeripheral (também designada na especificação como Write Peripheral8) é um serviço síncrono e reentrante do sistema operacional para escrever um valor em um endereço de memória especificado de uma área de periféricos [SWS_Os_91010]. A declaração é disponibilizada através do arquivo de cabeçalho Os.h [SWS_Os_91010]. A chamada espera como parâmetros a referência à área de periféricos de hardware (Area do tipo AreaIdType), o endereço de memória (Address do tipo uint8*) bem como o valor a ser escrito (Write Value do tipo uint8) [SWS_Os_91010]. Interpretação: Embora Write Value esteja listado em formato tabular sob os parâmetros de saída no texto da especificação, com base na passagem de valor na assinatura e na descrição, deve tratar-se do valor de entrada a ser escrito. Pergunta Q-619c69ba7a85ed92 (aberta)

Tratamento de erros

A função retorna um estado do tipo StatusType [SWS_Os_91010]:

  • E_OK: A operação de escrita foi realizada sem erros [SWS_Os_91010].
  • E_OS_ID: O ID de área passado está fora da faixa válida (no status estendido) [SWS_Os_91010].
  • E_OS_VALUE: O endereço de destino não pertence à área especificada (no status estendido) [SWS_Os_91010].
  • E_OS_CALLEVEL: Contexto de chamada inadmissível da função de API (no status estendido) [SWS_Os_91010].
  • E_OS_ACCESS: A tarefa chamadora ou ISR não possui permissão de acesso para a área [SWS_Os_91010].

Simultaneidade e restrições

A chamada é processada de forma síncrona e é reentrante [SWS_Os_91010]. Os chamadores devem garantir que a tarefa ou ISR executora atue a partir de um contexto válido e disponha dos direitos de acesso necessários para a área de periféricos endereçada [SWS_Os_91010].

Este texto foi gerado automaticamente. Todas as informações baseiam-se nas especificações AUTOSAR referenciadas.

Guia do implementador em breve (complexidade I1)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4e4afea6b230 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de sistema operacional síncrona e reentrante WritePeripheral16 ([SWS_Os_91012]) serve para escrever um valor de 16 bits em um endereço de memória de uma área de periféricos. O serviço é disponibilizado através do cabeçalho Os.h e possui o ID de serviço 0x2c.

Utilização e parâmetros

Ao chamar WritePeripheral16, o chamador passa o identificador da área de hardware de destino (Area do tipo AreaIdType), o endereço de destino (Address do tipo uint16*), bem como o valor a ser escrito (Write Value do tipo uint16, que, apesar da indicação tabular como parâmetro Out na assinatura, presumivelmente serve como passagem por valor) conforme [SWS_Os_91012]. Pergunta Q-2edc50ae2e7fd0b0 (aberta) O serviço é executado de forma síncrona e retorna um valor de status do tipo StatusType.

Tratamento de erros

Em caso de sucesso, a função retorna E_OK. Sob o status EXTENDED, estão especificados os seguintes códigos de erro ([SWS_Os_91012]):

  • E_OS_ID: O identificador de área passado (Area) está fora da faixa válida.
  • E_OS_VALUE: O endereço de destino (Address) não pertence à área de periféricos indicada.
  • E_OS_CALLEVEL: A função foi chamada a partir de um contexto inadmissível.
  • E_OS_ACCESS: A tarefa chamadora ou ISR presumivelmente não possui permissão para o acesso à área indicada. Pergunta (aberta)

Restrições e interação

A função é reentrante ([SWS_Os_91012]), exigindo, contudo, o cumprimento do contexto de chamada permitido (tarefa ou ISR) para evitar condições de erro como E_OS_CALLEVEL. Para o monitoramento e a análise de objetos do sistema operacional, o AUTOSAR prevê a disponibilização de arquivos de descrição ARTI ([SWS_Os_00829]).

Esta nota de uso foi gerada automaticamente e baseia-se exclusivamente nos dados de especificação da release AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função WritePeripheral32 [SWS_Os_91011] 📄 PDF

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

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a189c9cd92b9 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante WritePeripheral32 do módulo Os serve para escrever um valor de 32 bits em um endereço de memória especificado de uma área de periféricos [SWS_Os_91011]. O serviço está disponível através do cabeçalho Os.h e possui o ID de serviço 0x2d [SWS_Os_91011].

Parâmetros e chamada

Para a execução do acesso de escrita, a função requer três parâmetros de transferência [SWS_Os_91011]:

  • Area (AreaIdType): Referência à área de periféricos de hardware de destino [SWS_Os_91011].
  • Address (uint32*): Endereço de memória no qual o valor deve ser escrito [SWS_Os_91011].
  • Write Value (uint32): O valor concreto de 32 bits que é transmitido para o endereço de destino [SWS_Os_91011].

Valores de retorno e tratamento de erros

A chamada retorna um valor de status do tipo StatusType [SWS_Os_91011]. Em caso de sucesso, é reportado E_OK [SWS_Os_91011]. Com o status EXTENDED ativo, E_OS_ID sinaliza um ID de área inválido, E_OS_VALUE um endereço que não pertence à área e E_OS_CALLEVEL um contexto de chamada inadmissível [SWS_Os_91011]. Caso a tarefa chamadora ou a ISR não possua permissão de acesso para a área, é retornado E_OS_ACCESS [SWS_Os_91011].

simultaneidade

Como WritePeripheral32 é reentrante, o serviço pode ser utilizado em contextos de execução concorrentes, desde que o respectivo chamador disponha da permissão de acesso necessária em tempo de execução [SWS_Os_91011].

Esta nota de utilização foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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: *

= ((*
& ) | )

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 031e78e21a3e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função de sistema operacional síncrona e reentrante ModifyPeripheral8 ([SWS_Os_91016]) modifica um byte em um endereço de memória indicado Address. Com isso, o conteúdo de memória existente é atualizado bit a bit através da máscara Clearmask por operação E, bem como através da máscara Setmask por operação OU, de acordo com a fórmula *Address = ((*Address & Clearmask) | Setmask) ([SWS_Os_91016]). Como parâmetros de entrada, a função espera a referência da área de periféricos Area do tipo AreaIdType, o endereço de destino Address (tipo uint8*), bem como os dois valores de máscara do tipo uint8. A função é disponibilizada através do arquivo de cabeçalho Os.h e possui o ID de serviço 0x2e ([SWS_Os_91016]).

Tratamento de erros e valores de retorno

O valor de retorno do tipo StatusType sinaliza o sucesso da operação com E_OK ([SWS_Os_91016]). Com o status Extended ativado, podem ocorrer condições de erro específicas:

  • E_OS_ID: O identificador de área passado Area está fora da faixa permitida ([SWS_Os_91016]).
  • E_OS_VALUE: O endereço de destino Address não pertence à área indicada Area ([SWS_Os_91016]).
  • E_OS_CALLEVEL: O serviço foi chamado em um contexto de chamada inadmissível ([SWS_Os_91016]).
  • E_OS_ACCESS: A tarefa chamadora ou a ISR não possui permissão de acesso para a área de destino ([SWS_Os_91016]).

Simultaneidade e condições de chamada

Como ModifyPeripheral8 está especificada como reentrante, a chamada pode ocorrer com segurança em processos paralelos ([SWS_Os_91016]). Os chamadores devem assegurar que tanto o contexto quanto os direitos de acesso para Area e Address sejam válidos, a fim de evitar condições de erro ([SWS_Os_91016]).

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função 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: *

= ((*
& ) | )

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f22ffe272912 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante ModifyPeripheral16 modifica uma posição de memória de 16 bits dentro de uma área de periféricos definida de acordo com a fórmula de cálculo *Address = ((*Address & Clearmask) | Setmask) [SWS_Os_91018]. Como parâmetros, são passados a referência da área de periféricos Area (tipo AreaIdType), o endereço de destino Address (tipo uint16*), bem como as máscaras de bits Clearmask para um E bit a bit e Setmask para um OU bit a bit [SWS_Os_91018]. A declaração está disponível através do cabeçalho Os.h [SWS_Os_91018].

No caso regular de sucesso, o serviço fornece o valor de retorno E_OK [SWS_Os_91018]. Com a verificação de status estendido ativada (EXTENDED status), chamadas com erro são reconhecidas e rejeitadas com base em códigos de erro específicos [SWS_Os_91018]:

  • E_OS_ID: O identificador de área passado Area está fora da faixa de valores válida [SWS_Os_91018].
  • E_OS_VALUE: O endereço de memória passado Address não pertence à área indicada Area [SWS_Os_91018].
  • E_OS_CALLEVEL: O serviço foi chamado a partir de um contexto inadmissível [SWS_Os_91018].
  • E_OS_ACCESS: A tarefa chamadora ou a ISR chamadora não possui permissão de acesso para a área especificada [SWS_Os_91018].

Os chamadores devem garantir, antes da execução, que tanto o contexto quanto as permissões para a área referenciada estejam presentes, a fim de evitar violações de acesso [SWS_Os_91018].

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função 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: *

= ((*
& ) | )

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c9ed5f9b2fff Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante do sistema operacional ModifyPeripheral32 serve, de acordo com [SWS_Os_91017], para a manipulação bit a bit direcionada de um endereço de memória de 32 bits. Disponibilizada através da interface Os.h, a função aplica à área de endereço de destino Address a fórmula de cálculo fixa *Address = ((*Address & Clearmask) | Setmask). Aqui, primeiro são redefinidos bits por operação E através da máscara de bits Clearmask e, em seguida, definidos por operação OU através de Setmask.

Como parâmetros de entrada, o serviço espera a referência da área de periféricos Area, o ponteiro de endereço Address bem como as duas máscaras de 32 bits [SWS_Os_91017]. Em caso de execução sem erros, é retornado o código de status E_OK. No status estendido (EXTENDED status), a função realiza verificações de plausibilidade e reporta os seguintes códigos de erro:

  • E_OS_ID: O Area passado está fora da faixa de valores permitida [SWS_Os_91017].
  • E_OS_VALUE: O endereço de destino não pertence à área de periféricos indicada [SWS_Os_91017].
  • E_OS_CALLEVEL: A função foi chamada a partir de um contexto não permitido [SWS_Os_91017].
  • E_OS_ACCESS: A tarefa chamadora ou ISR não possui permissão para o acesso [SWS_Os_91017] (interpretação: falta de permissão de acesso à área de periféricos). Pergunta Q-b4d959765dc59c72 (aberta)

Chamadas concorrentes são permitidas graças à reentrância, desde que o contexto de chamada seja mantido [SWS_Os_91017]. No sistema geral, esta modificação direta de registradores difere de fórmulas de cálculo para a determinação dinâmica de dados, avaliadas, por exemplo, no âmbito de informações de depuração ARTI de acordo com [SWS_Os_00829].

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função EnableInterruptSource [SWS_Os_91020] 📄 PDF

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

Service EnableInterruptSource.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0e3279bf544b Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de sistema síncrona e reentrante EnableInterruptSource ativa uma fonte de interrupção por meio da modificação dos registradores do controlador de interrupções [SWS_Os_91020], [SWS_Os_00811]. O sistema operacional disponibiliza este serviço para cada fonte de interrupção de categoria 2 configurada [SWS_Os_00808].

Parâmetros e chamada

Por meio do parâmetro ISRID, é passado o identificador da ISR de categoria 2 [SWS_Os_91020]. O parâmetro booleano ClearPending determina se uma flag de interrupção pendente deve ser limpa durante a ativação (TRUE) ou se permanece inalterada (FALSE) [SWS_Os_91020], [SWS_Os_00811]. A função está disponível por meio do arquivo de cabeçalho Os.h [SWS_Os_91020].

Tratamento de erros e valores de retorno

Se nenhum erro for detectado, a chamada retorna E_OK [SWS_Os_91020], [SWS_Os_00810]. Caso o sistema operacional identifique um erro, ele retorna o respectivo código de status do tipo StatusType e chama o ErrorHook() [SWS_Os_00810]. Estão definidos os seguintes estados de erro:

  • E_OS_ID: o parâmetro ISRID não é um identificador válido de uma ISR de categoria 2 (no status EXTENDED) [SWS_Os_91020].
  • E_OS_CALLEVEL: a função foi chamada a partir de um contexto de chamada inadmissível (no status EXTENDED) [SWS_Os_91020].
  • E_OS_ACCESS: a aplicação chamadora não é proprietária do ISRID indicado no âmbito da Service Protection [SWS_Os_91020].

Interação

Juntamente com DisableInterruptSource e ClearPendingInterrupt, a função compõe o trio de APIs para o controle direcionado de fontes individuais de interrupção de categoria 2 (OsIsrCategory == CATEGORY_2) no sistema operacional [SWS_Os_00808], [SWS_Os_00810].

Este texto foi gerado automaticamente com base nas especificações do Release R20-11.

Guia do implementador em breve (complexidade I2)

função DisableInterruptSource [SWS_Os_91019] 📄 PDF

StatusType DisableInterruptSource (ISRType ISRID);

Disables the interrupt source by modifying the interrupt controller registers.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c278819b07d9 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona e reentrante DisableInterruptSource desativa uma fonte de interrupção específica diretamente por meio dos registradores do controlador de interrupções [SWS_Os_91019], [SWS_Os_00812]. Ela está disponível por meio do arquivo de cabeçalho Os.h e é disponibilizada para cada fonte de interrupção da categoria 2 (OsIsrCategory == CATEGORY_2) [SWS_Os_91019], [SWS_Os_00808]. O identificador da respectiva ISR (ISRID) é passado como parâmetro. Em caso de execução bem-sucedida, o serviço retorna E_OK [SWS_Os_91019], [SWS_Os_00810].

Tratamento de erros

Se o sistema operacional detectar um erro durante a execução, o respectivo StatusType é retornado e o ErrorHook() é chamado [SWS_Os_00810]. Os códigos de erro possíveis são:

  • E_OS_ID: o ISRID passado não é um identificador válido de uma ISR de categoria 2 (no status EXTENDED) [SWS_Os_91019].
  • E_OS_CALLEVEL: contexto de chamada inadmissível da função de API (no status EXTENDED) [SWS_Os_91019].
  • E_OS_ACCESS: a OS-Application chamadora não é proprietária da ISR indicada (Service Protection) [SWS_Os_91019].
  • E_OS_NOFUNC: a fonte de interrupção solicitada já está desativada (no status EXTENDED em caso de chamadas aninhadas) [SWS_Os_00809].

Interação e condições de contorno

Juntamente com EnableInterruptSource e ClearPendingInterrupt, a função compõe o trio de APIs para o controle de fontes de interrupção de categoria 2 [SWS_Os_00808]. Chamadas concorrentes ou repetidas são protegidas no status estendido pelo retorno de E_OS_NOFUNC, mantendo controláveis as desativações redundantes [SWS_Os_00809]. Além disso, os chamadores precisam possuir os direitos de acesso adequados para evitar erros de tempo de execução decorrentes da Service Protection [SWS_Os_91019].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função ClearPendingInterrupt [SWS_Os_91021] 📄 PDF

StatusType ClearPendingInterrupt (ISRType ISRID);

Service ClearPendingInterrupt.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: bf5abba4980e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função ClearPendingInterrupt serve para redefinir uma interrupção pendente para fontes da categoria 2 [SWS_Os_00808]. Ela recebe como único parâmetro de entrada o identificador ISRID de uma ISR de categoria 2 e modifica diretamente os registradores associados do controlador de interrupções [SWS_Os_91021], [SWS_Os_00813]. A chamada é processada de forma síncrona e está disponível por meio do arquivo de cabeçalho Os.h [SWS_Os_91021].

Tratamento de erros e valores de retorno

No caso livre de erros, é retornado o código de status E_OK [SWS_Os_91021]. Se o sistema operacional detectar um erro durante a execução, o serviço retorna o respectivo código de erro do tipo StatusType e chama obrigatoriamente o ErrorHook() [SWS_Os_00810]. Estão especificados os seguintes estados de erro para a interface [SWS_Os_91021]:

  • E_OS_ID: o parâmetro ISRID passado não é um identificador válido de uma ISR de categoria 2 (retornado no status EXTENDED) [SWS_Os_91021].
  • E_OS_CALLEVEL: a função foi chamada a partir de um contexto de chamada inadmissível (retornado no status EXTENDED) [SWS_Os_91021].
  • E_OS_ACCESS: a aplicação chamadora não está autorizada como proprietária da ISR passada no âmbito da Service Protection [SWS_Os_91021].

Concorrência e interação no sistema operacional

A interface é definida como reentrante e, portanto, pode ser chamada concorrentemente de forma segura [SWS_Os_91021]. O sistema operacional disponibiliza ClearPendingInterrupt para cada fonte de interrupção de categoria 2 (OsIsrCategory == CATEGORY_2) como parte integrante das APIs de controle, às quais também pertencem DisableInterruptSource e EnableInterruptSource [SWS_Os_00808].

Este texto foi gerado por uma IA com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6cc8f60dfafe Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função ActivateTaskAsyn (ID de serviço 0x33) representa a variante assíncrona para ativação de tarefas e é disponibilizada através do arquivo de cabeçalho Os.h ([SWS_Os_91022]). Ela é prevista primariamente para a ativação de tarefas entre núcleos em sistemas multicore ([SWS_Os_91022]).

Como único parâmetro de entrada, é passado id do tipo TaskType, o qual especifica a tarefa a ser ativada ([SWS_Os_91022]). A interface não possui valor de retorno (void) e não define parâmetros de entrada/saída nem parâmetros puramente de saída ([SWS_Os_91022]).

Eventuais erros na ativação não são retornados ao chamador ([SWS_Os_91022], [SWS_Os_00816]). Em vez disso, erros ocorridos são reportados exclusivamente através do Error-Hook global, caso um tenha sido configurado ([SWS_Os_00816]).

Em relação à concorrência, a função é reentrante e opera de forma totalmente assíncrona ([SWS_Os_91022]), de modo que o contexto chamador não bloqueia aguardando a execução. O sistema operacional é obrigado a fornecer esta interface de acordo com [SWS_Os_00816].

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

função Ioc [SWS_Os_91026] 📄 PDF

void IocInit (void);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 50632b8f91d3 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e funcionamento

A função Ioc Init (designada como rascunho na Release R20-11) inicializa as estruturas de dados internas da Inter-OS-Application Communication (IOC) [SWS_Os_91026]. A chamada ocorre de forma síncrona, não aceita parâmetros de transferência e não possui valor de retorno [SWS_Os_91026]. Se o gerador do sistema operacional for executado no "IOC mode", ele gera exclusivamente o código de IOC no arquivo de origem Ioc.c e declara as interfaces associadas no arquivo de cabeçalho Ioc.h [SWS_Os_00834], através do qual também Ioc Init é disponibilizado [SWS_Os_91026].

Tratamento de erros e simultaneidade

Para Ioc Init, não estão previstos na especificação nem valores de retorno de erro específicos nem mensagens de erro para DET ou DEM [SWS_Os_91026]. O serviço é explicitamente definido como não reentrante (Non Reentrant) [SWS_Os_91026]. Interpretação: Devido à falta de reentrância e à tarefa de inicialização, o serviço deve ter de ser chamado sequencialmente durante a fase de inicialização do sistema, antes que ocorram acessos concorrentes de comunicação. Pergunta Q-47f99a4725b57c89 (aberta)

Interação com funções de comunicação IOC

A inicialização correta das estruturas de dados constitui o pré-requisito para o uso das interfaces de comunicação IOC geradas:

  • Envio e escrita: Emissores transmitem dados de forma assíncrona através de serviços de valor único como Ioc Send [SWS_Os_00718] e Ioc Write [SWS_Os_91003] ou funções de grupo como Ioc Send Group [SWS_Os_00728] e Ioc Write Group [SWS_Os_91004].
  • Recepção e leitura: Receptores obtêm dados de forma síncrona através de Ioc Receive [SWS_Os_00738], Ioc Read [SWS_Os_91005] ou serviços de grupo correspondentes [SWS_Os_00746] [SWS_Os_91006].
  • Gerenciamento de fila e notificação: Com a comunicação em buffer configurada, o conteúdo de uma fila interna pode ser esvaziado de forma síncrona com Ioc Empty Queue [SWS_Os_00754]. Adicionalmente, na recepção de dados, um callback de receptor configurado <Receiver Pull CB> pode ser executado no núcleo de destino [SWS_Os_00757].

Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release R20-11.

Guia do implementador em breve (complexidade I1)

função <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."

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fe12c77b2732 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de callback <Receiver Pull CB> pode ser configurada opcionalmente para o receptor de uma comunicação e é declarada através do cabeçalho Os.h [SWS_Os_00757]. Se este callback estiver configurado, o IOC (Inter-OS-Application Communicator) chama a função no Core receptor de forma síncrona a cada recepção de dados [SWS_Os_00757]. O identificador concreto da função de callback é definido no lado do receptor por meio do atributo de configuração OsIocReceiverPullCB [SWS_Os_00757].

Para a chamada e as propriedades da interface, aplicam-se as seguintes diretrizes:

  • Assinatura e parâmetros: A função possui o protótipo void <Receiver Pull CB> ( void ); ela não recebe parâmetros (nem de entrada, passagem ou saída) e não fornece valor de retorno [SWS_Os_00757].
  • Sincronismo e reentrância: A chamada pelo IOC ocorre com semântica síncrona diretamente no Core receptor [SWS_Os_00757]. Além disso, a função de callback é especificada como reentrante [SWS_Os_00757].
  • Tratamento de erros: A especificação não prevê valores de retorno, nem códigos de erro específicos ou notificações de erro para esta função [SWS_Os_00757].

Como a assinatura não transfere nenhum dado útil, a chamada deve servir primariamente como um sinal de notificação para informar o receptor sobre a chegada de novos dados e disparar a subsequente busca dos dados úteis. Pergunta Q-2365bb46ad77a476 (aberta) Os desenvolvedores devem observar que a execução ocorre de forma síncrona no Core receptor [SWS_Os_00757].

Este texto foi criado por uma IA e baseia-se na especificação AUTOSAR CP R20-11.

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 85982be9edad Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função ProtectionHook serve como callback central do sistema operacional e é chamada de forma síncrona sempre que ocorre um erro grave [SWS_Os_00538]. Como cenários típicos de erro, a especificação cita explicitamente o estouro do pior tempo de execução (Worst Case Execution Time), bem como violações de proteção de memória [SWS_Os_00538]. A declaração da interface é fornecida através do cabeçalho Os_Externals.h [SWS_Os_00538].

Como parâmetro de entrada, a rotina recebe Fatalerror do tipo StatusType, que transmite a causa que disparou a chamada do hook [SWS_Os_00538]. Parâmetros de entrada/saída adicionais ou parâmetros puramente de saída não estão definidos na assinatura [SWS_Os_00538].

Por meio do valor de retorno do tipo ProtectionReturnType, ProtectionHook define de forma vinculativa qual ação o sistema operacional deve iniciar após a execução do hook para o tratamento posterior de erros [SWS_Os_00538]. As seguintes ações estão disponíveis como valores de retorno [SWS_Os_00538]:

Em termos de concorrência e comportamento de execução, ProtectionHook é especificado como reentrante e síncrono [SWS_Os_00538]. A chamada ocorre imediatamente na ocorrência do erro grave, após o que o sistema operacional executa a ação definida [SWS_Os_00538].

Este texto foi gerado por uma IA com base na especificação.

Guia do implementador em breve (complexidade I2)

tipo AppModeType [SWS_Os_91007] 📄 PDF

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e91976813761 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo de enumeração AppModeType é definido no arquivo de cabeçalho Os.h e serve para a definição do modo de aplicação no sistema operacional [SWS_Os_91007]. Em sistemas multicore, este tipo permite que o modo de aplicação de um núcleo de processador seja herdado de outro Core [SWS_Os_91007].

Para a faixa de valores, está especificado o valor DONOTCARE [SWS_Os_91007]. Interpretação: Este valor deve servir para configurar explicitamente um Core de forma a não iniciar um modo independente, mas sim assumir o comportamento do Core de nível superior. Pergunta Q-2b7d9f1c8e5f1a3f (aberta) Não estão definidos códigos de erro ou valores de retorno específicos para o próprio tipo.

No que diz respeito ao diagnóstico e ao estado do sistema, a interação com ferramentas de análise é relevante. Conforme [SWS_Os_00829], o arquivo de descrição de módulo ARTI deve suportar todos os contêineres ORTI para permitir que ferramentas de depuração conectadas avaliem e exibam informações sobre o sistema operacional e seus objetos. As informações de depuração ARTI fornecem atributos dinâmicos que são resolvidos por meio de fórmulas [SWS_Os_00829]. Interpretação: O estado do modo de aplicação deve, portanto, ser mapeado e lido no nível de ferramenta através dos atributos de objeto ARTI correspondentes. Pergunta Q-410d011cbcf1b158 (aberta)

Esta nota de uso foi gerada automaticamente com base nos requisitos da especificação.

Guia do implementador em breve (complexidade 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 71b2dfdfc31d Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

No sistema operacional Classic AUTOSAR, o tipo de dados ApplicationStateType serve para a identificação inequívoca do estado de uma OS-Application [SWS_Os_00773]. Ele é especificado como um tipo básico escalar e é disponibilizado por meio do arquivo de cabeçalho Os.h [SWS_Os_00773].

A faixa de valores permitida de ApplicationStateType compreende três estados discretos para uma OS-Application [SWS_Os_00773]:

  • APPLICATION_ACCESSIBLE: indica que a OS-Application está operacional e que seus recursos podem ser acessados [SWS_Os_00773].
  • APPLICATION_RESTARTING: sinaliza que a OS-Application se encontra atualmente em uma fase de reinicialização [SWS_Os_00773].
  • APPLICATION_TERMINATED: indica que a OS-Application foi encerrada e não executa mais nenhuma ação [SWS_Os_00773].

Em relação ao uso e à interação com outros componentes, o tipo provavelmente deve servir como valor de retorno ou parâmetro de saída em serviços de sistema do OS correspondentes para monitoramento de estado, a fim de informar aos chamadores o status atual do ciclo de vida de uma aplicação. Como se trata de uma definição de tipo elementar, o padrão não especifica códigos de erro próprios, mensagens DET ou DEM para isso, e não formula restrições específicas quanto ao contexto de chamada ou à reentrância [SWS_Os_00773]. Pergunta Q-9a4f2254f4013853 (aberta)

Este texto foi gerado por uma IA e baseia-se em dados de especificação da AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

tipo ApplicationStateRefType [SWS_Os_00774] 📄 PDF

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ae68f3712f9a Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo de dados ApplicationStateRefType é parte integrante do sistema operacional (módulo Os) na plataforma AUTOSAR Classic e é disponibilizado através do arquivo de cabeçalho Os.h [SWS_Os_00774]. O tipo é derivado de um ponteiro (pointer) e aponta diretamente para uma posição de memória na qual pode ser armazenado um estado de uma aplicação OS (Application State) [SWS_Os_00774].

No que diz respeito à utilização prática, este tipo de ponteiro serve para referenciar estados de aplicação: Interpretação: Como tipo de ponteiro, ApplicationStateRefType deve ser utilizado primariamente como parâmetro de referência ou de saída em funções de consulta do sistema operacional, através das quais o estado de uma aplicação OS é transmitido ao chamador. Pergunta Q-948bb914d3672a38 (aberta) Os chamadores devem, portanto, assegurar que, antes da passagem do parâmetro, esteja reservada uma área de memória válida e gravável para o estado de destino, a fim de evitar acessos incorretos por ponteiro em tempo de execução.

Mecanismos específicos de tratamento de erros, códigos de erro para DET ou DEM, bem como especificações separadas de reentrância e concorrência não são indicados separadamente na especificação para este tipo básico [SWS_Os_00774]. Eventuais restrições quanto ao contexto de chamada permitido ou a deveres de sincronização a serem cumpridos resultam exclusivamente daquelas interfaces do sistema operacional que utilizam este tipo nas suas assinaturas de função.

Este texto foi gerado por uma IA com base na especificação.

Guia do implementador em breve (complexidade 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)

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 334083bea161 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo ScheduleTableStatusType representa, de acordo com [SWS_Os_00784], o status atual de execução e de sincronização de uma Schedule Table no sistema operacional AUTOSAR. Ele é disponibilizado através do arquivo de cabeçalho Os.h e é baseado em uma faixa de valores específica da implementação.

Estão especificados os seguintes valores de status:

  • SCHEDULETABLE_STOPPED: A Schedule Table não foi iniciada.
  • SCHEDULETABLE_NEXT: A Schedule Table será iniciada após o término da Schedule Table atualmente ativa (interpretação: isso ocorre após a passagem para o serviço NextScheduleTable()). Pergunta Q-8cbcfc83969eea23 (aberta)
  • SCHEDULETABLE_WAITING: A Schedule Table utiliza sincronização explícita, já foi iniciada e aguarda o alinhamento com a hora global.
  • SCHEDULETABLE_RUNNING: A Schedule Table está em execução, porém no momento não está síncrona com uma fonte de tempo global.
  • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: A Schedule Table está em execução e sincronizada com a fonte de tempo global.

Por ser um tipo de dados puramente de status, ScheduleTableStatusType não define erros de tempo de execução ou mensagens DET/DEM próprios. Na interação com ferramentas de análise, o tipo serve, de acordo com [SWS_Os_00829], para a avaliação e exibição suportadas por ARTI de objetos dinâmicos do sistema operacional, permitindo que desvios de estado e sincronização no sistema sejam registrados de forma transparente.

Este texto foi gerado por uma IA e baseia-se na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

tipo ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 316994fde661 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Uso e definição

O tipo de dados ScheduleTableStatusRefType é definido de acordo com [SWS_Os_00785] como um tipo de ponteiro para uma variável do tipo de dados Schedule Table Status Type. O tipo é disponibilizado através do cabeçalho Os.h e serve no sistema operacional AUTOSAR como tipo de referência para o status de uma tabela de agendamento (Schedule Table) [SWS_Os_00785].

Uso e condições de contorno

Em chamadas típicas do sistema operacional, este tipo de ponteiro deve atuar como parâmetro de saída, através do qual uma função do sistema OS retorna o estado atual da Schedule Table referenciada para o chamador. Pergunta Q-53364f3a9953dae3 (aberta) Como a especificação define apenas a definição do tipo, os componentes chamadores devem observar o seguinte durante o uso:

  • Disponibilização de memória: Antes de passar uma referência deste tipo, o chamador deve garantir que o ponteiro aponte para uma área de memória válida e gravável, que permaneça válida durante toda a chamada.
  • Validade e ponteiros nulos: A passagem de um ponteiro nulo (NULL) deve levar, dependendo da configuração do sistema operacional (status Standard ou Extended), a mensagens de erro correspondentes dos serviços de OS chamados. Pergunta Q-63d77f8c7857e6c4 (aberta)
  • Proteção de memória: Em ambientes de OS multicore ou com proteção de memória críticos para a segurança, a área de memória referenciada deve estar acessível para a tarefa chamadora ou para a instância de OS.

Como [SWS_Os_00785] não indica outras propriedades de tempo de execução ou códigos de erro específicos para o tipo básico, a reentrância e o contexto de chamada resultam dos respectivos serviços de OS que utilizam este tipo de ponteiro como parâmetro.

Esta nota de uso foi gerada automaticamente e baseia-se exclusivamente nos dados de especificação da Release R20-11.

Guia do implementador em breve (complexidade 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9c58c4e8227f Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e gama de valores

O tipo enumerado TryToGetSpinlockType é fornecido por meio do arquivo de cabeçalho Os.h e serve como indicação de status se um spinlock pôde ser alocado com sucesso ou não pelo chamador [SWS_Os_00792]. Ele define o resultado de operações de alocação correspondentes no sistema operacional [SWS_Os_00792].

A faixa de valores compreende exatamente dois literais especificados [SWS_Os_00792]:

  • TRYTOGETSPINLOCK_SUCCESS: Sinaliza que o spinlock pôde ser ocupado com sucesso [SWS_Os_00792].
  • TRYTOGETSPINLOCK_NOSUCCESS: Indica que o spinlock não pôde ser ocupado [SWS_Os_00792].

Concorrência e contexto de sistema

O tipo é empregado na sincronização em sistemas multinúcleo. Interpretação: o chamador provavelmente avalia o valor de retorno de forma síncrona para determinar imediatamente se a seção crítica protegida pode ser acessada ou se, em TRYTOGETSPINLOCK_NOSUCCESS, um desvio de programa alternativo deve ser selecionado sem espera bloqueante [SWS_Os_00792]. Pergunta Q-a04e72802dc41325 (aberta) Códigos de erro próprios ou mensagens de erro via DET ou DEM não estão especificados para este tipo [SWS_Os_00792].

Interação com ferramentas de diagnóstico

No contexto de integração de ferramentas, o arquivo de descrição de módulo ARTI suporta todos os contêineres ORTI para exibir informações sobre o sistema operacional, seus estados e objetos de sistema operacional, e para determinar valores dinâmicos [SWS_Os_00829]. Interpretação: através de tais interfaces, spinlocks e seus estados de ocupação provavelmente também podem ser visualizados para ferramentas de depuração e rastreamento [SWS_Os_00829]. Pergunta Q-a488e055eb7d402e (aberta)

Este texto foi gerado por uma IA e baseia-se nas especificações AUTOSAR do release R20-11.

Guia do implementador em breve (complexidade I1)

tipo IdleModeType [SWS_Os_00793] 📄 PDF

This data type identifies the idle mode behavior.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 20e46b8167e3 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e gama de valores

O tipo de dados escalar IdleModeType é disponibilizado através do cabeçalho Os.h e destina-se à especificação do comportamento de um núcleo de processador no modo ocioso [SWS_Os_00793]. Na faixa de valores definida está estabelecido o modo IDLE_NO_HALT, em cuja seleção o núcleo de processador não executa ações adicionais durante o tempo de inatividade [SWS_Os_00793].

Interpretação: como IdleModeType é derivado de um tipo básico escalar, ele provavelmente serve, no contexto do sistema operacional, como valor de configuração ou parâmetro de chamada para serviços de controle do comportamento de inatividade do núcleo. Pergunta Q-911a39efb537f1bc (aberta) Interpretação: além do valor padrão IDLE_NO_HALT, implementações concretas de sistemas operacionais ou arquiteturas de microcontroladores poderiam potencialmente prever modos de retenção ou de economia de energia adicionais, embora o trecho da especificação cite apenas a ausência de ações específicas. Pergunta Q-b6688f74cacbab45 (aberta)

Restrições e tratamento de erros

Para IdleModeType, no presente escopo da especificação, não são identificados códigos de erro específicos, mensagens DET ou DEM, tampouco requisitos de reentrância ou contextos de chamada [SWS_Os_00793]. Quaisquer restrições funcionais ou pré-condições decorrem, portanto, exclusivamente das interfaces de sistema operacional de nível superior que processam este tipo.

Este texto foi gerado por uma IA com base na especificação SWS_Os_00793.

Guia do implementador em breve (complexidade 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).

Guia do implementador em breve (complexidade 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#5307b824
Content hash
5307b824
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_OS.pdf#nameddest=SWS_Os_00016

Mapa de temas

Vista de detalhes

Selecione uma entrada no índice.

Serviços · 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 função

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 função

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 função

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

Serviços · Start…

StartCore função

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

Serviços · 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);

Serviços · 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);

Serviços · 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);

Serviços · 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);

Serviços · Outros

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 função

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 função

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 função

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 função

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.