msp432™ mcus training part 2: cortex m4f core 1. msp432 | 32-bit cortex-m4f 32-bit pipeline...

10
MSP432™ MCUs Training Part 2: Cortex M4F Core 1

Upload: sharyl-powell

Post on 23-Dec-2015

238 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

MSP432™ MCUs TrainingPart 2: Cortex M4F Core

1

Page 2: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

MSP432 | 32-bit Cortex-M4F

• 32-bit pipeline architecture

• Cortex-M4 with DSP extension instruction set

• Floating Point Unit

• Standard Cortex-M Debugger Module, Serial Wire Debug, ITM Trace support

• Core modules including DMA, SysTick, & Interrupt (NVIC)

2

Page 3: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

Cortex-M | Core Comparison

3

Cortex-MThum

bThumb

-2HW MPY

HWDIV

Saturated

math

DSP-extensions

FPUARM

architecture

Cortex-M0 Most Subset1 or 32 cycle

No No No NoARMv6-M

Von Neumann

Cortex-M0+

Most Subset1 or 32 cycle

No No No NoARMv6-M

Von Neumann

Cortex-M1 Most Subset3 or 33 cycle

No No No NoARMv6-M

Von Neumann

Cortex-M3

Entire Entire 1 cycle2-12 cycle

sYes No No

ARMv7-MHarvard

Cortex-M4

Entire Entire 1 cycle2-12 cycle

sYes Yes

Optional

Yes for MSP43

2

ARMv7E-MHarvard

Page 4: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

FPU | Floating-Point Unit

• The FPU provides floating-point computation functionality that is compliant with the IEEE 754 standard

• Enables conversions between fixed-point and floating-point data formats, and floating-point constant instructions

• The Cortex-M4F FPU fully supports single-precision:– Add– Subtract– Multiply– Divide– Single cycle multiply and accumulate (MAC)– Square root

Modes of Operation...

Page 5: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

MSP432 | CoreMark = 3.41CM/MHzCore Device CoreMark

Cortex-M4

MSP432 3.40.

Competitor A 3.34 [168MHz-Ohs, --no_size_constraints]

Cortex-M3Competitor A 2.98

Competitor B 2.15

Cortex-M0+

Competitor C 2.28

Competitor B 2.07

5*Source: MSP-Benchmark twiki

Test Conditions• Number measured with IAR

• 3MHz, Active Mode with VCORE=0

Page 6: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

ULPBenchEEMBC’s ULPBench provides a true comparison of microcontroller current consumption and efficiency

6

TI MSP432

TI FR5969

COMP A COMP B COMP C0

40

80

120

160

ULPBench Scores

90% better score than our closest competitor!

www.eembc.org/ulpbench

TBD

153.3

119

Page 7: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

Cortex-M Interrupt Nested Vector Interrupt Controller (NVIC)

7

Page 8: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

Interrupts | Nested Vectored Interrupt Controller (NVIC)• Handles exceptions and interrupts

• 8 programmable priority levels, priority grouping

• 7 exceptions and 71 Interrupts

• Automatic state saving and restoring: R0–R3, R12, LR, PSR, and PC

• Automatic reading of the vector table entry

• Pre-emptive/Nested Interrupts

• Tail-chaining– Deterministic: always 12 cycles or 6 with tail-chaining

t

ADC interrupt

Timer_A interrupt

Main application (foreground)

Page 9: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

PUSH POP ISR 1 POP ISR 2

PUSH ISR 1 POPISR 2

IRQ1

IRQ2

Typical processor

Cortex M4Interrupt handling in HW

6Cycles

12Cycles

Interrupts | Latency: Tail Chaining

HighestPriority

Tail-chaining

PUSH

12Cycles

Saving 18 cycles: 24 cycles (POP + PUSH) 6 cycles (Tail-chaining)

Page 10: MSP432™ MCUs Training Part 2: Cortex M4F Core 1. MSP432 | 32-bit Cortex-M4F 32-bit pipeline architecture Cortex-M4 with DSP extension instruction set

Interrupts | Declaration on MSP432

10

Option 1: Declare the entire Interrupt Vector table

Option 2: MSP430 methodUse #pragma vector

msp

432_s

tart

up_c

cs.c

#pragma vector = USCI_B0_VECTOR__interrupt void USCI_B0_ISR(void){ switch(__even_in_range(UCB0IV,12)) { case 0: break; ……}

//All unused interrupts trapped#pragma vector = unused_interrupts__interrupt void intDefaultHandler(void){ //trap}

1. MSP430 code re-use2. Interrupt vector & handler function defined together

ISR Handlers: stubs defined in table. Treated as regular function, code in user’s application