34 cortex m4

Upload: semeniuc-adrian

Post on 15-Oct-2015

64 views

Category:

Documents


1 download

DESCRIPTION

micro

TRANSCRIPT

  • Cortex-M4

    Dariusz Chaberski

  • STM32 Cortex-M4 implementation

    2

  • Processor core registers

    3

  • APSR, IPSR, EPSR and PSR bit assignments

    ICI - Interruptible-continuable instructions (LDM, STM, PUSH, POP, VLDM, VSTM, VPUSH, VPOP)

    IT - If-Then block

    4

  • Load and Store Multiple instructions

    5

  • Condition Flags - Example

    6

  • Memory map

    7

  • Bit-band mapping

    8

  • Exception model

    9

  • Vector table

    10

  • Cortex-M4 stack frame layout

    11

  • Condition code suffixes

    12

  • Condition code suffixes - continued

    13

  • Instruction width selection

    14

  • Basic structure of a five-volt tolerant I/O port bit

    15

  • Port bit configuration table

    GP = general-purpose, PP = push-pull, PU = pull-up, PD = pull-down, OD = open-drain, AF =alternate function

    16

  • Port bit configuration table

    17

  • DMA block diagram

    18

  • Channel selection

    19

  • EXTI block diagram

    20

  • Single ADC block diagram

    21

  • Single ADC block diagram

    22

  • Timing diagram

    23

  • Data alignment of 12-bit data

    24

  • Left alignment of 6-bit data

    25

  • Multi ADC block diagram

    26

  • Multi ADC block diagram

    27

  • DAC channel block diagram

    28

  • Noise generation

    29

  • DAC conversion (SW trigger enabled) with triangle wavegeneration

    30

  • Digital camera interface

    31

  • DCMI signal waveforms

    32

  • Advanced-control timers (TIM1&TIM8)

    33

  • Addressing Mode 1 - Data-processing operands

    {}{S} , ,

    + #

    immed_8 == 0x3F, rotate_imm == 0xE

    immed_8 == 0xFC, rotate_imm == 0xF

    +

    + , LSL #

    34

  • Addressing Mode 1 - Data-processing operands

    {}{S} , ,

    + , LSL

    + , LSR #

    + , LSR

    + , ASR #

    + , ASR

    + , ROR #

    + , ROR

    + , RRX

    35

  • Addressing Mode 2 - Load and Store Word or Unsigned Byte

    LDR|STR{}{B}{T} ,

    + [, #+/-]

    + [, +/-]

    + [, +/-, #]

    [, +/-, LSL #]

    [, +/-, LSR #]

    [, +/-, ASR #]

    [, +/-, ROR #]

    [, +/-, RRX]

    36

  • Addressing Mode 2 - Load and Store Word or Unsigned Byte

    LDR|STR{}{B}{T} ,

    + [, #+/-]!

    + [, +/-]!

    + [, +/-, #]!

    + [], #+/-

    + [], +/-

    + [], +/-, #

    37

  • Addressing Mode 3 - Miscellaneous Loads and Stores

    LDR|STR{}H|SH|SB|D ,

    + [, #+/-]

    + [, +/-]

    + [, #+/-]!

    + [, +/-]!

    + [], #+/-

    + [], +/-

    38

  • Addressing Mode 4 - Load and Store Multiple

    LDM|STM{} {!}, {^}

    + IA (Increment After)

    + IB (Increment Before)

    + DA (Decrement After)

    + DB (Decrement Before)

    39

  • Addressing Mode 5 - Load and Store Coprocessor

    {}{L} ,,

    + [,#+/-*4]

    + [,#+/-*4]!

    + [],#+/-*4

    + [],

    40

  • ARM Instructions

    ADC{}{S} , ,

    ADDS R4,R0,R2ADCS R5,R1,R3

    41

  • ARM Instructions

    AND{}{S} , ,

    42

  • ARM Instructions

    B{L}{}

    43

  • ARM Instructions

    BIC{}{S} , ,

    44

  • ARM Instructions

    BLX

    45

  • ARM Instructions

    BLX{}

    46

  • ARM Instructions

    CDP{} , , , , , CDP2 , , , , ,

    47

  • ARM Instructions

    CLZ{} ,

    48

  • ARM Instructions

    LDC{}{L} , , LDC2{L} , ,

    49

  • ARM Instructions

    MLA{}{S} , , ,

    50

  • ARM Instructions

    QADD{} , ,

    51

  • Thumb Instructions

    ADC ,

    52

  • Thumb Instructions

    Rd = Rn + immed_3

    Rd = Rd + immed_8

    Rd = Rn + Rm

    53

  • Thumb Instructions

    Rd = Rd + Rm

    Rd = (PC AND 0xFFFFFFFC) + (immed_8 * 4)

    54

  • Thumb Instructions

    Rd = SP + (immed_8

  • Thumb Instructions

    56