76
Nagyteljesítményű mikrovezérlők 5. System Control block © BME-MIT 2015 Budapest University of Technology and Economics Department of Measurement and Information Systems Scherer Balázs

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

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ó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

Ó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

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

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

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

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

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

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

Ó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

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

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

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

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

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

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

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

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

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

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

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

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

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.