MPLAB Harmony
● Idea
● Instalace
Více podrobností naleznete na
http://microchip.wikidot.com/training:start
nejen k MPLAB Harmony
Harmony
Flexible
InteroperableCompatible
MPLAB®
Harmony
ModularRe-Usable
● Komplexní vývojové prostředíPružný a robustní framework (aplikační rámec) pro vývoj firmware pro PIC32Nový přístup ke spolupráci se třetími stranamiVrstvená 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ě
VrstvyMPLAB Harmony
PLIB PLIB PLIB PLIB PLIB
Driver Driver Driver Driver Driver
Driver
Driver
CommonSystem
ServicesMiddleware
Middleware
Plug-in
Plug-in
Application(s)
System Configuration
RTOS
OSAL
RTOSConfiguration
• Celkové výsledné chování• Žádný přímý přístup k HW, zajišťuje
přenositelnost mezi MCU
Application Layer
Common System Services
• Složitější knihovny poskytující vyšší funkce (TCP/IP, grafika apod.)
• Poskytují abstraktní API
Middleware
• Jednoduché abstraktní rozhraní k perifériím
• Spravuje přístup k HW pro zabránění konfliktů
Device Drivers
• Knihovny provádějící přístup přímo k HW
• Poskytují společné rozhraní pro všechny MCU od Microchipu
Peripheral Libraries (PLIB)
• Spravuje zdroje a moduly pro předejití konfliktů
• Poskytuje běžné funkce, aby se zabránilo vzniku duplicit
IdeaMPLAB Harmony
Flexible
InteroperableCompatible
MPLAB®
Harmony
ModularRe-Usable
● Portability - přenositelnost● Configurability - konfigurovatelnost● Modularity – modulárnost● Compatibility - kompatibilita● Flexibility - pružnost
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 ConfiguratorGrafický nástroj na konfiguraci HarmonyNastavení 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í callbackModul 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 programus 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žívatdriver 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)embHTTPembTelnetembFTP
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.