Nagyteljesítményű mikrovezérlők

Hasonló dokumentumok
ARM Cortex magú mikrovezérlők. mbed

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

Érzékelők és beavatkozók I.

Scherer Balázs: Mikrovezérlők fejlődési trendjei

Silabs STK3700, Simplicity Studio laborgyakorlat

ARM Cortex magú mikrovezérlők

Szoftver tervezési ág

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

ARM Cortex magú mikrovezérlők

TI TMDSEVM6472 rövid bemutatása

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

Java I. A Java programozási nyelv

ARM processzorok felépítése

ARM Cortex magú mikrovezérlők

Nagy teljesítményű vészhelyzeti áramforrás tervezése

Közösség, projektek, IDE

ARM Cortex magú mikrovezérlők

Mikrorendszerek tervezése

Arduino bevezető Szenzorhálózatok és alkalmazásaik

10.1. Az MSP430 mikrovezérlők fejlesztőkörnyezetei

Firmware fejlesztés. Mártonfalvi Zsolt Hardware programozó

2004 Xilinx, Inc. All Rights Reserved. EDK Overview Xilinx, Inc. All Rights Reserved

Autóipari beágyazott rendszerek CAN hardver

6.2. TMS320C64x és TMS320C67xx DSP használata

Nagyteljesítményű mikrovezérlők 10b. RTOS gyakorlatok

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1. 32-BITES MIKROSZÁMÍTÓGÉPEK

The modular mitmót system. DPY kijelző kártya C API

Labor 2 Mikrovezérlők

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Az AVR programozás alapjai. Előadja: Both Tamás

Java I. A Java programozási nyelv

Operációs rendszerek. A Windows NT felépítése

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

iphone és Android két jó barát...

BME-MIT. Linux board bringup

Komponens alapú fejlesztés

Mikrorendszerek tervezése

C programozási nyelv

Dr. Schuster György október 30.

Java Programozó képzés A&K AKADÉMIA 2019.

Autóipari beágyazott rendszerek. AutoSAR Platform

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

ARM (Advanced RISC Machine)

Jelfeldolgozás a közlekedésben

Nagy Gergely április 4.

Nagyteljesítményű mikrovezérlők

Beágyazott és Ambiens Rendszerek

A Java EE 5 plattform

Az interrupt Benesóczky Zoltán 2004

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Nagyteljesítményű mikrovezérlők

Operációs rendszerek. Windows NT. A Windows NT

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

1. Fejezet: Számítógép rendszerek

BME-MIT. Linux board bringup

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Nagy bonyolultságú rendszerek fejlesztőeszközei

5.4. Perifériák helyettesítése párhuzamos feldolgozással a Propeller esetében

ÖNÁLLÓ LABOR Mérésadatgyűjtő rendszer tervezése és implementációja

Szoftvertechnológia alapjai Java előadások

A ChipScope logikai analizátor

C programozás. 1 óra Bevezetés

Smart megoldások. Ela

ARM Cortex magú mikrovezérlők

Kommunikációs rendszerek teljesítőképesség-vizsgálata

A Texas Instruments MSP430 mikrovezérlőcsalád

Számítógépes alapismeretek

Új komponens a Talend Palettán: Starschema SAP Connector. Csillag Péter, Földi Tamás Starschema Kft.

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Leírás. Készítette: EMKE Kft február 11.

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Mintavételes szabályozás mikrovezérlő segítségével

Rendszermodellezés: házi feladat bemutatás

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Termeléshatékonyság mérés Ipar 4.0 megoldásokkal a nyomdaiparban

ARM mikrovezérlők programozása

Mikrorendszerek tervezése

AVR assembly és AVR C modulok együttes használata AVR C projektben. Összeállította: Sándor Tamás

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás

DEV-JTG-S-01 telepítési és használati útmutatója

Tesztelési feladatok és kihívások a FALCON projektben

Konkurencia és energiakezelés integrálása eszközmeghajtókba. Vezeték nélküli szenzorhálózatok

Átírás:

Nagyteljesítményű mikrovezérlők 6. CMSIS és Fejlesztőkörnyezetek Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2015

CMSIS Cortex Microcontroller Software Interface Standard BME-MIT 2015 2.

Fejlesztési költségek alakulása BME-MIT 2015 3.

