?? bootloader.lst
字號:
1 .file "bootloader.c"
9 .Ltext0:
10 .section .rodata.str1.4,"aMS",%progbits,1
11 .align 2
12 .LC0:
13 0000 56657269 .ascii "Verify \000"
13 66792000
14 .align 2
15 .LC1:
16 0008 0A0D00 .ascii "\012\015\000"
17 000b 00 .align 2
18 .LC2:
19 000c 46696C65 .ascii "File \000"
19 2000
20 0012 0000 .align 2
21 .LC3:
22 0014 206E6F74 .ascii " not found!\012\015\000"
22 20666F75
22 6E64210A
22 0D00
23 0022 0000 .align 2
24 .LC4:
25 0024 4D656D6F .ascii "Memory Error %x : %x EX: %x \015\012\000"
25 72792045
25 72726F72
25 20257820
25 3A202578
26 0043 00 .align 2
27 .LC5:
28 0044 2E00 .ascii ".\000"
29 .text
30 .align 2
31 .global verify_file
33 verify_file:
34 .LFB3:
35 .file 1 "bootloader.c"
1:bootloader.c **** /*#######################################################################################
2:bootloader.c **** ARM Linux MMC Boot Loader
3:bootloader.c ****
4:bootloader.c **** Copyright (C) 2004 Ulrich Radig
5:bootloader.c **** #######################################################################################*/
6:bootloader.c ****
7:bootloader.c **** #include "main.h"
8:bootloader.c **** #include "bootloader.h"
9:bootloader.c ****
10:bootloader.c **** void load_file (char *filename, int *mem_adresse)
11:bootloader.c **** {
12:bootloader.c ****
13:bootloader.c **** unsigned char buffer[513];
14:bootloader.c **** unsigned short int cluster= 0;
15:bootloader.c **** unsigned char Dir_Attrib = 0;
16:bootloader.c **** long File_Size = 0;
17:bootloader.c ****
18:bootloader.c **** if (Search_File(filename,&cluster,&File_Size,&Dir_Attrib,buffer) == 1)
19:bootloader.c **** {
20:bootloader.c **** printf("Loading ");
21:bootloader.c **** printf(filename);
22:bootloader.c **** printf("\n\r");
23:bootloader.c **** }
24:bootloader.c **** else
25:bootloader.c **** {
26:bootloader.c **** printf("File ");
27:bootloader.c **** printf(filename);
28:bootloader.c **** printf(" not found!\n\r");
29:bootloader.c **** while(1)
30:bootloader.c **** {
31:bootloader.c **** }
32:bootloader.c **** }
33:bootloader.c ****
34:bootloader.c **** unsigned long block_counter = 0;
35:bootloader.c ****
36:bootloader.c **** while(File_Size>0)
37:bootloader.c **** {
38:bootloader.c **** Read_File (cluster,buffer,block_counter);
39:bootloader.c **** block_counter++;
40:bootloader.c **** for (unsigned short int a=0;a<512;a=a+4)
41:bootloader.c **** {
42:bootloader.c **** *mem_adresse = (buffer[a+3]<<24)+
43:bootloader.c **** (buffer[a+2]<<16)+
44:bootloader.c **** (buffer[a+1]<<8)+
45:bootloader.c **** buffer[a];
46:bootloader.c ****
47:bootloader.c **** mem_adresse++;
48:bootloader.c **** *mem_adresse = 0x00000000;
49:bootloader.c **** mem_adresse--;
50:bootloader.c ****
51:bootloader.c **** if(*mem_adresse != ( (buffer[a+3]<<24)+
52:bootloader.c **** (buffer[a+2]<<16)+
53:bootloader.c **** (buffer[a+1]<<8)+
54:bootloader.c **** buffer[a]) )
55:bootloader.c **** {
56:bootloader.c **** printf("Memory Error %x : %x EX: %x \r\n",mem_adresse,*mem_adresse,((buffer[a+3]<<24)+
57:bootloader.c **** (buffer[a+2]<<16)+
58:bootloader.c **** (buffer[a+1]<<8)+
59:bootloader.c **** buffer[a]));
60:bootloader.c **** }
61:bootloader.c ****
62:bootloader.c ****
63:bootloader.c **** mem_adresse++;
64:bootloader.c ****
65:bootloader.c **** File_Size = File_Size - 4;
66:bootloader.c **** if(File_Size<=0)
67:bootloader.c **** {
68:bootloader.c **** break;
69:bootloader.c **** }
70:bootloader.c **** }
71:bootloader.c **** printf(".");
72:bootloader.c **** }
73:bootloader.c **** printf("\n\r");
74:bootloader.c **** return;
75:bootloader.c **** };
76:bootloader.c ****
77:bootloader.c **** void verify_file (char *filename, int *mem_adresse)
78:bootloader.c **** {
36 0, frame = 524
37 @ frame_needed = 0, uses_anonymous_args = 0
38 .LVL0:
39 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
40 0000 F0452DE9 .LCFI0:
41 sub sp, sp, #528
42 0004 21DE4DE2 .LCFI1:
43 mov r4, r0
44 0008 0040A0E1 mov r5, r1
45 000c 0150A0E1 .loc 1 81 0
79:bootloader.c ****
80:bootloader.c **** unsigned char buffer[513];
81:bootloader.c **** unsigned short int cluster= 0;
46 0
47 0010 0030A0E3 sub r2, r3, #516
48 0014 812F43E2 add ip, sp, #528
49 0018 21CE8DE2 strh r3, [ip, r2] @ movhi
50 001c B2308CE1 .LVL1:
51 .loc 1 82 0
82:bootloader.c **** unsigned char Dir_Attrib = 0;
52 r3, [sp, #11]
53 0020 0B30CDE5 .LVL2:
54 .loc 1 83 0
83:bootloader.c **** long File_Size = 0;
55 r r3, [sp, #4]
56 0024 04308DE5 .LVL3:
57 .loc 1 85 0
84:bootloader.c ****
85:bootloader.c **** if (Search_File(filename,&cluster,&File_Size,&Dir_Attrib,buffer) == 1)
58 d r3, sp, #16
59 0028 10308DE2 sub r3, r3, #1
60 002c 013043E2 str r3, [sp, #0]
61 0030 00308DE5 add r1, sp, #12
62 0034 0C108DE2 .LVL4:
63 add r2, sp, #4
64 0038 04208DE2 add r3, sp, #12
65 003c 0C308DE2 sub r3, r3, #1
66 0040 013043E2 bl Search_File
67 0044 FEFFFFEB .LVL5:
68 cmp r0, #1
69 0048 010050E3 bne .L2
70 004c 0900001A .loc 1 87 0
86:bootloader.c **** {
87:bootloader.c **** printf("Verify ");
71
72 0050 00019FE5 bl _printf_P
73 0054 FEFFFFEB .loc 1 88 0
88:bootloader.c **** printf(filename);
74 ov r0, r4
75 0058 0400A0E1 bl _printf_P
76 005c FEFFFFEB .loc 1 89 0
89:bootloader.c **** printf("\n\r");
77 r r0, .L16+4
78 0060 F4009FE5 bl _printf_P
79 0064 FEFFFFEB .loc 1 103 0
90:bootloader.c **** }
91:bootloader.c **** else
92:bootloader.c **** {
93:bootloader.c **** printf("File ");
94:bootloader.c **** printf(filename);
95:bootloader.c **** printf(" not found!\n\r");
96:bootloader.c **** while(1)
97:bootloader.c **** {
98:bootloader.c **** }
99:bootloader.c **** }
100:bootloader.c ****
101:bootloader.c **** unsigned long block_counter = 0;
102:bootloader.c ****
103:bootloader.c **** while(File_Size>0)
80 r r3, [sp, #4]
81 0068 04309DE5 cmp r3, #0
82 006c 000053E3 bgt .L4
83 0070 070000CA .LVL6:
84 b .L5
85 0074 330000EA .LVL7:
86 .L2:
87 .loc 1 93 0
88 ldr r0, .L16+8
89 0078 E0009FE5 bl _printf_P
90 007c FEFFFFEB .loc 1 94 0
91 mov r0, r4
92 0080 0400A0E1 bl _printf_P
93 0084 FEFFFFEB .loc 1 95 0
94 ldr r0, .L16+12
95 0088 D4009FE5 bl _printf_P
96 008c FEFFFFEB .L6:
97 b .L6
98 0090 FEFFFFEA .LVL8:
99 .L4:
100 .loc 1 98 0
101 mov r7, #0
102 0094 0070A0E3 .LVL9:
103 mov r8, r7
104 0098 0780A0E1 mvn sl, #508
105 009c 7FAFE0E3 sub r6, sl, #2
106 00a0 02604AE2 .LVL10:
107 .L7:
108 .loc 1 105 0
104:bootloader.c **** {
105:bootloader.c **** Read_File (cluster,buffer,block_counter);
109 d r2, sp, #528
110 00a4 813F48E2 ldrh r0, [r2, r3]
111 add r1, sp, #16
112 00a8 212E8DE2 sub r1, r1, #1
113 00ac B30092E1 mov r2, r7
114 00b0 10108DE2 bl Read_File
115 00b4 011041E2 .loc 1 106 0
116 00b8 0720A0E1 add r7, r7, #1
117 00bc FEFFFFEB mov r4, r8
106:bootloader.c **** block_counter++;
118 LVL13:
119 00c0 017087E2 .L8:
120 00c4 0840A0E1 .LBB2:
121 .loc 1 109 0
122 ldr ip, [r5, #0]
123 add r2, sp, #528
124 add r3, r2, r4
107:bootloader.c **** for (unsigned short int a=0;a<512;a=a+4)
108:bootloader.c **** {
109:bootloader.c **** if(*mem_adresse != ( (buffer[a+3]<<24)+
125 0, [r3, #-512] @ zero_extendqisi2
126 00c8 00C095E5 ldrb r1, [r3, #-510] @ zero_extendqisi2
127 00cc 212E8DE2 ldrb r2, [r3, r6] @ zero_extendqisi2
128 00d0 043082E0 mov r2, r2, asl #16
129 00d4 000253E5 add r2, r2, r1, asl #24
130 00d8 FE1153E5 add r3, sp, #16
131 00dc 0620D3E7 sub r3, r3, #1
132 00e0 0228A0E1 ldrb r3, [r4, r3] @ zero_extendqisi2
133 00e4 012C82E0 add r2, r2, r3
134 00e8 10308DE2 add r3, r2, r0, asl #8
135 00ec 013043E2 cmp ip, r3
136 00f0 0330D4E7 .loc 1 114 0
137 00f4 032082E0 ldrne r0, .L16+16
138 00f8 003482E0 movne r1, r5
139 00fc 03005CE1 movne r2, ip
110:bootloader.c **** (buffer[a+2]<<16)+
111:bootloader.c **** (buffer[a+1]<<8)+
112:bootloader.c **** buffer[a]) )
113:bootloader.c **** {
114:bootloader.c **** printf("Memory Error %x : %x EX: %x \r\n",mem_adresse,*mem_adresse,((buffer[a+3]<<24)+
140
141 0100 60009F15 .L9:
142 0104 0510A011 .loc 1 121 0
143 0108 0C20A011 add r5, r5, #4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -