Chybová hláška ControlDesku, že se aplikace běžící na platformě nestihla spočítat ve stanoveném čase. Pro někoho novinka, pro jiné běžná součást ladění aplikace.
Jak aplikaci analyzovat a najít kritická místa, se dozvíte v následujícím textu:
Nejdříve ale trochu teorie, aneb za vším hledej plánovač úloh (Kernel Scheduler). Úlohy se plánují dle priorit a mezi nimi je možné přeskakovat. Úlohy s vyšší prioritou se vykonají dříve než ty s nižší. Jednoduchý příklad: Děti dostanou v pondělí domácí úkol z matematiky a dějepisu. Matematika je každý den, dějepis až ve čtvrtek. Úkol z matematiky proto musí nebohé dítko udělat hned v pondělí, ale na dějepis má tři dny čas. Jestli dějepis udělá hned v pondělí, v úterý, nebo až ve středu, případně každý den kousek, je na jeho rozhodnutí. Plánovač funguje na obdobném principu – až na to, že neodmlouvá a úkoly nikdy neodkládá. Naopak, snaží se je řešit v co nejkratším čase. Přetečení je v tomto příkladu nedodání úkolu včas.
Když k přetečení dojde, je Profiler ideální pomocník pro časovou analýzu aplikace běžící na real-time platformě. dSPACE Profiler je volně ke stažení ze stránek dSPACE. Po instalaci je snadné se proklikat do pracovního okna a začít měřit data.
Na obrázku jsou zachyceny dvě úlohy: Periodic Task 1 a Bus Configuration. V grafu zleva vidíme první zelenou úsečku – plánované hardwarové přerušení (Sample time, typicky 1 ms, dle nastavení aplikace). Následuje zásah plánovače, který naplánuje dvě úlohy. Nejprve se vykoná úloha s vyšší prioritou (Bus Configuration) a teprve poté ta s nižší (Periodic Task 1).
Profiler tak umožňuje v jednoduché grafické formě porozumět procesům běžícím na výpočetním jádru.
Závěr? Pomocí Profileru rychle zjistíte, která část aplikace způsobuje zpoždění, a můžete cíleně optimalizovat. Při ladění real-time systému tak ušetříte čas, nervy i zbytečné pokusy metodou pokus–omyl.
Tomáš Fridrich, 23.6.2025