Egy általános beágyazott rendszer SW architektúrája a 90-es évek végén Application Libraries Hardware független mitmót API Felhasználói project ISO C Math DPY-TRM COM-R04 MIKROP Kernel MCU-ARM API Hardware Abstraction Layer interrupts Device Drivers Serial I/O kezelés SPI Előre fordított ecos distribúció Exceptions I2C BME-MIT 2015 4.

Hardware architektúra 2005-körül AUTOSAR BME-MIT 2015 5.

CMSIS szerkezete (v1.3) BME-MIT 2015 6.

CMSIS Core Hardware Abstraction Layer (HAL):Az összes Cortex M variánshoz egy standardizált periféria és regiszter készlet kezelés a SysTick, NVIC, System Control Block, MPU, FPU registerszterekhez Rendszer kivétel nevek:a rendszer kivételekhez, interruptokhoz való hozzáférés deffiniálása Header file szervezés definiciók:elnevezési konvenciók az mikrokontroller specifikus interruptok-hoz és header file-okhoz Rendszer indítás: Mikrovezérlő független inicializáló függvény interfész. Standardized SystemInit() függvény Speciális utasítások támogatása Globális változó a system clock frekvencia meghatározására BME-MIT 2015 7.

A CMSIS file-jai és könyvtárstruktúrája File Szolgáltató Leírás device.h Mikrovezérlő gyártó A mikrovezérlő perifériáinak definítciója. Ez a file include-olhatja az összes többi mikrovezérlőhöz tartozó firmware headert. core_cm0.h ARM (fordítófüggő részekkel) A Cortex-M0 alapperifériáinak és regisztereinek definítciója core_cm3.h ARM (fordítófüggő részekkel) A Cortex-M3 alapperifériáinak és regisztereinek definítciója core_cm0.c ARM (fordítófüggő részekkel) A Cortex-M0 alapperifériáinak és regisztereinek kezelőfüggvényei core_cm3.c ARM (fordítófüggő részekkel) A Cortex-M3 alapperifériáinak és regisztereinek kezelőfüggvényei startup_device ARM, de a mikrovezérlő, vagy compiler gyártó adoptálhatja és testreszabhatja A Cortex-M mikrovezérlő startupkódja és a teljes mikrovezérlő függő ugrótábla system_device ARM, de a mikrovezérlő gyártó, adoptálhatja és testreszabhatja Mikrovezérlő függő inicializációs rész. Tipikusan a PLL és egyébb órajelforrások inicializálása történik itt. BME-MIT 2015 8.

CMSIS core struktúra BME-MIT 2015 9.

A device.h szerepe Az egyetlen szükséges include file a felhasználó számára (az induláshoz) CMSIS core_cm3.h stdint.h stm32f10x.h device.h system_stm32f10x.h BME-MIT 2015 10.

Fordító függő Startup Code, ugrótábla A startup_devicefile a GCC megvalósításnál a ugrótáblákhoz úgynevezett weak pragmákat használnak DCD USART1_IRQHandler, /* USART1 */ Majd az így definiált nevet egy weak pragmával ráhuzalozzuk egy default handlerre: #pragma weak USART1_IRQHandler = Default_Handler BME-MIT 2015 11.

A system_device.c Minden Cortex M3,M0,M7 vezérlő azonos módon elindítható legyen Minimum szolgáltatások Függvény definició void SystemInit (void) void SystemCoreClockUpdate (void) Változó definítció uint32_t SystemCoreClock Leírás A mirovezérlő elindulásához szükséges rutinok végrehajtása. Tipikusan ez a függvény konfigurálja a PLL-t. Ez a függvény tipikusan a startup_device-ból híódik meg, de lehet, hogy a felhasználónak kell meghívnia. Beállítja a PLL-t a SystemCoreClock változó értékének megfelelően. Leírás A rendszer órajel frekvenciáját tartalmazza. BME-MIT 2015 12.

A CMSIS coding guildlines-ai A CMSIS szabvány a MISRA 2004-es guildline-jainak betartásával készül. A CMSIS az adattípusokként az <stdint.h> -ba definiált típusokat használja A kifejezéseket tartalmazó #define-okat zárójelezni kell. A Core Peripheral Access Layer (CPAL) összes függvénye re-entráns kell, hogy legyen. A Core Peripheral Access Layer (CPAL) nem tartalmaz blokkoló kódot. Az összes interupt kezelő függvények a _IRQHandler utótaggal kell záródnia. BME-MIT 2015 13.

