Bouclage et fonctions

This commit is contained in:
Yohan Boujon 2023-03-13 11:23:28 +01:00
parent 1016a9456a
commit f896c5e828
9 changed files with 231 additions and 144 deletions

File diff suppressed because one or more lines are too long

View file

@ -418,9 +418,9 @@
<Bp> <Bp>
<Number>0</Number> <Number>0</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>53</LineNumber> <LineNumber>85</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>134222552</Address> <Address>134222592</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
@ -429,7 +429,7 @@
<BreakIfRCount>1</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>.\Principale.asm</Filename> <Filename>.\Principale.asm</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>\\Reel_Etape0\Principale.asm\53</Expression> <Expression>\\Reel_Etape0\Principale.asm\85</Expression>
</Bp> </Bp>
</Breakpoint> </Breakpoint>
<MemoryWindow1> <MemoryWindow1>

View file

@ -164,20 +164,20 @@ Image Symbol Table
Symbol Name Value Ov Type Size Object(Section) Symbol Name Value Ov Type Size Object(Section)
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
@ -190,8 +190,8 @@ Image Symbol Table
../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE
../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE
../fplib/microlib/fpflt.c 0x00000000 Number 0 ffltui.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 ffltui.o ABSOLUTE
../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE
../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE
../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE
..\\pilotes\\Sources\\Timer_Systick.c 0x00000000 Number 0 timer_systick_1.o ABSOLUTE ..\\pilotes\\Sources\\Timer_Systick.c 0x00000000 Number 0 timer_systick_1.o ABSOLUTE
..\\pilotes\\Sources\\pilote_IO.c 0x00000000 Number 0 pilote_io_1.o ABSOLUTE ..\\pilotes\\Sources\\pilote_IO.c 0x00000000 Number 0 pilote_io_1.o ABSOLUTE
..\pilotes\Sources\Timer_Systick.c 0x00000000 Number 0 timer_systick_1.o ABSOLUTE ..\pilotes\Sources\Timer_Systick.c 0x00000000 Number 0 timer_systick_1.o ABSOLUTE
@ -235,8 +235,8 @@ Image Symbol Table
.text 0x08000488 Section 48 cdcmple.o(.text) .text 0x08000488 Section 48 cdcmple.o(.text)
.text 0x080004b8 Section 48 cdrcmple.o(.text) .text 0x080004b8 Section 48 cdrcmple.o(.text)
.text 0x080004e8 Section 0 d2f.o(.text) .text 0x080004e8 Section 0 d2f.o(.text)
.text 0x08000520 Section 0 iusefp.o(.text)
.text 0x08000520 Section 0 fepilogue.o(.text) .text 0x08000520 Section 0 fepilogue.o(.text)
.text 0x08000520 Section 0 iusefp.o(.text)
.text 0x0800058e Section 0 depilogue.o(.text) .text 0x0800058e Section 0 depilogue.o(.text)
.text 0x08000648 Section 36 init.o(.text) .text 0x08000648 Section 36 init.o(.text)
.text 0x0800066c Section 0 llshl.o(.text) .text 0x0800066c Section 0 llshl.o(.text)
@ -268,8 +268,10 @@ Image Symbol Table
i.__scatterload_copy 0x080012b0 Section 14 handlers.o(i.__scatterload_copy) i.__scatterload_copy 0x080012b0 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x080012be Section 2 handlers.o(i.__scatterload_null) i.__scatterload_null 0x080012be Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x080012c0 Section 14 handlers.o(i.__scatterload_zeroinit) i.__scatterload_zeroinit 0x080012c0 Section 14 handlers.o(i.__scatterload_zeroinit)
moncode 0x080012d0 Section 60 principale.o(moncode) moncode 0x080012d0 Section 68 principale.o(moncode)
moncode 0x0800130c Section 200 foncasm.o(moncode) Eteint_LED 0x080012d1 Thumb Code 22 principale.o(moncode)
Allume_LED 0x080012e7 Thumb Code 22 principale.o(moncode)
moncode 0x08001314 Section 200 foncasm.o(moncode)
.data 0x20000000 Section 19 initialisation.o(.data) .data 0x20000000 Section 19 initialisation.o(.data)
.data 0x20000014 Section 24 fonctiontimer.o(.data) .data 0x20000014 Section 24 fonctiontimer.o(.data)
incre 0x20000024 Data 4 fonctiontimer.o(.data) incre 0x20000024 Data 4 fonctiontimer.o(.data)
@ -413,11 +415,11 @@ Image Symbol Table
__scatterload_copy 0x080012b1 Thumb Code 14 handlers.o(i.__scatterload_copy) __scatterload_copy 0x080012b1 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x080012bf Thumb Code 2 handlers.o(i.__scatterload_null) __scatterload_null 0x080012bf Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x080012c1 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) __scatterload_zeroinit 0x080012c1 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
main 0x080012d1 Thumb Code 54 principale.o(moncode) main 0x080012fd Thumb Code 20 principale.o(moncode)
Envoie192Boucle 0x0800130d Thumb Code 108 foncasm.o(moncode) Envoie192Boucle 0x08001315 Thumb Code 108 foncasm.o(moncode)
Envoie96Dot 0x08001379 Thumb Code 78 foncasm.o(moncode) Envoie96Dot 0x08001381 Thumb Code 78 foncasm.o(moncode)
Region$$Table$$Base 0x080013d4 Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Base 0x080013dc Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080013f4 Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Limit 0x080013fc Number 0 anon$$obj.o(Region$$Table)
PrtSurImage 0x20000000 Data 4 initialisation.o(.data) PrtSurImage 0x20000000 Data 4 initialisation.o(.data)
BarretEnCours 0x20000004 Data 4 initialisation.o(.data) BarretEnCours 0x20000004 Data 4 initialisation.o(.data)
DataSend 0x20000008 Data 1 initialisation.o(.data) DataSend 0x20000008 Data 1 initialisation.o(.data)
@ -438,9 +440,9 @@ Memory Map of the image
Image Entry point : 0x08000151 Image Entry point : 0x08000151
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001484, Max: 0x00040000, ABSOLUTE) Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000148c, Max: 0x00040000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000013f4, Max: 0x00040000, ABSOLUTE) Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000013fc, Max: 0x00040000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@ -500,20 +502,20 @@ Memory Map of the image
0x080012be 0x080012be 0x00000002 Code RO 492 i.__scatterload_null mc_w.l(handlers.o) 0x080012be 0x080012be 0x00000002 Code RO 492 i.__scatterload_null mc_w.l(handlers.o)
0x080012c0 0x080012c0 0x0000000e Code RO 493 i.__scatterload_zeroinit mc_w.l(handlers.o) 0x080012c0 0x080012c0 0x0000000e Code RO 493 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x080012ce 0x080012ce 0x00000002 PAD 0x080012ce 0x080012ce 0x00000002 PAD
0x080012d0 0x080012d0 0x0000003c Code RO 2 moncode principale.o 0x080012d0 0x080012d0 0x00000044 Code RO 2 moncode principale.o
0x0800130c 0x0800130c 0x000000c8 Code RO 331 moncode Matos.lib(foncasm.o) 0x08001314 0x08001314 0x000000c8 Code RO 331 moncode Matos.lib(foncasm.o)
0x080013d4 0x080013d4 0x00000020 Data RO 489 Region$$Table anon$$obj.o 0x080013dc 0x080013dc 0x00000020 Data RO 489 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080013f4, Size: 0x00000490, Max: 0x00010000, ABSOLUTE) Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080013fc, Size: 0x00000490, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080013f4 0x00000013 Data RW 97 .data Matos.lib(initialisation.o) 0x20000000 0x080013fc 0x00000013 Data RW 97 .data Matos.lib(initialisation.o)
0x20000013 0x08001407 0x00000001 PAD 0x20000013 0x0800140f 0x00000001 PAD
0x20000014 0x08001408 0x00000018 Data RW 229 .data Matos.lib(fonctiontimer.o) 0x20000014 0x08001410 0x00000018 Data RW 229 .data Matos.lib(fonctiontimer.o)
0x2000002c 0x08001420 0x00000060 Data RW 321 .data Matos.lib(warning.o) 0x2000002c 0x08001428 0x00000060 Data RW 321 .data Matos.lib(warning.o)
0x2000008c 0x08001480 0x00000004 Data RW 407 .data Matos.lib(timer_systick_1.o) 0x2000008c 0x08001488 0x00000004 Data RW 407 .data Matos.lib(timer_systick_1.o)
0x20000090 - 0x00000400 Zero RW 10 STACK startup_stm32f10x_cl.o 0x20000090 - 0x00000400 Zero RW 10 STACK startup_stm32f10x_cl.o
@ -524,12 +526,12 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name Code (inc. data) RO Data RW Data ZI Data Debug Object Name
60 6 0 0 0 344 principale.o 68 4 0 0 0 424 principale.o
36 8 336 0 1024 800 startup_stm32f10x_cl.o 36 8 336 0 1024 800 startup_stm32f10x_cl.o
396 32 0 0 0 6481 system_stm32f10x_1.o 396 32 0 0 0 6481 system_stm32f10x_1.o
---------------------------------------------------------------------- ----------------------------------------------------------------------
492 46 368 0 1024 7625 Object Totals 500 44 368 0 1024 7705 Object Totals
0 0 32 0 0 0 (incl. Generated) 0 0 32 0 0 0 (incl. Generated)
0 0 0 0 0 0 (incl. Padding) 0 0 0 0 0 0 (incl. Padding)
@ -592,15 +594,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Code (inc. data) RO Data RW Data ZI Data Debug
4740 388 368 144 1024 245244 Grand Totals 4748 386 368 144 1024 245324 Grand Totals
4740 388 368 144 1024 245244 ELF Image Totals 4748 386 368 144 1024 245324 ELF Image Totals
4740 388 368 144 0 0 ROM Totals 4748 386 368 144 0 0 ROM Totals
============================================================================== ==============================================================================
Total RO Size (Code + RO Data) 5108 ( 4.99kB) Total RO Size (Code + RO Data) 5116 ( 5.00kB)
Total RW Size (RW Data + ZI Data) 1168 ( 1.14kB) Total RW Size (RW Data + ZI Data) 1168 ( 1.14kB)
Total ROM Size (Code + RO Data + RW Data) 5252 ( 5.13kB) Total ROM Size (Code + RO Data + RW Data) 5260 ( 5.14kB)
============================================================================== ==============================================================================

