Sunteți pe pagina 1din 21

Învață AUTOSAR Simplu Și Eficient

DESIGNED AND CREATED BY MIHAI SUCIU 1


Curs2. System Stack și AUTOSAR_CDD

Definirea depedințelor dintre AUTOSAR_CDD și System Stack

DESIGNED AND CREATED BY MIHAI SUCIU 2


Curpins
• Recapitulare
• Definirea arhitecturii Cursului 2
• Introducere in System Stack
• OS
• EcuM
• BswM
• Requirement-uri pentru componenta AUTOSAR_CDD
• Conectarea componentei cu System Stack
• Temă de casă
DESIGNED AND CREATED BY MIHAI SUCIU 3
Recapitulare
• AUTOSAR Big Picture

• Memory Stack

DESIGNED AND CREATED BY MIHAI SUCIU 4


Recapitulare
• Temă de casă MemStack

• Implementare Intefeţe
AUTOSAR_CDD

• Intefeţe NvM

DESIGNED AND CREATED BY MIHAI SUCIU 5


Definirea arhitecturii
• Arhitectura completă a integrării componentei AUTOSAR_CDD

DESIGNED AND CREATED BY MIHAI SUCIU 6


Definirea arhitecturii, care este scopul
• Arhitectura este definită pentru un ECU din mașină
• AUTOSAR_CDD trebuie să salveze un istoric al mașinii
• AUTOSAR_CDD trebuie să citească viteza roților, kilometrajul și turația
motorului
• AUTOSAR_CDD trebuie să ofere un istoric al datelor către Tester/Service
• AUTOSAR_CDD trebuie să ofere informații altor ECU-uri din mașină

DESIGNED AND CREATED BY MIHAI SUCIU 7


Definirea arhitecturii, curs 2
• Arhitectura necesară pentru interacțiunea cu System Stack-ul

DESIGNED AND CREATED BY MIHAI SUCIU 8


Introducere in System Stack
• OS – Operating System

• EcuM– ECU Manager

• BswM – Basic Software Mode Manager

DESIGNED AND CREATED BY MIHAI SUCIU 9


Introducere in System Stack, OS
• Cele mai inportante interfețe/funcții
• StartCore(Core ID)
• StartOS(void)
• Hooks
• StartUpHook
• ErrorHook
• ProtectionHook
• ShutdownHook

DESIGNED AND CREATED BY MIHAI SUCIU 10


Introducere in System Stack, EcuM
• Cele mai inportante interfețe/funcții
• EcuM_Init(void)
• EcuM_StartupTwo(void)
• EcuM_Shutdown(void)
• EcuM_RequestRUN(user)

DESIGNED AND CREATED BY MIHAI SUCIU 11


Introducere in System Stack, BswM
• Cele mai inportante interfețe/funcții
• BswM_Init(*ConfigPtr)
• BswM_MainFunction(void)
• BswM_DeInit(void)
• BswM_ComM_CurrentMode(Network, ReqMode)
• BswM_Dcm_RequestCommunicationMode(Network, ReqMode)

DESIGNED AND CREATED BY MIHAI SUCIU 12


Introducere in System Stack, Stări Generale

DESIGNED AND CREATED BY MIHAI SUCIU 13


Introducere in System Stack, OS intern
• Componente ale OS-ului:
• Os_Tasks :
• Basic
• Extended

• Os_Interrupts:
• Category1 – ( Exceptions Interrupts)
• Category2 – (System Interrupts – Can, Gpt ... )
• Os_ScheduleTable
• Timer
• Duration

• Os_Application – Colecţie de Os_Tasks, Os_Interrupts, Os_ScheduleTable


• Trusted - privileged mode
• Non-Trusted – user mode
• Trusted Functions – privileged mode

DESIGNED AND CREATED BY MIHAI SUCIU 14


Introducere in System Stack, OS Tasks
• Os Tasks – Definire si Atribute: Basic task state model
running
• Definire: terminate

• TASK( Task_A1_10ms)
suspend
{ /*Task Body*/ } start preempt

• Tipuri:
activate
• Cyclic: Pornit intern de către ScheduleTable, 10ms, 20ms, 40ms ..
ready
• Extened: Pornit de către alte task-uri, activând event-ul corespunzătorul
• StartUP: Task-ul care va fi pornit prima dată de către OS.
• Idle: Când nu e execută niciun alt task, task-ul Idle va rula Extended task state model
running
• Atribute: wait terminate

• State: a) Suspended b) Ready c) Running


waiting suspend
• Priority: Arbitrare între două sau mai multe task-uri start preempt

• Stack: Zona de memorie unde se vor salva variabilele locale ale funcţiilor
release activate
• MPU: Zona/Zonele de memorie care pot fi accesate de către acest task. ready

DESIGNED AND CREATED BY MIHAI SUCIU 15


Introducere in System Stack, OS Exceptions
• Tipuri de Excepții detectate de OS:
• ExceptionDataStorage
• Acces ilegal de memorie
• Zona accesată(RAM sau ROM) nu este accesibilă task-ului curent

• ExceptionStackOverflow:
• Acces ilegal de memorie
• Zona accesată(de stivă) nu mai este rezervată task-ului curent
• Stiva task-ului curent trebuie mărită
• ExceptionMultipleTaskActivation:
• Problemă de run-time
• Un task a fost activat de mai multe ori decât era configurat
• Trebuie măsurat timpii consumați de fiecare task

DESIGNED AND CREATED BY MIHAI SUCIU 16


Introducere in System Stack, OS Scheduling

17

DESIGNED AND CREATED BY MIHAI SUCIU


Introducere in System Stack, BswM Intern
• Componente principale ale BswM-ului:

• BswM_Expression:
• Se va evalua dacă o activitate s-a terminat

• BswM_Action:
• Se va porni o activitate sau se va seta o nouă stare

• BswM_Rule :
• Regula care se va verifica pe fiecare BswM_MainFunction()
• Va ferifica Expresia și dacă este adevărată va apela Acțiunea

DESIGNED AND CREATED BY MIHAI SUCIU 18


Requirement-uri AUTOSAR_CDD, Part 2
• AUTOSAR_CDD trebuie să citească la fiecare 10ms semnalele care oferă
informații despre Viteza Roților, Turația Motorului și Kilometrajul mașinii.
• AUTOSAR_CDD trebuie iniţializat înainte de BswM_Init().
• AUTOSAR_CDD trebuie să intre în starea de stop înainte ca interfaţa
EcuM_ShutDown() să fie apelată

DESIGNED AND CREATED BY MIHAI SUCIU 19


Conectarea AUTOSAR_CDD cu SystemStack

DESIGNED AND CREATED BY MIHAI SUCIU 20


Temă de casă
• Descarcă specificația de System Stack și citește despre Os, BswM și EcuM.

• Completează spațiile libere din proiect:


• BswM.c
• Rte.c
• EcuM.c

DESIGNED AND CREATED BY MIHAI SUCIU 21

S-ar putea să vă placă și