A CMSIS coding guildlines-ai 2. Nagybetűvel jelöl minden core, vagy periféria regisztert, illetve assemly utasítást. Az ún. CamelCase jelölést használja a perifériakezelő függvények és interupt függvények számára. PERIFÉRIA_ perfixet kell használni a perifériához tartozó függvényekhez (tehát a függvény neve elött nagybetűvel fel kell tüntetni a periféria nevét). Doxygen kommentekkel kell minden függvényt ellátni o A minimális komment a következő Egy soros briefleírás Kifejtett paraméter komment a param-al Kifejtett visszatérési érték komment a ret paraméterrel. Kifejtett leírás a függvény működéséről. BME-MIT 2015 14.

Gyártói megkötések Erős megkötések a gyártók számára, hogy hogyan kell megadniuk a periféria leírásokat o Irható, olvasható perifériák jelölése o Perifériák Struktúraként való kezelése Union használata sok esetben oa tényleges kezelés úgy történik, hogy rámutatunk egy mutatóval a periféria struktúrára ointerrupt tábla elnevezéseinek és formájának megkötése BME-MIT 2015 15.

Regiszterek elérése ACMSISésazLPC17xx.hhasználata LPC_GPIO1->FIOPIN = 3; BME-MIT 2015 16.

Software környezetek Túl komplex hardware alacsony szintről nagyon nehéz értelmes fejlesztést végezni Szükséges az erősebb szoftvertámogatás Gyártók elég nagy erőforrásokat fektetnek ebbe, de egy jó része az erőfeszítéseknek nem konvergens BME-MIT 2015 17.

Firmware Library-k ~ 2010 BME-MIT 2015 18.

Doxygen-ben kommentezett Erősen struktúrákon alapuló rendszer o Minden perifériát lefed o Számtalan példával ellátva Az ST firmware library-e BME-MIT 2015 19.

Doxygen-ben kommentezett Erősen struktúrákon alapuló rendszer o Minden perifériát lefed o Számtalan példával ellátva Az NXP firmware library-e BME-MIT 2015 20.

Fejlesztő környezetek ~ 2010 BME-MIT 2015 21.

Fejlesztőkörnyezet lehetőségek Proffeszionális drága verziók IAR Embedded Workbench Keil MDK-ARM Microcontroller Development Kit Code Composer Studio GNU alapú összeintegrált kevéssé drága verziók Rowlely CrossWorks Cégek által támogatott Red Suite by Code Red GNU alapú ingyenes Coocox BME-MIT 2015 22.

Eclipse CDT alapú környezetek Eclipse IDE, CDT pluginnal GNU GCC fordító GNU GDB debugger OpenOCDdebughardware támogatás BME-MIT 2015 23.

MBED webes fejlesztőkörnyezet Gyorsan magas szintű alkalmazás összerakása Web-es fejlesztőkörnyezet NXP LPC sorozatú mbed-ek BME-MIT 2015 24.

Coocox Eclipse alapú fejlesztőkörnyezet Kínaiak által összerakott Eclipsealapú fejlesztőkörnyezet Nagyon jó komponens alapúság o Chip és Board support Nem követi a firmware library-k változásait BME-MIT 2015 25.

Fejlesztőkörnyezet Coocox Jól támogatott: a lényegesebb Cortex M architektúrák benne vannak Jó a debugger támogatása Egyszerűen telepíthető: CoCenter BME-MIT 2015 26.

Szoftver trendek 2010 ARM MBED NXP ST TI Silabs Coocox 2006 2010 2015 CMSISv1 Web v1 CMSISv2 FirmwareLibrary+ Code Red Firmware Library Firmwarelibrary+ CCS Coocox v1 BME-MIT 2015 27.

~2011 CMSIS v3 szerkezeti változása BME-MIT 2015 28.

CMSIS DSP library Cortex M4-re, M3-ra optimalizált assembly szintü rutinok Basic math functions o Vector abszolút éték, összeadás, szorzás, kivonás Gyors komplex matematikai függvények o Cosinus, Sinus, Gyökvonás o Komplex számok matematikája Szűrök o FIR, IIR BME-MIT 2015 29.

