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