34 cortex m4
DESCRIPTION
microTRANSCRIPT
-
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