![Page 1: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/1.jpg)
Nagyteljesítményű mikrovezérlők
5. System Control block
© BME-MIT 2015Budapest University of Technology and Economics
Department of Measurement and Information Systems
Scherer Balázs
![Page 2: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/2.jpg)
Tartalom
� Az ARM7 magú vezérlők felépítésének fejlődése
� A legelterjedtebb Cortex sorozatok belső felépítése és felépítésük fejlődése
� System Control Block
© BME-MIT 2015 2.
o A reset utáni elindulás folyamata
o A Flash gyorsító modul
o Órajel források és órajel elosztás
� CMSIS
![Page 3: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/3.jpg)
Az ARM7 magú vezérlők felépítésének
fejlődése
© BME-MIT 2015 3.
fejlődése
![Page 4: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/4.jpg)
Az első ARM7 magú vezérlők belső felépítése
2003: LPC210x
ARM7 core
Vektor Interrupt
ControllerAHB bridge
On-chip memory
© BME-MIT 2015 4.
AHB/APB bridge
AHB bus
APB bus
Periph 1
Periph 2
Periph 3
Periph 4
AHB bridge
![Page 5: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/5.jpg)
AHB vs APB
� Mindkettő az ARM Advanced Microcontroller Bus Architecture (AMBA) szabványhoz tartozik
� AHB Advanced High-performance Bus
� Van Pipelining
� Advanced Peripheral Bus
� Nincs Pipelining
� Single master
© BME-MIT 2015 5.
� Van Pipelining
� Multiple master
� Burst-ös átvitel
� Full-duplex paralel komm.
� Single master
� Kis interfész komplexitás
� Kis fogyasztás
� 32bites buszszélesség
![Page 6: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/6.jpg)
Az utolsó szériás ARM7 magú vezérlő
2006: LPC23xx
ARM7 core
Vektor Interrupt
Controller
On-chip memory
USB
memory
Fast I/O
DMA
controller
© BME-MIT 2015 6.
AHB/APB bridge
AHB1 bus
APB bus
Periph 1
Periph 2
Periph 3
Periph 4
AH
B b
ridge
USB
with DMA
AH
B b
rid
ge
Ethernet
with DMA
Ethernet
memoryAHB ot AHB
bridge
![Page 7: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/7.jpg)
A legelterjedtebb Cortex M3 sorozatok
belső felépítése és felépítésük fejlődése
© BME-MIT 2015 7.
belső felépítése és felépítésük fejlődése
![Page 8: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/8.jpg)
32 bites trendek 2003-2014
Flash [kbyte]M0 M3
M0,M0+ M4, M3
M3, M0
1024
512
256
128
64
© BME-MIT 2015 8.
lábszám
64
32
16
8
4
2
1
0,5
8 14-16 20 28-32-36 40-44-48 64 80-100 144 208 256
![Page 9: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/9.jpg)
ARM7, Cortex M3, M0 összehasonlításmemória hozzáférés
© BME-MIT 2015 9.
ARM7TDMI Cortex M3 Cortex M0
![Page 10: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/10.jpg)
Első generációs Cortex M3
2006: Luminary LM3S102
ARM Cortex M3
Proc
20MHz
8 Kbyte
Flash
iCode
iData
System Bus
© BME-MIT 2015 10.
APB bridge
APB bus
GPIO
Periph 2
Periph 3
Periph 4
System Bus
2 Kbyte
SRAM
![Page 11: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/11.jpg)
Második generációs Cortex M3
2007: STM32F103 (Max 72 MHz)
• APB1: max. 72MHz
• APB2: max. 36MHz
© BME-MIT 2015 11.
![Page 12: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/12.jpg)
Több master a buszon
Slave
MasterArbiter
Slave
Slave
Master
Master
Megosztott AHB
Busz
© BME-MIT 2015 12.
Slave
Master
Slave
Slave
Master Master
AHB Busz Matrix
![Page 13: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/13.jpg)
Mi történik a pontoknál
� Arbitráció: általában round-robin
© BME-MIT 2015 13.
![Page 14: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/14.jpg)
Harmadik generációs Cortex M3
2009: STM32F107 (Max 72 MHz)
© BME-MIT 2015 14.
![Page 15: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/15.jpg)
Harmadik generációs Cortex M3
• 2009: Az LPC1768 belső
architektúrája
© BME-MIT 2015 15.
![Page 16: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/16.jpg)
Negyedik Cortex M3 generáció• 2010: Az STM32F2xx belső architektúrája
© BME-MIT 2015 16.
![Page 17: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/17.jpg)
Negyedik Cortex M3 generáció• 2010: Az STM32F2xx belső buszszerkezete
© BME-MIT 2015 17.
![Page 18: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/18.jpg)
Negyedik Cortex M3 generáció
� LPC18xx
© BME-MIT 2015 18.
![Page 19: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/19.jpg)
A legelterjedtebb Cortex M0 sorozatok
belső felépítése
© BME-MIT 2015 19.
belső felépítése
![Page 20: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/20.jpg)
ARM7, Cortex M3, M0 összehasonlításmemória hozzáférés
© BME-MIT 2015 20.
ARM7TDMI Cortex M3 Cortex M0
![Page 21: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/21.jpg)
LPC800
� AHB-Liteo Redukált bus
specifikáció
o 1 Master/layer
� Switch Matrix
© BME-MIT 2015 21.
![Page 22: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/22.jpg)
STMF0xx
© BME-MIT 2015 22.
![Page 23: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/23.jpg)
A legelterjedtebb Cortex M4 sorozatok
belső felépítése
© BME-MIT 2015 23.
belső felépítése
![Page 24: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/24.jpg)
STMF4xxx
© BME-MIT 2015 24.
![Page 25: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/25.jpg)
Az LPC4300 család� Cortex-M4 alaú Digital Signal Controller� Cortex-M0 Alrendszer a periféria funkciókra� max. 1 MB Flash
o Két bankos Flash
� max. 200 kbyte SRAM� High speed USB� Pin kompatibilis az M3 sorozattal � További tulasjdonságok
© BME-MIT 2015 25.
� További tulasjdonságoko 10/100 Ethernet MACo LCD panel controller (max. 1024H × 768V)o 2x 10-bit ADCs és 10-bit DAC at 400kspso 8 csatornás DMA vezérlőo Motor Control PWM, Quadrature Encodero 4x UARTs, 2x I2C, I2S, CAN 2.0B, 2x SSP/SPI
![Page 26: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/26.jpg)
Cortex M4, Cortex M0 együtt
� Szeparálható a feldolgozás és a Real-Time vezérlés
� Külön NVIC
� Osztott memóriarendszeren keresztüli kommunikáció
© BME-MIT 2015 26.
![Page 27: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/27.jpg)
Cortex M0, M4 együttes használat példaaudió feldolgozás
� Cortex M0: perifériakezelés: I2S, USB
� Cortex M4: teljes teljesítménnyel feldolgozás
© BME-MIT 2015 27.
![Page 28: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/28.jpg)
Cortex M0, M4 motor controll
� Cortex-M4: Motor control Field Oriented Control (FOC)
� Cortex M0: CAN parancs feldolgozás
© BME-MIT 2015 28.
![Page 29: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/29.jpg)
LPC4300 belső felépítés
© BME-MIT 2015 29.
![Page 30: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/30.jpg)
LPC43xx
� Dual Core
© BME-MIT 2015 30.
![Page 31: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/31.jpg)
LPC43xx memória rendszer
� Dual Core
o Az M4 és M0 is tud Flash-ből kódot végrehajtani összeakadás nélkül
o M0 a saját RAM-jából futtatni
© BME-MIT 2015 31.
futtatni
o ROM code Thumban van, mindkettő tudja futtatni
o M4 MPU-ja tudja védeni az M0 által használt memóriákat
![Page 32: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/32.jpg)
LPC4300 memóriaFlash
� Két 512K byte-os flash memoria blokk
o Lehet összefüggő 1 Mbyte-os blokként használni
� 256-bit-es memória vezérlő
o 150MHz.
© BME-MIT 2015 32.
![Page 33: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/33.jpg)
LPC4300 memóriaSRAM
� max. 256KB SRAM
� Sok blokkra osztva
o párhuzamos DMA
o két core működés
© BME-MIT 2015 33.
![Page 34: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/34.jpg)
A legelterjedtebb Cortex M7 sorozatok
belső felépítése
© BME-MIT 2015 34.
belső felépítése
![Page 35: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/35.jpg)
STM32F7xx belső felépítés
© BME-MIT 2015 35.
![Page 36: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/36.jpg)
STM32F7xx belső felépítés
© BME-MIT 2015 36.
![Page 37: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/37.jpg)
System Control Block
© BME-MIT 2015 37.
![Page 38: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/38.jpg)
System Control block
� A rendszer órajel forrásának kiválasztásao Külső Quartz, Belső RC oszcillátor, Órajel quartz
� PLL (Phase Locked Loop)o A rendszer órajel meghatározása
� Egyes periféria buszok órajelének meghatározásao Core órajel és a különböző periféria órajelek közötti viszony
© BME-MIT 2015 38.
o Core órajel és a különböző periféria órajelek közötti viszony
� Gyorsabb vezérlőknél a Flash hozzáférés szabályozásao Flash gyorsítás, Wait ciklusok száma stb.
� Perifériák tápellátásának engedélyezéseo A modern vezérlőkben gyakorlatilag periféria szinten kapcsolhatóak
le az egységek
� Lábak alternatív funkcióinak meghatározása
![Page 39: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/39.jpg)
Reset
© BME-MIT 2015 39.
![Page 40: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/40.jpg)
A Reset és elindulás folyamata
� A reset forrása
o Power-on
o Watchdog
o Brown – out
o Külső láb
© BME-MIT 2015 40.
o Külső láb
o Szoftveres
� A reset forrása egy regiszterből kiolvasható
� Mi történik, mi indul el a reset hatására?
![Page 41: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/41.jpg)
Az NVIC ugrótábla
0
-1
-2
-3 (Highest)
Priority
4
3
2
1
No.
MPU violation or access to illegal locationssettableMemManage Fault
Default fault if other hander not implementedfixedHard Fault
Non-Maskable InterruptfixedNMI
ResetfixedReset
DescriptionsType of Priority
Exception Type
0
-1
-2
-3 (Highest)
Priority
4
3
2
1
No.
MPU violation or access to illegal locationssettableMemManage Fault
Default fault if other hander not implementedfixedHard Fault
Non-Maskable InterruptfixedNMI
ResetfixedReset
DescriptionsType of Priority
Exception Type
� Az ugrótábla a címtartomány alján a 0x00000004-ről indul.
o A 0x00000000-án a kezdő stack pointer van, hogy minél hamarabb lehessen C-t használni.
© BME-MIT 2015 41.
247
…………………..
7
6
5
N.A.
4
3
N.A.
2
1
256
……
16
15
14
13
12
11
7-10
6
5
External Interrupt #0settableInterrupt #0
External Interrupt #240settableInterrupt#240
…………………..settable…………………..
System Tick TimersettableSYSTICK
Pendable request for System DevicesettablePendSV
N.A.Reserved
Break points, watch points, external debugsettableDebug Monitor
System Service callsettableSVCall
N.A.Reserved
Exceptions due to program errorssettableUsage Fault
Fault if AHB interface receives errorsettableBus Fault
247
…………………..
7
6
5
N.A.
4
3
N.A.
2
1
256
……
16
15
14
13
12
11
7-10
6
5
External Interrupt #0settableInterrupt #0
External Interrupt #240settableInterrupt#240
…………………..settable…………………..
System Tick TimersettableSYSTICK
Pendable request for System DevicesettablePendSV
N.A.Reserved
Break points, watch points, external debugsettableDebug Monitor
System Service callsettableSVCall
N.A.Reserved
Exceptions due to program errorssettableUsage Fault
Fault if AHB interface receives errorsettableBus Fault
Gyártó
specifikus
![Page 42: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/42.jpg)
A reset utáni elindulás folyamata
© BME-MIT 2015 42.
![Page 43: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/43.jpg)
Beépített boot code
� Az első on-chip flash-es ARM7-től
o A flash programozás nem triviális
• RAM-ba letölteni a programot, majd onnan futtatva az felprogramozni a Flash-t
o JTAG-elés az első időkben végképp problémás
© BME-MIT 2015 43.
o JTAG-elés az első időkben végképp problémás volt
� Beépített bootkód, amely valamilyen módon támogatja a Flash programozását
o Hol van ez a bootmód és hogyan indul el?
![Page 44: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/44.jpg)
Hol helyezkedik el a boot code
� STM32F107
© BME-MIT 2015 44.
![Page 45: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/45.jpg)
STM32F107 Boot konfiguráció
� Két külső láb függvénye
© BME-MIT 2015 45.
![Page 46: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/46.jpg)
STM32F107 viselkedése bootnál
© BME-MIT 2015 46.
![Page 47: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/47.jpg)
Flash gyorsító modul
© BME-MIT 2015 47.
![Page 48: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/48.jpg)
Flash memória
� A Flash memóriák kisebb helyet foglalnak el, mint a RAM-ok, de lassabbak.
� Flash memória hozzáférési időko 30ns - 50ns (33 –25 MHz)
� Ez kevés a 60, 72, 120, 180, 2xx MHz-ről való
© BME-MIT 2015 48.
� Ez kevés a 60, 72, 120, 180, 2xx MHz-ről való működéshez
� Megoldásoko Futtassunk kódot RAM-ból
• RAM drága és sokat fogyaszt.o Emeljük meg Flash hozzáférés bitszámát,
• 64bit, 128 bit• Valamilyen interfészt igényel
![Page 49: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/49.jpg)
Az STM32F10x megoldása 2009
� 2 db 64 bites prefetch buffer
� A wait ciklusok számát fel kell programozni.
© BME-MIT 2015 49.
![Page 50: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/50.jpg)
Az LPC1768 megoldása 2010
� 8 darab 128 bites szó
� nem csak utasítások, de adatokat is fel tud hozni
� wait ciklusok számát fel kell programozni
© BME-MIT 2015 50.
![Page 51: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/51.jpg)
LPC1768 megoldás eredményei
� RAM-ból való kód végrehajtással összevetve
o A végrehajtási sebesség 16% -on belül marad
o A fogyasztás 25%-al kevesebb
� A régi ARM7-es verziónál használthoz képest
© BME-MIT 2015 51.
� A régi ARM7-es verziónál használthoz képest
o Sima 128 bites Flash interfész
o 45% teljesítmény növekedés
![Page 52: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/52.jpg)
Benchmark eredmények
1.5
2
2.5
3Relative perform
ance
LPC2376
LPC17XX
M3 Comp
© BME-MIT 2015 52.
0
0.5
1
a2
tim
e
aifft
r
aifirf
aiif
ft
ba
se
fp
bitm
np
ca
ch
eb
ca
nrd
r
idctr
n
iirflt
ma
trix
pn
trch
pu
wm
od
rsp
ee
d
tblo
ok
ttsp
rk
EEMBC Benchmark
Relative perform
ance
M3 Comp
![Page 53: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/53.jpg)
STM32F2xx/STM32F4xx megoldásaBranch manegement és Cache újdonság
© BME-MIT 2015 53.
![Page 54: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/54.jpg)
STM32F2xx / STM32F4xx megoldása
© BME-MIT 2015 54.
![Page 55: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/55.jpg)
Órajel elosztás
© BME-MIT 2015 55.
![Page 56: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/56.jpg)
Órajel szétosztás problémái
� Követelmény sokféle alapórajel
o Quartz
• Pontos, stabil, drága
o RC osc
• Pontatlan, olcsó
� Sokféle periféria igény
© BME-MIT 2015 56.
� Sokféle periféria igény
o Alap perifériablokkok
o I/O lábak
o Ethernet
o USB
![Page 57: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/57.jpg)
Cortex M3 magú vezérlő belső felépítése
2009: STM32F107 (Max 72 MHz)
© BME-MIT 2015 57.
![Page 58: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/58.jpg)
Az STM32F107 megoldása
TIMxCLK
TIM2,3,4
APB1 Prescaler/1,2,4,8,16
AHB Prescaler/1,2…512
If (APB1 pres
=1) x1Else x2
PCLK1 up to 36MHz
PCLK2 up to 72MHz
HCLK up to 72MHz
TIMxCLK
TIM2,3,4
APB1 Prescaler/1,2,4,8,16
AHB Prescaler/1,2…512
If (APB1 pres
=1) x1Else x2
PCLK1 up to 36MHz
PCLK2 up to 72MHz
HCLK up to 72MHz
HSE Osc
OSC_OUT
OSC_IN
4 -16 MHz
up to 72 MHz
SYSCLKx2...x16 PLL
PLLCLK
HSI RC
/2
/2
8MHz
HSE Osc
OSC_OUT
OSC_IN
4 -16 MHz
up to 72 MHz
SYSCLKx2...x16 PLL
PLLCLK
HSI RC
/2
/2
HSE Osc
OSC_OUT
OSC_IN
4 -16 MHz
up to 72 MHz
SYSCLKx2...x16 PLL
PLLCLK
HSI RC
/2
/2
HSE OscHSE Osc
OSC_OUT
OSC_IN
4 -16 MHz
OSC_OUT
OSC_IN
4 -16 MHz
up to 72 MHz
SYSCLK
up to 72 MHz
SYSCLKx2...x16 PLL
PLLCLK
HSI RC
/2
x2...x16 PLL
PLLCLK
HSI RC
/2
HSI RC
/2
/2/2
8MHz
© BME-MIT 2015 58.
TIM1CLK APB2
Prescaler/1,2,4,8,16
If (APB2 pres
=1) x1Else x2
ADC Prescaler/2,4,6,8
ADCCLK
TIM1CLK APB2
Prescaler/1,2,4,8,16
If (APB2 pres
=1) x1Else x2
ADC Prescaler/2,4,6,8
ADCCLK
USB Prescaler/1,1.5
USBCLK 48MHz
USB Prescaler/1,1.5
USBCLK 48MHz
CSSCSS
LSI RC
32.768KHz
/128
LSE OSc
OSC32_IN
OSC32_OUT
~40KHz IWDGCLK
RTCCLK
LSI RC
32.768KHz
/128
LSE OSc
OSC32_IN
OSC32_OUT
~40KHz IWDGCLK
RTCCLK
![Page 59: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/59.jpg)
Az LPC1768 megoldása
© BME-MIT 2015 59.
![Page 60: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/60.jpg)
Az LPC1768 megoldása
© BME-MIT 2015 60.
![Page 61: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/61.jpg)
STM32F4xx
© BME-MIT 2015 61.
![Page 62: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/62.jpg)
Az LPC43xx megoldása
© BME-MIT 2015 62.
![Page 63: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/63.jpg)
Órajel szétosztás problémái
� Egy egyszerű LED villogtatás is minimum 1 órajel engedélyezést igényel, de akár 3-4-et is igényelhet
© BME-MIT 2015 63.
![Page 64: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/64.jpg)
CMSIS
Cortex Microcontroller
© BME-MIT 2015 64.
Software Interface Standard
![Page 65: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/65.jpg)
Fejlesztési költségek alakulása
© BME-MIT 2015 65.
![Page 66: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/66.jpg)
Egy általános beágyazott rendszer SW architektúrája
ISO C
Math
Libraries
Application
DPY-TRM
Hardware független mitmót API
COM-R
04
MIKROP
Felhasználói project
© BME-MIT 2015 66.
interrupts
Exceptions
Hardware
Abstraction Layer
Serial
Device Drivers
KernelMCU-ARM API
I/O kezelés
SPI
I2C
Előre fordított
eCos distribúció
![Page 67: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/67.jpg)
CMSIS szerkezete (v1.3)
© BME-MIT 2015 67.
![Page 68: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/68.jpg)
CMSIS szerkezete (v3)
© BME-MIT 2015 68.
![Page 69: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/69.jpg)
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
© BME-MIT 2015 69.
� 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
![Page 70: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/70.jpg)
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
© BME-MIT 2015 70.
core_cm3.c ARM (fordítófüggő részekkel) A Cortex-M3 alapperifériáinak és regisztereinek kezelőfüggvényei
startup_deviceARM, de a mikrovezérlő, vagy compiler
gyártó adoptálhatja és testreszabhatjaA Cortex-M mikrovezérlő startupkódja és a teljes mikrovezérlő függő ugrótábla
system_deviceARM, 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.
![Page 71: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/71.jpg)
CMSIS core struktúra
© BME-MIT 2015 71.
![Page 72: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/72.jpg)
A device.h szerepe
CMSIS
� Az egyetlen szükséges include file a felhasználó számára (az induláshoz)
© BME-MIT 2015 72.
stm32f10x.h
device.h
core_cm3.h
system_stm32f10x.h
stdint.h
![Page 73: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/73.jpg)
A startup_device file
� Fordító függő
� Startup Code, ugrótábla
� a GCC megvalósításnál a ugrótáblákhoz úgynevezett weak pragmákat használnak
© BME-MIT 2015 73.
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
![Page 74: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/74.jpg)
A system_device.c
� Minden Cortex M3 vezérlő azonos módon elindítható legyen
� Minimum szolgáltatások
Függvény definició Leírás
© BME-MIT 2015 74.
Függvény definició Leírás
void SystemInit (void)
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.
void SystemCoreClockUpdate (void) Beállítja a PLL-t a SystemCoreClock változó értékének megfelelően.
Változó definítció Leírásuint32_t SystemCoreClock A rendszer órajel frekvenciáját tartalmazza.
![Page 75: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/75.jpg)
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
© BME-MIT 2015 75.
� 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.
![Page 76: Scherer Balázs - BME Méréstechnika és Információs ......LPC18xx ©BME-MIT 2015 18. A legelterjedtebb Cortex M0 sorozatok belső felépítése ©BME-MIT 2015 19. ARM7, Cortex](https://reader033.vdocuments.pub/reader033/viewer/2022052503/60b204059acd062e5a3789a6/html5/thumbnails/76.jpg)
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
© BME-MIT 2015 76.
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 brief leí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.