MPLAB Harmony Idea Instalace Více podrobností naleznete na http://microchip.wikidot.com/training:start nejen k MPLAB Harmony
Harmony Komplexní vývojové prostředí Pružný a robustní framework (aplikační rámec) pro vývoj firmware pro PIC32 Nový přístup ke spolupráci se třetími stranami Vrstvená a modulární architektura Podpora třetích stran Knihovny rozšiřující a doplňující možnosti stávajících při zachování kompatibility Možnost nákupu na jednom místě Podpora na jednom místě Flexible Re-Usable MPLAB Modular Harmony Compatible Interoperable
Vrstvy MPLAB Harmony Application Layer Celkové výsledné chování Žádný přímý přístup k HW, zajišťuje přenositelnost mezi MCU Common System Services Spravuje zdroje a moduly pro předejití konfliktů Poskytuje běžné funkce, aby se zabránilo vzniku duplicit Application(s) Middleware Složitější knihovny poskytující vyšší funkce (TCP/IP, grafika apod.) Poskytují abstraktní API Device Drivers Jednoduché abstraktní rozhraní k perifériím Spravuje přístup k HW pro zabránění konfliktů Peripheral Libraries (PLIB) Knihovny provádějící přístup přímo k HW Poskytují společné rozhraní pro všechny MCU od Microchipu RTOS O Common S System A Services L RTOS System Configuration Configuration Middleware Plug- PlugDriver in in Middleware Driver Driver Driver Driver Driver Driver PLIB PLIB PLIB PLIB PLIB
Idea MPLAB Harmony Portability - přenositelnost Configurability - konfigurovatelnost Modularity modulárnost Compatibility - kompatibilita Flexibility - pružnost Flexible Re-Usable MPLAB Modular Harmony Compatible Interoperable
Přenositelnost Kód či část kódu je přenositelná na jiný MCU s funkčním Harmony Podmínka: aplikace nesmí přistupovat přímo k HW Výhody: Úspora času při vývoji dalšího obdobného zařízení Přehledný zdrojový kód Nevýhoda: Méně optimální strojový kód
Konfigurovatelnost MPLAB Harmony Configurator Grafický nástroj na konfiguraci Harmony Nastavení HW, systému, periférií a jejich knihoven, driverů a middleware Nastavení probíhá po jednotlivých vrstvách Konfigurace je závislá na HW Je uložená v souborech system_config.h, system_init.h, system_tasks.c, system_interrupt.c
Modulárnost Každý modul je, co nejvíce uzavřený s definovaným rozhraním, připomína HW Každý modul si alokuje své vlastní potřebné zdroje Modul lze snadno přidat či odebrat Některé systémové moduly umožňují callback Modul z vyšší vrstvy zadá podmínky, při kterých má být zavolána funkce vyšší vrstvy z nižší vrstvy. Modul si vede seznamy funkcí, která má volat. Například lze tak využít systémový timer.
Kompatibilita Moduly jsou stavově řízené, každý má vlastní stavové řízení Mají inicializaci a volání (tasks) Žádná funkce v modulu nesmí způsobit čekání programu Hlavní program neřeší stavy jednotlivých modulů, pro něj jsou jednostavové Moduly kompatibilní pro kooperativní multitasking Hlavní program se může skládat z inicializace a hlavní nekonečné supersmyčky (super-loop polled)
Pružnost Stejné pro různé řízení běhu programu s RTOS, bez OS smyčka, řízené přerušením Drivery statické nebo dynamické, s jedním nebo více klienty
Vysvětlení pojmů Super-loop pulled - supersmyčka Interrupt Driven -
Vysvětlení pojmů RTOS Based
Vysvětlení pojmů Static or Dynamic Drivers Pro každou periférii vlastní modul Modul pro jednu periférii je menší a rychlejší než dynamický DRV_USART0_ReadByte() Jeden modul pro všechny periférie Menší kód pro více periférii Aplikace není tolik svázána s konkrétní instancí/periférií DRV_USART_ReadByte(HANDLE0)
Vysvětlení pojmů Single or Multiple Client Jeden modul/vlákno smí používat driver Minimální nároky na paměť Více modulů/vláken mohou sdílet driver a periférii/periférie. Vhodné je to pro komunikaci se zařízeními na sběrnici. Nutné dodělat přerozdělování dat jednotlivým klientům, je na to již hotové API
Knihovny Harmony 1.0
Knihovny Harmony 1.0 Bluetooth pouze Stack, lze aktivovat SPP profil Cryptographic šifrovací a kódovací, podporuje AES, ECC,Huffman, HMAC, MD5, RSA, SHA, 3DES Drivers Grafické řadiče, grafické displeje, I2S, Capture, Compare, NVM, PMP, RTCC, SD Card, SPI, Timer, USART Graphics Library grafická knihovna Math Library přidání DSP s pevnou desetinnou čárkou pro PIC32MZ Operating System Abstraction Layer (OSAL) Univerzální rozhraní k RTOS Peripheral Library knihovny pro přístup k HW System Services Konzole, Debug (konzole), File System, DMA, přerušení atd. TCPIP Stack Základní stack s podporou DHCP, DNS, HTTP server, ICMP Server, SNTP client atd. USB Library USB Host CDC a MSD, USB Device Audio, CDC, HID a MSD
Doplňky 3. stran Free RTOS RTOS zdarma pod GPL, placený je manuál inter Niche embtcp (IPv4) embdual (IPv4 a IPv6) embhttp embtelnet embftp Wittenstein OpenRTOS komerční klon FreeRTOS, není třeba plnit podmínky GPL WolfSSL cyassl implementace SSL 3.0, TSL 1.2, DTSL 1.2 pro PIC32MX nebo PIC32MZ
Instalace Harmony Stáhněte z www.microchip.com/harmony pro svůj operační systém Spusťte instalátor pozor pod Linuxem musíte jako uživatel Spustíte MPLAB X IDE Menu Tools -> Plugins vám otevře správce doplňků do IDE Přepněte se do záložky Available Plugins, zaškrtnete MPLAB Harmony Configurator a Graphics Display Designer X a stiskněte tlačítko Install. Průvodce vás provede další instalací. Po instalaci je nutné MPLAB X IDE restartovat.
Konec Děkuji za pozornost 19