View file

@ -157,66 +157,95 @@ ARM Macro Assembler Page 3
42 00000000 42 00000000
43 00000000 ;******************************************************* 43 00000000 ;*******************************************************
************************ ************************
44 00000000 ; Procédure principale et point d'entrée du projet 44 00000000 ; On eteint la LED
45 00000000 ;******************************************************* 45 00000000 ;*******************************************************
************************ ************************
46 00000000 main PROC 46 00000000 Eteint_LED
47 00000000 ;******************************************************* PROC
47 00000000
48 00000000 E92D 1001 PUSH {R12,R0} ;On stocke R12 dans
R0
49 00000004 F8DF C038 LDR R12,=GPIOBASEB ;On recupère l'a
dresse de base
50 00000008 F44F 6580 MOV R5,#(0x01 << 10) ;1 décalé de 1
0 dans R5
51 0000000C F8AC 5014 STRH R5,[R12,#OffsetReset] ;On stock
e la variable R5 à
l'adresse 0x0X40010
C14 (reset)
52 00000010 E8BD 1001 POP {R12,R0} ;On restitue R12 da
ns R0
53 00000014 4770 BX LR ;Retour
54 00000016 ;LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
55 00000016 ;AND R5, R5,#~(0x01 << 10) ;OU LOGIQUE pour calculer la
valeur a mettre dans l'output
56 00000016 ;STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans
l'output
57 00000016 ENDP
58 00000016
59 00000016 ;*******************************************************
************************ ************************
48 00000000 60 00000016 ; On allume la LED
49 00000000 61 00000016 ;*******************************************************
50 00000000 F04F 0000 MOV R0,#0 ; ************************
51 00000004 F7FF FFFE BL Init_Cible ; 62 00000016 Allume_LED
52 00000008 ; SET PROC
53 00000008 F8DF C02C LDR R12,=0x40010C00 63 00000016
54 0000000C F44F 6580 MOV R5,#(0x01 << 10) 64 00000016 E92D 1001 PUSH {R12,R0} ;On stocke R12 dans
55 00000010 F8AC 5010 STRH R5,[R12,#0x10] ;On stocke la va R0
riable R5 à l'adres
se 0x0X40010C10
56 00000014 ; RESET
57 00000014 F44F 6580 MOV R5,#(0x01 << 10)
58 00000018 F8AC 5014 STRH R5,[R12,#0x14] ;On stocke la va
riable R5 à l'adres
se 0x0X40010C10
59 0000001C
60 0000001C ; ALLUMER LA LED
61 0000001C F8DC 500C LDR R5,[R12,#0x0C] ;Valeur à l'adre
sse de l'output
62 00000020 F445 6580 ORR R5, R5,#(0x01 << 10) ;OU LOGIQU
E pour calculer la
valeur a mettre dan
s l'output
63 00000024 F8AC 500C STRH R5,[R12,#0x0C] ;Etat du port B
(R5) stocké dans l'
output
64 00000028
65 00000028 ;ETEINDRE LA LED
66 00000028 F8DC 500C LDR R5,[R12,#0x0C] ;Valeur à l'adre
sse de l'output
ARM Macro Assembler Page 4 ARM Macro Assembler Page 4
67 0000002C F425 6580 AND R5, R5,#~(0x01 << 10) ;OU LOGIQ 65 0000001A F8DF C024 LDR R12,=GPIOBASEB ;On recupère l'a
UE pour calculer la dresse de base
valeur a mettre da 66 0000001E F44F 6580 MOV R5,#(0x01 << 10) ;1 décalé de 1
ns l'output 0 dans R5
68 00000030 F8AC 500C STRH R5,[R12,#0x0C] ;Etat du port B 67 00000022 F8AC 5010 STRH R5,[R12,#OffsetSet] ;On stocke
(R5) stocké dans l' la variable R5 à l'
output adresse 0x0X40010C1
69 00000034 0 (set)
70 00000034 E7FE B . ; boucle inifinie t 68 00000026 E8BD 1001 POP {R12,R0} ;On restitue R12 da
ns R0
69 0000002A 4770 BX LR ;Retour
70 0000002C ;LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
71 0000002C ;ORR R5, R5,#(0x01 << 10) ;OU LOGIQUE pour calculer la v
aleur a mettre dans l'output
72 0000002C ;STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans
l'output
73 0000002C
74 0000002C ENDP
75 0000002C
76 0000002C
77 0000002C ;*******************************************************
************************
78 0000002C ; Procédure principale et point d'entrée du projet
79 0000002C ;*******************************************************
************************
80 0000002C main PROC
81 0000002C ;*******************************************************
************************
82 0000002C
83 0000002C
84 0000002C F04F 0000 MOV R0,#0 ;
85 00000030 F7FF FFFE BL Init_Cible ;
86 00000034 Boucle
87 00000034 F7FF FFFE BL Allume_LED
88 00000038 F7FF FFFE BL Eteint_LED
89 0000003C E7FA B Boucle
90 0000003E
91 0000003E E7FE B . ; boucle inifinie t
erminale... erminale...
71 00000036 92 00000040
72 00000036 93 00000040
73 00000036 94 00000040
74 00000036 95 00000040
75 00000036 ENDP 96 00000040 ENDP
76 00000036 97 00000040
77 00000036 END 98 00000040 END
00 00 40010C00 40010C00
Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
ork --depend=.\objects\principale.d -o.\objects\principale.o -I.\RTE\Device\STM ork --depend=.\objects\principale.d -o.\objects\principale.o -I.\RTE\Device\STM
32F107VC -I.\RTE\_R_el -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Co 32F107VC -I.\RTE\_R_el -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Co
@ -246,11 +275,35 @@ Comment: mesdonnees unused
ARM Macro Assembler Page 1 Alphabetic symbol ordering ARM Macro Assembler Page 1 Alphabetic symbol ordering
Relocatable symbols Relocatable symbols
main 00000000 Allume_LED 00000016
Symbol: Allume_LED
Definitions
At line 62 in file Principale.asm
Uses
At line 87 in file Principale.asm
Comment: Allume_LED used once
Boucle 00000034
Symbol: Boucle
Definitions
At line 86 in file Principale.asm
Uses
At line 89 in file Principale.asm
Comment: Boucle used once
Eteint_LED 00000000
Symbol: Eteint_LED
Definitions
At line 46 in file Principale.asm
Uses
At line 88 in file Principale.asm
Comment: Eteint_LED used once
main 0000002C
Symbol: main Symbol: main
Definitions Definitions
At line 46 in file Principale.asm At line 80 in file Principale.asm
Uses Uses
At line 26 in file Principale.asm At line 26 in file Principale.asm
Comment: main used once Comment: main used once
@ -262,7 +315,7 @@ Symbol: moncode
Uses Uses
None None
Comment: moncode unused Comment: moncode unused
2 symbols 5 symbols
@ -283,8 +336,9 @@ Symbol: GPIOBASEB
Definitions Definitions
At line 25 in file REG_UTILES.inc At line 25 in file REG_UTILES.inc
Uses Uses
None At line 49 in file Principale.asm
Comment: GPIOBASEB unused At line 65 in file Principale.asm
MaskBlank 00000004 MaskBlank 00000004
Symbol: MaskBlank Symbol: MaskBlank
@ -327,13 +381,13 @@ Symbol: MaskSerial_Dots
Comment: MaskSerial_Dots unused Comment: MaskSerial_Dots unused
MaskSerial_In1 00000080 MaskSerial_In1 00000080
Symbol: MaskSerial_In1
ARM Macro Assembler Page 2 Alphabetic symbol ordering ARM Macro Assembler Page 2 Alphabetic symbol ordering
Absolute symbols Absolute symbols
Symbol: MaskSerial_In1
Definitions Definitions
At line 33 in file REG_UTILES.inc At line 33 in file REG_UTILES.inc
Uses Uses
@ -377,28 +431,28 @@ Symbol: OffsetReset
Definitions Definitions
At line 30 in file REG_UTILES.inc At line 30 in file REG_UTILES.inc
Uses Uses
None At line 51 in file Principale.asm
Comment: OffsetReset unused Comment: OffsetReset used once
OffsetSet 00000010 OffsetSet 00000010
Symbol: OffsetSet Symbol: OffsetSet
Definitions Definitions
At line 29 in file REG_UTILES.inc At line 29 in file REG_UTILES.inc
Uses Uses
None At line 67 in file Principale.asm
Comment: OffsetSet unused Comment: OffsetSet used once
SCB_VTOR E000ED08 SCB_VTOR E000ED08
Symbol: SCB_VTOR Symbol: SCB_VTOR
Definitions Definitions
At line 43 in file REG_UTILES.inc At line 43 in file REG_UTILES.inc
Uses
ARM Macro Assembler Page 3 Alphabetic symbol ordering ARM Macro Assembler Page 3 Alphabetic symbol ordering
Absolute symbols Absolute symbols
Uses
None None
Comment: SCB_VTOR unused Comment: SCB_VTOR unused
TIM1_CNT 40012C24 TIM1_CNT 40012C24
@ -446,7 +500,7 @@ Symbol: Init_Cible
Definitions Definitions
At line 23 in file Principale.asm At line 23 in file Principale.asm
Uses Uses
At line 51 in file Principale.asm At line 85 in file Principale.asm
Comment: Init_Cible used once Comment: Init_Cible used once
|Lib$$Request$$armlib| 00000000 |Lib$$Request$$armlib| 00000000
@ -457,4 +511,4 @@ Symbol: |Lib$$Request$$armlib|
None None
Comment: |Lib$$Request$$armlib| unused Comment: |Lib$$Request$$armlib| unused
2 symbols 2 symbols
361 symbols in table 364 symbols in table

View file

@ -1,6 +1,6 @@
Dependencies for Project 'Etape_1', Target 'Réel': (DO NOT MODIFY !) Dependencies for Project 'Etape_1', Target 'Réel': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\Principale.asm)(0x640EF4CD)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\Device\STM32F107VC -I.\RTE\_R_el -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --list .\listings\principale.lst --xref -o .\objects\principale.o --depend .\objects\principale.d) F (.\Principale.asm)(0x640EF96C)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\Device\STM32F107VC -I.\RTE\_R_el -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --list .\listings\principale.lst --xref -o .\objects\principale.o --depend .\objects\principale.d)
I (REG_UTILES.inc)(0x640EE4CF) I (REG_UTILES.inc)(0x640EE4CF)
F (.\FonctionEtape.asm)(0x640EE738)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\Device\STM32F107VC -I.\RTE\_R_el -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --list .\listings\fonctionetape.lst --xref -o .\objects\fonctionetape.o --depend .\objects\fonctionetape.d) F (.\FonctionEtape.asm)(0x640EE738)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\Device\STM32F107VC -I.\RTE\_R_el -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --pd "_RTE_ SETA 1" --pd "STM32F10X_CL SETA 1" --list .\listings\fonctionetape.lst --xref -o .\objects\fonctionetape.o --depend .\objects\fonctionetape.d)
I (REG_UTILES.inc)(0x640EE4CF) I (REG_UTILES.inc)(0x640EE4CF)

Binary file not shown.

View file

@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\Reel_Etape0.axf]</title></head> <title>Static Call Graph - [.\Objects\Reel_Etape0.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image .\Objects\Reel_Etape0.axf</H1><HR> <H1>Static Call Graph for image .\Objects\Reel_Etape0.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Mon Mar 13 11:03:00 2023 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Mon Mar 13 11:22:38 2023
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 168 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 168 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
@ -108,7 +108,7 @@ Global Symbols
<P><STRONG><a name="[49]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000)) <P><STRONG><a name="[49]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_cl.o(.text) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_cl.o(.text)
</UL> </UL>
<P><STRONG><a name="[6e]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) <P><STRONG><a name="[70]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[4b]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) <P><STRONG><a name="[4b]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload <BR><BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@ -118,17 +118,17 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload <BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL> </UL>
<P><STRONG><a name="[6f]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) <P><STRONG><a name="[71]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[70]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) <P><STRONG><a name="[72]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[71]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) <P><STRONG><a name="[73]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[72]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E)) <P><STRONG><a name="[74]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[73]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F)) <P><STRONG><a name="[75]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[74]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011)) <P><STRONG><a name="[76]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) <P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_cl.o(RESET) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_cl.o(RESET)
@ -419,7 +419,7 @@ Global Symbols
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Timer1 <LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Timer1
</UL> </UL>
<P><STRONG><a name="[75]"></a>__aeabi_cdcmpeq</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, cdcmple.o(.text), UNUSED) <P><STRONG><a name="[77]"></a>__aeabi_cdcmpeq</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, cdcmple.o(.text), UNUSED)
<P><STRONG><a name="[69]"></a>__aeabi_cdcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdcmple.o(.text)) <P><STRONG><a name="[69]"></a>__aeabi_cdcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdcmple.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Timer1 <BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Timer1
@ -438,7 +438,7 @@ Global Symbols
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Timer1 <LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Timer1
</UL> </UL>
<P><STRONG><a name="[76]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED) <P><STRONG><a name="[78]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED)
<P><STRONG><a name="[4e]"></a>_float_round</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text)) <P><STRONG><a name="[4e]"></a>_float_round</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv <BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv
@ -473,19 +473,19 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload <BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL> </UL>
<P><STRONG><a name="[77]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) <P><STRONG><a name="[79]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[55]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text)) <P><STRONG><a name="[55]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue <BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL> </UL>
<P><STRONG><a name="[78]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED) <P><STRONG><a name="[7a]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[56]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text)) <P><STRONG><a name="[56]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue <BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL> </UL>
<P><STRONG><a name="[79]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED) <P><STRONG><a name="[7b]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[4a]"></a>Anim</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, fonctiontimer.o(i.Anim)) <P><STRONG><a name="[4a]"></a>Anim</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, fonctiontimer.o(i.Anim))
<BR>[Address Reference Count : 1]<UL><LI> initialisation.o(i.Init_Cible) <BR>[Address Reference Count : 1]<UL><LI> initialisation.o(i.Init_Cible)
@ -642,16 +642,18 @@ Global Symbols
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_cl.o(RESET) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_cl.o(RESET)
</UL> </UL>
<P><STRONG><a name="[7a]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) <P><STRONG><a name="[7c]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[7b]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) <P><STRONG><a name="[7d]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[7c]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) <P><STRONG><a name="[7e]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[47]"></a>main</STRONG> (Thumb, 54 bytes, Stack size 0 bytes, principale.o(moncode)) <P><STRONG><a name="[47]"></a>main</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, principale.o(moncode))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = main &rArr; Init_Cible &rArr; Init_Timer1 &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round <BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = main &rArr; Init_Cible &rArr; Init_Timer1 &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Cible <BR>[Calls]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_Cible
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Allume_LED
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Eteint_LED
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B) <BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL> </UL>
@ -668,6 +670,14 @@ Global Symbols
<H3> <H3>
Local Symbols Local Symbols
</H3> </H3>
<P><STRONG><a name="[6f]"></a>Eteint_LED</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, principale.o(moncode))
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6e]"></a>Allume_LED</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, principale.o(moncode))
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6c]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x_1.o(i.SetSysClock)) <P><STRONG><a name="[6c]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x_1.o(i.SetSysClock))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = SetSysClock &rArr; SetSysClockTo72 <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = SetSysClock &rArr; SetSysClockTo72
</UL> </UL>

