Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование встроенных приложений STM23F10xxx_Keil_uVision-4

.pdf
Скачиваний:
32
Добавлен:
06.01.2021
Размер:
2.41 Mб
Скачать

СПБГУАП группа 4736 / https://new.guap.ru

+5 5 ( 4, (8 4( ( 4 1.

& 5, : ( ( 4 ,6 (,$49 E :.

Œ

c-

$ .

b$

 

 

 

IRQ

 

$

 

>

 

‰ >

 

 

$7$

 

 

 

 

 

 

-3

6

 

0x0004

Reset

 

$)+ $7$.

-14

-2

6

 

0x0008

NMI

 

‰$ )

-13

-1

6

 

0x000C

HARDFAULT

 

}7 7 + + $:.

-12

0

 

 

0x0010

MEMFAULT

 

7 + ( $

 

 

 

 

 

 

 

$F$F $ ).

-11

0

 

 

0x0014

BUSFAULT

 

}9 7 $ $ $] :

 

 

 

 

 

 

 

9.

-10

0

 

 

0x0018

USGFAULT

 

†$> ) $:

 

 

 

 

 

 

 

= ( , 0)

-5

0

6

 

0x002C

SVCALL

 

6) $ $+ $#7).

-4

0

 

 

0x0030

MONITOR

 

8 7 $ 9 >.

-2

0

6

 

0x0038

PENDSV

 

} )+ $ $ $

 

 

 

 

 

 

 

$+$ .

-1

0

6

 

0x003C

SYSTICK

 

c ) $ $= +.

0

0

 

 

0x0040

IRQ0

 

 

1

0

 

 

0x0044

IRQ1

 

6 9 ), )

2

0

 

 

0x0048

IRQ2

 

3

0

 

 

0x004C

IRQ3

 

# =

 

 

 

 

 

 

 

STM32F10xxx

 

 

 

. .

 

 

66

0

 

 

0x0140

IRQ66

 

 

67

0

 

 

0x014C

IRQ67

 

 

^ 8( (: 1. $) ) $ : ) $)

$ = > .

2.$) 9 ) $ ) = 7) > ) () > )) $ = ) 7$>, ] # 7) % ] 0 – 15. Ž # = 7) 7• ) = ), F )+ .

3.) )$9 $>$ “-3”, $) “15”.

` ,( ( (8 48 ( 4 18 10 8 Cortex-M3.

c$ $7$ $ $)] ) + 0. d 7) = ,

7] $ # = $ $F ) =$

SCB_SHPRx (C .”G SSB_AIRCR{PRIGROUP]):

 

 

 

$ )

G

 

 

‰ >

8 =$

 

ˆ )

 

 

 

 

 

 

$$

 

MEMFAULT

 

7 + .

SCB_SHPR1

 

SHP[0] [7:4]

 

BUSFAULT

 

}9 7 $] : 9.

 

 

SHP[1] [7:4]

 

USGFAULT

 

†$> $: =.

 

 

SHP[2] [7:4]

 

SVCALL

 

6) $ $+ $#7)

SCB_SHPR2

 

SHP[7] [7:4]

 

PENDSV

 

.$ $ $ $+$ .

SCB_SHPR3

 

SHP[10] [7:4]

 

SYSTICK

 

c ) $ $= +.

 

 

SHP[11][7:4]

^ 8( (: 1. c 0 O ] ) + $)+ )$9 +, 15 – $)+ +. 2. q 9 ) PRI_x[3:0] STM32F10xxx $ $ .

47

СПБГУАП группа 4736 / https://new.guap.ru

SCB->SHCSR (O() E ,( 1 1 1 (8 49 ( 4) $

$ $7$ - 0x0000 0000. ˆ ) $) > $ .

ˆ

 

‰ >

 

0

MEMFAULT

1: 6 )+ ) . . $ “0”

 

ACT

) = ).

 

 

1

BUSFAULT

 

 

- // -

 

 

 

ACT

 

 

 

 

 

 

2

-

8

 

 

 

 

 

3

USGFAULT

 

 

- // -

 

 

 

ACT

 

 

 

 

 

 

4-6

-

8

 

 

 

 

 

7

SVCALL

 

 

- // -

 

 

 

ACT

 

 

 

 

 

 

8

MONITOR

 

 

- // -

 

 

 

ACT

 

 

 

 

 

 

9

-

8

 

 

 

 

 

10

PENDSV

 

 

- // -

 

 

 

ACT

 

 

 

 

 

 

11

SYSTICK

 

 

- // -

 

 

 

ACT

 

 

 

 

 

 

12

USGFAULT

1: 6 )+ ) ) #.

 

PENDED

.$ “0” > ).

13

MEMFAULT

 

 

- // -

 

 

 

PENDED

 

 

 

 

 

 

14

BUSFAULT

 

 

- // -

 

 

 

PENDED

 

 

 

 

 

 

15

SVCALL

 

 

- // -

 

 

 

PENDED

 

 

 

 

 

 

48

СПБГУАП группа 4736 / https://new.guap.ru

16

MEMFAULT

0: c ) F.

 

ENA

1: c ) MEMFAULT 9.

17

BUSFAULT

0: c ) F.

 

ENA

1: c ) BUSFAULT 9.

18

USGFAULT

0: c ) F.

 

ENA

1: c ) USGFAULT 9.

19-31

-

8

SCB->ICSR (O() E ,( 1 ( 4 18)

‰ >

7

 

NMI

1: } # ) $ ) NMI, $ ,

PENDSET

$ )$ F + . (c > “1” >,

 

> ) ) NMI #.)

 

0: •** .

PENDSV

1: } # 7 7 ) PENDSV.

SET

0: •** .

PENDSV

1: } 7 7 ) PENDSV, ] F =$ >.

CLR

0: •** .

PENDST

1: } # 7 7 ) SYSTICK.

SET

0: •** .

PENDST

1: } 7 7 ) SYSTICK, ] F =$ >.

CLR

0: •** .

ISR

0: ‰ # )] ) +.

PENDING

1: t$ # ) ).

 

^ 8( (: • * = $ $ $ ), $) $

 

9 7 xFAULT ( IRQ= -10 IRQ= -13).

VECTOR

6 # = ) $ $) )$ , . .

PENDING

), 7 )$ $ F =. t$

[9:0]

VECTORPENDING[9:0]=0x000000000, # )] ) +.

RETOBASE

0: 6$ ) 7 7 ).

 

1: t$ 7 7 ) ), # $ # 7 7 )$

 

$ ) ]$ 7 7.

VECTOR

6 = ). d 7) = IRQ ($ .

ACTIVE

Ž 7 : ) + $> )] $: +”),

[8:0]

O + > ) )>$ 16.

 

t$ VECTORACTIVE[8:0]=0]000000000, )+

 

)] ) +.

^ 8( (: d 7) > + > VECTORxxx Œ IRQ ($ . “Ž 7 :

) + $> )] $: +”), O + > ) )>$ 16 .

49

СПБГУАП группа 4736 / https://new.guap.ru

SCB->AIRCR (O() E ,( 1 ( 4 18 ) 88 ) 5)

‰ 7

‰ >

*KEY*[31-16]

r > $ =$ . d$ 0xFA05. d 7) >

 

$

 

r $ =$ , 7] $ 0x05FA.

ENDIANESS

c $ > F ] $ ):

 

0: c ) % 9 + 7.

 

1: c ) % $9 + 7.

PRIGROUP

G $> +. } >$

 

= =. ( . #)

SYSRESETREQ

1: c = )+ $7$.

VECTCLRACTIVE

. ) . d$ “00”. c

VECTRESET

) $ “1” $ .

u E ( (,( PRIGROUP).

6$ ) 7• ) = ). < # + = ) $ $+

, . . = + . 6 $ > = ) = $ $

= ), > F ) $ ) + = ). c PRIGROUP : > + >, F + PRI_x (IPx)

=$ ) + SCB->SHPRx (NVIC->IPRx)

= ) = ).

 

c # + > PRI_x[7:4]

}7F

PRIGROUP

c # >,

ˆ ) 7 > F

>$

 

F + .

= )

= )

=

=

011

G G G G

[7:4]

 

16

 

100

G G G . c

[7:5]

[4]

8

2

101

G G . c c

[7:6]

[5:4]

4

4

110

G . c c c

[7]

[6:4]

2

8

111

c c c c

 

[7:4]

 

16

50

СПБГУАП группа 4736 / https://new.guap.ru

SCB->VTOR (O() 8(7( 1 5, :4 ( ( 4)

6 TBLOFF $ $ $F 7 :) ) +. ˆ TBLBASE

$ ] # 7 :) ) + : TBLOFF=”0” – Code ( =).

TBLOFF=”1” – SRAM (}.Š).

SCB->CCR (O() E ,( 1 :( 8 ( (9 0 (P 8 ( 4 1)

‰ 7

‰ >

STKALIGN

$7 ) $ ] )

 

)]:

 

0: = : 4 7 +. 1: = : 8 7 +.

BFHFNMIGN

< +$ $ 9 7 7 > ) +

 

$ -1 -2.

 

0: c :$$ 7$ .

 

1: †= .

 

^ 8( (: • 7 $ $

 

+ $>, $ $) 7 7 > )

 

]$ 7$+ 7$ , ,

 

$+$ / )

DIV_0_TRP

a $ ) 0.

 

0: ..

 

1: 8 9 ) ) USGFAULT.

 

^ 8( (: t$ 7 $ , >$

 

0 7 $ ) 0.

UNALIGN_TRP

a $ ) )

 

$ ).

 

0: ..

 

1: 8 9 ) ) USGFAULT.

USERSETMPEND

<$ =$ ) = )] ) +.

 

0: ..

 

1: 8 9 $ =$ NVIC->STIR.

NONBASETHRDENA

c ] :$$ # “Thread mode” (8 7 $ OC).

 

0: 8 9, $ )] ) +.

 

1: 8 9 7 7 > ) 7 = .

51

СПБГУАП группа 4736 / https://new.guap.ru

+5 5 ' 5.

< =, > 7) > >, ) 9 ) 7 7 9 7 (xFAULT), $ 7$ $# =$ , 7 # F ] > ) 9 7

(SCB->SFSR, SCB->), , , 7 $ Keil uVision = =$>$ 9 7, $) $ .

,,( , P( 49 ( / 49 ( 4 NVIC.

r # )] )] ) + 7$>:

-# 81-= 9 = ) (STM32F10xxx – 68);

-* $= ) NMI;

-)7 * ) $= $ ) ( $ );

-$ 0 15 # )

()$9 $>$ ) $ 0); - ) + = $ ) , =

=, # F $+ = ) ;

->$ );

-> = 7 7 > ) = 7 $$

$ .

6 : ] )9 O**$ 7 = = 7$> CMSIS

$ F )+ $ =$ ) + NVIC: =$)

9, , $ $7$ $ $ # ) +, #

=$) )] ) + 7 #$ $$) 32-)] : )] >$ ,

:

-O ) $$ ISER[0] - ISER[2] $ $ =$ ISER0 – ISER2;

-O ) $$ ICER[0] - ICER[2] $ $ =$ ICER0 – ICER2;

-O ) $$ ISPR[0] - ISPR[2] $ $ =$ ISPR0 – ISPR2;

-O ) $$ ICPR[0] - ICPR[2] $ $ =$ ICPR0 – ICPR2;

-O ) $$ IABR[0] - IABR[0] $ $ =$ IABR0 – IABR2; 8-7 ) =$ ) + 7 #$ $$ 8-)]

: )] >$ , :

$$ IP[0]...IP[67] $ $ =$ IPR0-IPR16, > O $$

IP[n] $ $ ) $ n.

O (0(,( ( ( 4 ( (8( 49 ( 4 1:

Œ

 

Œ

 

• ) $$ CMSIS*

 

 

IRQ

 

7

8 9

.

} #

Š

c

 

$$

)

)

)

>

$

0-31

0-31

ISER[0]

ICER[0]

ISPR[0]

ICPR[0]

IABR[0]

32-63

0-31

ISER[1]

ICER[1]

ISPR[1]

ICPR[1]

IABR[0]

64-67

0-3

ISER[2]

ICER[2]

ISPR[2]

ICPR[2]

IABR[0]

 

 

 

 

 

 

 

 

 

^ 8( E ,( 1 ( 4 18 Keil:

 

 

 

 

NVIC->ISER[0] |= 0x00000001; // O / ('$ 0.

 

 

 

 

 

NVIC->ISER[1] |= 0x00000002; // O / ('$ IRQ33.

 

 

 

 

NVIC->ICER[0] |= 0x00000002; // S ($ ( 4 ( IRQ1.

 

 

 

 

 

 

 

 

 

 

 

52

СПБГУАП группа 4736 / https://new.guap.ru

NVIC->ISER9 (O() / ('( 1 ( 4)

d: “0” ) F, “1” ) 9.

.$ : “0” ) O**, “1” 9 ).

NVIC ->I.ER9 (O() / (7( 1 ( 4)

d: “0” ) F, “1” ) 9.

.$ : “0” ) O**, “1” F ).

NVIC ->ISPR9 (O() ( ( 0 5 5 4 (8 ) ( 4 1 ( (0$)

d: “0” ) >, “1” ) ]$ >.

.$ : “0” ) O**, “1” ) >.

NVIC ->I.PR9 (O() E0 ,( 1 ( 4 1 / ( (0)

d: “0” ) >, “1” ) ]$ >.

.$ : “0” ) O**, “1” ) >.

NVIC ->IABR9 (O() 49 ( 4)

d: “1” ) $ ) ]$ >.

53

СПБГУАП группа 4736 / https://new.guap.ru

NVIC ->IPR9 (O() E ( ( 4 1)

^ 8( E ( ( 4 1 Keil:

NVIC->IP[0] |= 0xB0; // `$ ( 11 0,1 IRQ0.

NVIC->IP[17] |= 0x50; // `$ ( 5 0,1 IRQ17.

NVIC ->STIR (O() ) 88 ) 4/ ( 4)

< = = ) ) $ $ O =$ Œ IRQ. <$ ,

) ) IRQ3 7] $ 0x03.

^ 8( (: d 7) > $ = ) ) + $

$ 7 SCB->CCR[USERSETMPEND]=1.

,,( (' 9 ( 4 / 54 EXTI.

54

СПБГУАП группа 4736 / https://new.guap.ru

EXTI->IMR (O() 8 (' 9 ( 4)

0: $ $F EXTI-) F. 1: $ $F EXTI-) 9.

EXTI->EMR (O() 8 (' 9 54)

0: $ $F EXTI-$7) F. 1: $ $F EXTI-$7) 9.

55

СПБГУАП группа 4736 / https://new.guap.ru

EXTI->RTSR (O() 45 5 4 1 ( 4 1 / 54 1 D E)

0: ) ) / $7) * $= $ $F + F%. 1: ) ) / $7) * $= $ $F + 9%.

EXTI->FTSR (O() 45 5 4 1 ( 4 1 / 54 1 0E)

0: ) ) / $7) $ $= $ $F + F%. 1: ) ) / $7) $ $= $ $F + 9%.

EXTI->SWIER (O() ) 88 ) 4/ ( 4 1 / 54 1)

0: O** .

1: = )+ ) ) / $7).

^ 8( (: 7$ “0” $F$ $ $ “1” $ $F +

=$ EXTI->PR.

EXTI->PR (O() 5 ( E7() ( 4 1 / 54 1)

0: O** .

1: $7$ $ ) (= = 9 =, $9 =

$ $F + ).

56