Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

Practical RTOS and RT programming

Avansat
28 h
4.9 (105 recenzii)
Practical RTOS and RT programming

Real‑time în practică: proiectezi și implementezi aplicații pe RTOS pe hardware real, folosind QNX.

Parcurgi schedulere, thread‑uri, sincronizare și managementul timpului pas cu pas.

Construiești pipeline‑uri IPC fiabile și analizezi latență, jitter și determinism.

Dobândești experiență practică prin ~70% laboratoare hands‑on cu Momentics și ținte BeagleBone.

Cum te ajută: aplici în siguranță concepte real‑time în sisteme de producție.

Cui i se adresează: conceput pentru persoane cu C/C++ care vizează proiecte hard real‑time.

Include deep dives opționale: teoria scheduling‑ului, tracing, affinity multicore și standarde de safety.

Curriculum

Intro practică în RTOS
  • Sisteme embedded time‑triggered
  • Introducere în RTOS
  • Schedulers: tehnici principale; priority inheritance; stack sharing
  • Implementări simple de scheduler pentru a înțelege structurile de date și context switching
  • Reguli de bază în aplicații real‑time (dos and don'ts)
Primul proiect QNX
  • Implementăm un producer–consumer cu garanții de timeout în Momentics
  • Rulare, copiere pe target, debugging, profiling
  • Comenzi QNX de bază și partitioning
  • Scop: familiarizare cu mediul de dezvoltare QNX
Arhitectura Neutrino
  • Prezentare la nivel înalt a componentelor cheie (table of contents pentru modulele detaliate)
Arhitectura INTEGRITY RTOS
  • Modul scurt cu particularități INTEGRITY
Threads și procese
  • Procese vs. threads; creare
  • Sincronizare: joins, mutexes, semaphores, condition variables, read‑write locks, sleepon locks, barriers
  • Controlul timpilor de așteptare (timeouts, absolut vs. relativ)
  • QNX thread pools
Time, timers and clocks
  • Structuri de date esențiale pentru timekeeping
  • Timpul în kernel: operare periodică, clock ticks
  • Timere pentru aplicații time‑triggered
  • Kernel timeouts și stări de așteptare
IPC Programming
  • POSIX IPC: transfer de date și shared memory
  • Sincronizare: semaphores, events, signals, file locks, named mutexes
  • Neutrino‑specific IPC
Subiecte multicore
  • Proiectarea aplicațiilor pentru multicore
  • Scheduling și întreruperi pe multicore
  • Processor affinity
  • Inter‑core synchronization
Crearea unei imagini QNX
  • Construirea și personalizarea unei imagini QNX pentru BeagleBone
Aplicație: rețea de senzori cu constrângeri real‑time
  • Lucru în echipă: topologie stea, procesare de date
  • Constrângeri real‑time peste rețea

Module opționale

Subiecte avansate real‑time (opțional)
  • Teoria scheduling‑ului: Rate‑Monotonic, Deadline‑Monotonic, EDF; response‑time analysis
  • Protocoale de acces la resurse: Priority Inheritance vs. Priority Ceiling; bounded blocking
  • Măsurarea latenței și jitter‑ului: cyclictest; high‑res timers; alegerea ceasului
  • Tracing și profiling: LTTng, perf, ftrace; flame graphs; diagrame de timing la nivel de sistem
  • Cozi lock‑free și ring buffers pentru comunicare ISR ↔ main; memory barriers; efecte de cache
  • Interrupt affinity, CPU isolation și comportament predictibil pe multicore
  • DMA și căi zero‑copy; determinismul I/O
  • Sincronizare de timp pentru sisteme RT distribuite: PTP/IEEE‑1588
  • Siguranță și standarde: MISRA C, programare defensivă, analiză statică
  • Particularități QNX: adaptive partitioning, SchedFIFO/SchedRR/Sporadic Server, pulses, channels

Structura zilei de curs

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30