Mátrix műveletek CMSIS DSP library o Kivonás, összeadás, szorzás, transzponálás, invertálás Alkalmazás specifikus függvények o PID szabályozás o Interpolásció o FFT o Statisztikai függvények BME-MIT 2015 30.

Mostani állapot BME-MIT 2015 31.

Szoftver trendek 2015 ARM MBED NXP 2006 2010 2015 CMSISv1 CMSISv2 CMSISv3 CMSISv4 Web v1 v2 open V3 IOT Firmware Library + Code Red ST TI Silabs Firmware Library Firmware library + CCS Cube platform Firmwarelibrary+ CCS + ecosystem Simplicity studio + firmware library + ecosystem Coocox Coocox v1 Coocox v2 BME-MIT 2015 32.

Egymásra hatások Firmware library-k ARM MBED NXP 2006 2010 2014 CMSISv1 CMSISv2 CMSISv3 CMSISv4 Web v1 v2 open V3 IOT Firmware Library + Code Red ST TI Silabs Firmware Library Firmware library + CCS Cube platform Firmwarelibrary+ CCS + ecosystem Simplicity studio + firmware library + ecosystem Coocox Coocox v1 Coocox v2 BME-MIT 2015 33.

CMSIS szerkezete (v4.2) BME-MIT 2015 34.

CMSIS v4 Kérdés, hogy mikor és mennyire fogják átvenni v4 módosításait BME-MIT 2015 35.

CMSIS Driver API Gyártó független periféria driver library BME-MIT 2015 36.

CMSIS Driver API Egyenlőre az LP18xx-re van próba implementáció A Keilkezdi még átvenni a dolgot BME-MIT 2015 37.

CMSIS Driver API BME-MIT 2015 38.

Gyártói megoldások BME-MIT 2015 39.

Két harware vonulat: o Mbed NXP megoldások o LPCXpresso Szoftver o Firmware Library o LPCXpresso/ Code-Red ecosystem támogatás o Debuggolás bizonyos kódméret után fizetős BME-MIT 2015 40.

Két harware vonulat: o Nucleo o Discovery board Szoftver o Firmware Library (2014-ben leváltásra kerül) o Cube platform o Nincs saját IDE ST megoldások BME-MIT 2015 41.

STMCube32 A hagyományos Firmware library-t leváltó API készlet + ecosystem BME-MIT 2015 42.

STMCube32 Mx Grafikus periféria, és órajel inicializáló rendszer BME-MIT 2015 43.

Silabs megoldások Komplett fejlesztőkártyák o 2015 rádióval integrált verziók Simplicity stúdió o Saját Firmware library o Saját ecosystem o Debug támogatás o Fogyasztás támogatás o Nagyon új még o A Coocoxpár dologban jobb BME-MIT 2015 44.

Fejlesztői környezetek BME-MIT 2015 45.

MBED most 2013-ban kinyitják a platformot. Több mint 20 alapkártyát támogatnak Forráskód elérhető. Exportálható különböző környezetekbe 2015-re erősen megcélozzák az IoT világot BME-MIT 2015 46.

MBED problémák Alap API C++ szintaktikájú Jelenleg nem követi a CMSIS driver struktúrát Nem használja a CMSIS driver réteget Web-ből nem debuggolható a normál JTAG -es módon Exportálásnál nem exportálja ki a forrásfile-okat Coocoxexport debuggolásamég nem az igazi (1 hónapos feature) BME-MIT 2015 47.

Továbbfejlesztés Coocox 2.0 Git alapú komponens adatok oegészen máshogy kell majd a komponenseket kezelni Megváltozik a project struktúra De milyen API-kat fog támogatni? BME-MIT 2015 48.

Szoftver trendek 2015, mi a várható jövő? ARM MBED NXP 2006 2010 2015 CMSISv1 CMSISv2 CMSISv3 CMSISv4 Web v1 v2 open V3 IOT Firmware Library + Code Red ST TI Silabs Firmware Library Firmware library + CCS Cube platform Firmwarelibrary+ CCS + ecosystem Simplicity studio + firmware library + ecosystem Coocox Coocox v1 Coocox v2 BME-MIT 2015 49.