Binary file not shown.

View file

@ -40,32 +40,53 @@
;*******************************************************************************
; On eteint la LED
;*******************************************************************************
Eteint_LED PROC
PUSH {R12,R0} ;On stocke R12 dans R0
LDR R12,=GPIOBASEB ;On recupère l'adresse de base
MOV R5,#(0x01 << 10) ;1 décalé de 10 dans R5
STRH R5,[R12,#OffsetReset] ;On stocke la variable R5 à l'adresse 0x0X40010C14 (reset)
POP {R12,R0} ;On restitue R12 dans R0
BX LR ;Retour
;LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
;AND R5, R5,#~(0x01 << 10) ;OU LOGIQUE pour calculer la valeur a mettre dans l'output
;STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans l'output
ENDP
;*******************************************************************************
; On allume la LED
;*******************************************************************************
Allume_LED PROC
PUSH {R12,R0} ;On stocke R12 dans R0
LDR R12,=GPIOBASEB ;On recupère l'adresse de base
MOV R5,#(0x01 << 10) ;1 décalé de 10 dans R5
STRH R5,[R12,#OffsetSet] ;On stocke la variable R5 à l'adresse 0x0X40010C10 (set)
POP {R12,R0} ;On restitue R12 dans R0
BX LR ;Retour
;LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
;ORR R5, R5,#(0x01 << 10) ;OU LOGIQUE pour calculer la valeur a mettre dans l'output
;STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans l'output
ENDP
;******************************************************************************* ;*******************************************************************************
; Procédure principale et point d'entrée du projet ; Procédure principale et point d'entrée du projet
;******************************************************************************* ;*******************************************************************************
main PROC main PROC
;******************************************************************************* ;*******************************************************************************
MOV R0,#0; MOV R0,#0;
BL Init_Cible; BL Init_Cible;
; SET Boucle
LDR R12,=0x40010C00 BL Allume_LED
MOV R5,#(0x01 << 10) BL Eteint_LED
STRH R5,[R12,#0x10] ;On stocke la variable R5 à l'adresse 0x0X40010C10 B Boucle
; RESET
MOV R5,#(0x01 << 10)
STRH R5,[R12,#0x14] ;On stocke la variable R5 à l'adresse 0x0X40010C10
; ALLUMER LA LED
LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
ORR R5, R5,#(0x01 << 10) ;OU LOGIQUE pour calculer la valeur a mettre dans l'output
STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans l'output
;ETEINDRE LA LED
LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
AND R5, R5,#~(0x01 << 10) ;OU LOGIQUE pour calculer la valeur a mettre dans l'output
STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans l'output
B . ; boucle inifinie terminale... B . ; boucle inifinie terminale...