KOUŘIL, J. Časově kritické aplikace na STM32MP157 [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2024.
Zadání práce Bc. Kouřila bylo cíleno na prozkoumání možností mikrokontroleru řady STM32MP1, konkrétně jeho heterogenní více jádrové varianty MP157. V dnešní době je již zcela běžné, že výrobci do svých SoC implementují tzv big.LITTLE architekturu – spojení výkonného jádra s menšími a úspornějšími jádry. Co však není zcela běžné je spojení velkého jádra s mikrokontrolerem plně vybaveným perifériemi potřebnými pro embedded aplikace. Tato konfigurace spojuje možnosti plnohodnotného operačního systému (Linux) a plně deterministické aplikace běžící na samostatném jádru spojené s jádrem hlavním přes společně mapovaný paměťový prostor. Student musel pro úspěšné vypracování zadání spojit dohromady znalosti dvou značně odlišných světů – programování POSIX aplikací operačního systému Linux (a jeho PREEMPT_RT varianty) a programování embedded mikrokontroleru. Studentovi se úspěšně podařilo seznámit se s dokumentací od STMicroelectronics, sestavit si vlastní Linux distribuci obsahující PREEMPT RT patch a naprogramovat jádro mikrokontroleru jednoduchou řídicí aplikací pro regulaci proudu žárovkou. Po domluvě s vedoucím byla studentem práce rozšířena o aplikaci demonstrující reálné nasazené této řady mikroprocesoru na regulaci pohonu. Student v rámci rozšíření vytvořil POSIX aplikaci s real-time prioritou plánovače pro komunikaci a ovládání podřízeného procesoru. Podřízený procesor byl naprogramován pro vektorové řízení třífázového motoru. Funkčnost celé aplikace byla studentem ověřena na reálném BLDC motoru. Student po celou domu vypracování diplomové práce postupoval svědomitě a samostatně a pravidelně konzultoval se svým vedoucím. Jedinou výtku bych měl k samotnému textu práce, který je psán dosti obecně a je poměrně těžké replikovat všechny kroky vedoucí k úspěšnému rozchození výsledné aplikace. Celkově práci hodnotím stupněm B (88b).
Diplomová práce pana Kouřila se na 56 stranách zabývá vytvořením řídícího systému časově kritické aplikace řízení natočení hřídele motoru. Aplikace má používat obě jádra Cortex M4F a Cortex A7 mikroprocesoru. První dvě kapitoly popisují HW prostředky použité řady mikroprocesoru a vývojové nástroje, které STMicroelectronics poskytuje jak k vývoji aplikace pro koprocesor Cortex M4F bez OS, tak k vývoji aplikací a úpravám OS OpenSTLinux pro Cortex A7. Jsou zmíněny také podpůrné a ladící nástroje s komentářem, jaké problémy autor při sestavování a testování celého SW mikroprocesoru musel řešit. Třetí kapitola ukazuje funkčnost ukázkové aplikace, která demonstruje komunikaci mezi oběma jádry. Tyto tři kapitoly správně naplňují body 1 až 3 zadání diplomové práce. Kapitola čtyři se zabývá měřením latence komunikace mezi jádry mikroprocesoru (6. bod zadání). Tato část práce je dle mého názoru řešena až příliš jednoduše, protože není potlačen vliv ladících výpisů a logování na naměřené hodnoty. Zároveň není možné ověřit přesnou funkci programu, protože zdrojový kód uvedený v příloze neodpovídá textovému popisu v této kapitole. Poslední tři kapitoly se věnují realizaci a ověření jednotlivých částí finální aplikace regulace natočení hřídele motoru (4. a 5. bod zadání). Je ukázán návrh aplikace jak z hlediska rozčlenění SW, tak z hlediska HW propojení motoru, senzorů a výkonové elektroniky k vývojovému kitu. Zároveň je řešeno mechanické uspořádání motoru pro testování. Tento návrh hodnotím jako správný. V popisu aplikace pro Cortex M4F je uvedeno a zdůvodněno nastavení použitých periferií a jejich synchronizace. Nastavení periferii ADC1 a TIM1 je ověřeno na regulační smyčce s P regulátorem a přípravkem tvořeným žárovkou a fotorezistorem (ověřeno přechodovou charakteristikou). Krátce je popsána realizace vektorového řízení proudu motoru s použitím P regulátorů a je uveden způsob zpracování a kalibrace hodnot senzorů. Propojení obou jader mikroprocesoru je realizováno textovým komunikačním protokolem. Aplikace pro Cortex A7 realizuje nadřazenou polohovou regulaci, uživatelský vstup a tisk měřené polohy, žádaného proudu a periody spouštění úlohy regulátoru. Ověření finální aplikace je provedeno pomocí měření přechodové charakteristiky polohy a měřením histogramu periody výpočtu regulátoru polohy. Kladně hodnotím, že se studentovi podařilo realizovat a zprovoznit polohové řízení motoru, očekával bych však lepší verifikaci. Ocenil bych ověření časování i pomocí externího měření např. na digitálních pinech mikroprocesoru (perioda regulační smyčky, doba výpočtu, synchronizace ADC). Zároveň by měla být součástí komunikace mezi jádry kontrola, že aplikace Cortex A7 nastavuje žádanou hodnotu proudu v ohraničeném čase. Finální aplikace by také mohla umožňovat lépe sledovat a zaznamenávat měřené veličiny. Z práce je patrné, že body zadání byly splněny. Formální zpracování práce je dobré. V práci se vyskytuje malé množství překlepů, ale na více místech chybí interpunkční znaménka. Práci lze považovat za původní, autor se v textu odkazuje na literaturu. Většinu pramenů tvoří dokumentace STMicroelectronics. Předložená práce přes uvedené nedostatky svědčí o magisterských schopnostech studenta. Doporučuji ji k obhajobě s hodnocením dobře/C 77 bodů.
eVSKP id 160040