196 lines
6.2 KiB
Text
196 lines
6.2 KiB
Text
|
|
|
|
|
|
ARM Macro Assembler Page 1
|
|
|
|
|
|
1 00000000 ; Pile par 8 bit
|
|
2 00000000 PRESERVE8
|
|
3 00000000 ; instruction set comme ARM set
|
|
4 00000000 ; il est principalement sur 16 bit
|
|
5 00000000 THUMB
|
|
6 00000000
|
|
7 00000000
|
|
8 00000000 ; ====================== zone de réservation de données,
|
|
======================================
|
|
9 00000000 ;Section RAM (read only) :
|
|
10 00000000 area mesdata,data,readonly
|
|
11 00000000
|
|
12 00000000
|
|
13 00000000 ;Section RAM (read write):
|
|
14 00000000 area maram,data,readwrite
|
|
15 00000000
|
|
16 00000000 ; On donne une zone mémoire à VarTime (elle est aligné)
|
|
17 00000000 00000000
|
|
VarTime dcd 0
|
|
18 00000004
|
|
19 00000004
|
|
20 00000004 ; ======================================================
|
|
=========================================
|
|
21 00000004
|
|
22 00000004 ;constantes (équivalent du #define en C)
|
|
23 00000004 000DBBA0
|
|
TimeValue
|
|
equ 900000
|
|
24 00000004
|
|
25 00000004
|
|
26 00000004 EXPORT Delay_100ms ; la fonction Delay
|
|
_100ms est rendue p
|
|
ublique donc utilis
|
|
able par d'autres m
|
|
odules.
|
|
27 00000004
|
|
28 00000004
|
|
29 00000004 ;Section ROM code (read only) :
|
|
30 00000004 area moncode,code,readonly
|
|
31 00000000
|
|
32 00000000
|
|
33 00000000
|
|
34 00000000 ; REMARQUE IMPORTANTE
|
|
35 00000000 ; Cette manière de créer une temporisation n'est clairem
|
|
ent pas la bonne manière de procéder :
|
|
36 00000000 ; - elle est peu précise
|
|
37 00000000 ; - la fonction prend tout le temps CPU pour... ne rien
|
|
faire...
|
|
38 00000000 ;
|
|
39 00000000 ; Pour autant, la fonction montre :
|
|
40 00000000 ; - les boucles en ASM
|
|
41 00000000 ; - l'accés écr/lec de variable en RAM
|
|
42 00000000 ; - le mécanisme d'appel / retour sous programme
|
|
43 00000000 ;
|
|
44 00000000 ; et donc possède un intérêt pour débuter en ASM pur
|
|
45 00000000
|
|
46 00000000
|
|
47 00000000 Delay_100ms
|
|
proc
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 2
|
|
|
|
|
|
48 00000000 ; On charge la valeur du poiteur
|
|
49 00000000
|
|
50 00000000 4803 ldr r0,=VarTime
|
|
51 00000002 EXPORT VarTime
|
|
52 00000002
|
|
53 00000002
|
|
54 00000002 4904 ldr r1,=TimeValue
|
|
55 00000004 ; On initialise un pointeur sur TimeValue
|
|
56 00000004 6001 str r1,[r0]
|
|
57 00000006
|
|
58 00000006 BoucleTempo
|
|
59 00000006 ; On charge la valeur pointer par le pointeur passer en
|
|
argument
|
|
60 00000006 ; R1 à le nombre de boucle qu'il reste à faire (TimeValu
|
|
e)
|
|
61 00000006 6801 ldr r1,[r0]
|
|
62 00000008 ; On enlève à r1 1 pour tester la fin de la boucle
|
|
63 00000008 3901 subs r1,#1
|
|
64 0000000A 6001 str r1,[r0]
|
|
65 0000000C ; si la valeur est non nul on relance la boucle, car pas
|
|
terminer
|
|
66 0000000C D1FB bne BoucleTempo
|
|
67 0000000E ; sinon on fini la fonction
|
|
68 0000000E ; lr pointe l'endroit qui à appeller la fonction
|
|
69 0000000E ; on y retourne à la fin de la fonction
|
|
70 0000000E 4770 bx lr
|
|
71 00000010 endp
|
|
72 00000010
|
|
73 00000010
|
|
74 00000010 END
|
|
00000000
|
|
000DBBA0
|
|
Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
|
|
ork --depend=.\obj\delay.d -o.\obj\delay.o -I.\RTE\_Simu -IC:\Programdata\Keil\
|
|
Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Ke
|
|
il\STM32F1xx_DFP\2.3.0\Device\Include --predefine="__EVAL SETA 1" --predefine="
|
|
__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 534" --predefine="_RTE_
|
|
SETA 1" --predefine="STM32F10X_MD SETA 1" --predefine="_RTE_ SETA 1" --list=del
|
|
ay.lst Src\Delay.s
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 1 Alphabetic symbol ordering
|
|
Relocatable symbols
|
|
|
|
mesdata 00000000
|
|
|
|
Symbol: mesdata
|
|
Definitions
|
|
At line 10 in file Src\Delay.s
|
|
Uses
|
|
None
|
|
Comment: mesdata unused
|
|
1 symbol
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 1 Alphabetic symbol ordering
|
|
Relocatable symbols
|
|
|
|
VarTime 00000000
|
|
|
|
Symbol: VarTime
|
|
Definitions
|
|
At line 17 in file Src\Delay.s
|
|
Uses
|
|
At line 50 in file Src\Delay.s
|
|
At line 51 in file Src\Delay.s
|
|
|
|
maram 00000000
|
|
|
|
Symbol: maram
|
|
Definitions
|
|
At line 14 in file Src\Delay.s
|
|
Uses
|
|
None
|
|
Comment: maram unused
|
|
2 symbols
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 1 Alphabetic symbol ordering
|
|
Relocatable symbols
|
|
|
|
BoucleTempo 00000006
|
|
|
|
Symbol: BoucleTempo
|
|
Definitions
|
|
At line 58 in file Src\Delay.s
|
|
Uses
|
|
At line 66 in file Src\Delay.s
|
|
Comment: BoucleTempo used once
|
|
Delay_100ms 00000000
|
|
|
|
Symbol: Delay_100ms
|
|
Definitions
|
|
At line 47 in file Src\Delay.s
|
|
Uses
|
|
At line 26 in file Src\Delay.s
|
|
Comment: Delay_100ms used once
|
|
moncode 00000000
|
|
|
|
Symbol: moncode
|
|
Definitions
|
|
At line 30 in file Src\Delay.s
|
|
Uses
|
|
None
|
|
Comment: moncode unused
|
|
3 symbols
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 1 Alphabetic symbol ordering
|
|
Absolute symbols
|
|
|
|
TimeValue 000DBBA0
|
|
|
|
Symbol: TimeValue
|
|
Definitions
|
|
At line 23 in file Src\Delay.s
|
|
Uses
|
|
At line 54 in file Src\Delay.s
|
|
Comment: TimeValue used once
|
|
1 symbol
|
|
344 symbols in table
|