📄 main.lst
字号:
1 .file "main.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
102 .global port_init
104 port_init:
1:main.c **** //-------------------------------------------------------------------------
2:main.c **** #include <avr/io.h>
3:main.c **** #include <stdint.h>
4:main.c **** #include <avr/interrupt.h>
5:main.c **** #include <avr/pgmspace.h>
6:main.c ****
7:main.c **** #include "main.h"
8:main.c **** #include "mmc.h"
9:main.c **** #include "FAT16.h"
10:main.c **** //-------------------------------------------------------------------------
11:main.c **** void port_init(void){
106 .LM1:
107 /* prologue: frame size=0 */
108 /* prologue end (size=0) */
109 /* epilogue: frame size=0 */
110 0000 0895 ret
111 /* epilogue end (size=1) */
112 /* function port_init size 1 (0) */
114 .Lscope0:
116 .global ioinit
118 ioinit:
12:main.c **** }
13:main.c **** //-------------------------------------------------------------------------
14:main.c **** void ioinit(void){
120 .LM2:
121 /* prologue: frame size=0 */
122 /* prologue end (size=0) */
15:main.c **** cli(); //disable all interrupts
124 .LM3:
125 /* #APP */
126 0002 F894 cli
16:main.c **** port_init();
17:main.c **** mmcInit();
128 .LM4:
129 /* #NOAPP */
130 0004 0E94 0000 call mmcInit
18:main.c **** InitFat16();
132 .LM5:
133 0008 0E94 0000 call InitFat16
19:main.c ****
20:main.c **** MCUCR = 0x00;//MCU控制寄存器MCUCR ,控制寄存器包含了电源管理的控制位,休眠模式选择位 2、1 ,Bit 6 –
135 .LM6:
136 000c 15BE out 85-0x20,__zero_reg__
21:main.c **** GICR = 0x00;//中断控制寄存器GICR
138 .LM7:
139 000e 1BBE out 91-0x20,__zero_reg__
22:main.c **** TIMSK = 0x00;////timer interrupt sources
141 .LM8:
142 0010 19BE out 89-0x20,__zero_reg__
23:main.c **** sei(); //re-enable interrupts
144 .LM9:
145 /* #APP */
146 0012 7894 sei
147 /* #NOAPP */
148 /* epilogue: frame size=0 */
149 0014 0895 ret
150 /* epilogue end (size=1) */
151 /* function ioinit size 12 (11) */
153 .Lscope1:
154 .data
155 .LC0:
156 0000 5344 5F46 .string "SD_FAT16TXT"
156 4154 3136
156 5458 5400
157 .LC1:
158 000c 4966 2079 .string "If you look this content,the file was created success!"
158 6F75 206C
158 6F6F 6B20
158 7468 6973
158 2063 6F6E
159 .text
161 .global main
163 main:
24:main.c **** }
25:main.c **** //-------------------------------------------------------------------------
26:main.c **** int main(void){
165 .LM10:
166 /* prologue: frame size=65 */
167 0016 C0E0 ldi r28,lo8(__stack - 65)
168 0018 D0E0 ldi r29,hi8(__stack - 65)
169 001a DEBF out __SP_H__,r29
170 001c CDBF out __SP_L__,r28
171 /* prologue end (size=4) */
27:main.c **** uint8_t ok;
28:main.c **** uint8_t Name[11]="SD_FAT16TXT";
173 .LM11:
174 001e 6E01 movw r12,r28
175 0020 0894 sec
176 0022 C11C adc r12,__zero_reg__
177 0024 D11C adc r13,__zero_reg__
178 0026 8BE0 ldi r24,lo8(11)
179 0028 E0E0 ldi r30,lo8(.LC0)
180 002a F0E0 ldi r31,hi8(.LC0)
181 002c D601 movw r26,r12
182 002e 0190 ld __tmp_reg__,Z+
183 0030 0D92 st X+,__tmp_reg__
184 0032 8A95 dec r24
185 0034 E1F7 brne .-8
29:main.c **** uint8_t buffer[54]=
187 .LM12:
188 0036 8E01 movw r16,r28
189 0038 045F subi r16,lo8(-(12))
190 003a 1F4F sbci r17,hi8(-(12))
191 003c 86E3 ldi r24,lo8(54)
192 003e E0E0 ldi r30,lo8(.LC1)
193 0040 F0E0 ldi r31,hi8(.LC1)
194 0042 D801 movw r26,r16
195 0044 0190 ld __tmp_reg__,Z+
196 0046 0D92 st X+,__tmp_reg__
197 0048 8A95 dec r24
198 004a E1F7 brne .-8
30:main.c **** "If you look this content,the file was created success!";//这个 buffer和BUFFER不是同一个
31:main.c ****
32:main.c **** ioinit();
200 .LM13:
201 004c 0E94 0000 call ioinit
33:main.c ****
34:main.c **** ok=CreateFile(Name,(uint32_t)54); //建立长度为54的空文件,然后在去 找到这个文件名的 位置写上去
203 .LM14:
204 0050 46E3 ldi r20,lo8(54)
205 0052 50E0 ldi r21,hi8(54)
206 0054 60E0 ldi r22,hlo8(54)
207 0056 70E0 ldi r23,hhi8(54)
208 0058 C601 movw r24,r12
209 005a 0E94 0000 call CreateFile
35:main.c **** if(ok==SD_FAIL)return 1; //文件已存在,退出
211 .LM15:
212 005e 8130 cpi r24,lo8(1)
213 0060 61F0 breq .L3
36:main.c ****
37:main.c **** WriteFile(Name,(uint32_t)0,(uint32_t)54,buffer); //将buffer写入文件,这里的从头写到尾
215 .LM16:
216 0062 7801 movw r14,r16
217 0064 06E3 ldi r16,lo8(54)
218 0066 10E0 ldi r17,hi8(54)
219 0068 20E0 ldi r18,hlo8(54)
220 006a 30E0 ldi r19,hhi8(54)
221 006c 40E0 ldi r20,lo8(0)
222 006e 50E0 ldi r21,hi8(0)
223 0070 60E0 ldi r22,hlo8(0)
224 0072 70E0 ldi r23,hhi8(0)
225 0074 C601 movw r24,r12
226 0076 0E94 0000 call WriteFile
227 .L3:
38:main.c **** /*
39:main.c **** for(i=0;i<54;i++)buffer[i]=0;
40:main.c **** ReadFile(Name,(uint32_t)0,(uint32_t)54,buffer); //将文件读入buffer
41:main.c ****
42:main.c **** EreaseFile(Name); //删除文件
43:main.c **** */
44:main.c **** return 1;
45:main.c **** }
229 .LM17:
230 007a 81E0 ldi r24,lo8(1)
231 007c 90E0 ldi r25,hi8(1)
232 /* epilogue: frame size=65 */
233 007e 0C94 0000 jmp exit
234 /* epilogue end (size=2) */
235 /* function main size 54 (48) */
241 .Lscope2:
242 .text
244 Letext:
245 /* File "main.c": code 67 = 0x0043 ( 59), prologues 4, epilogues 4 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:104 .text:00000000 port_init
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:118 .text:00000002 ioinit
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:163 .text:00000016 main
C:\Users\summer\AppData\Local\Temp/ccCueaaa.s:244 .text:00000082 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
mmcInit
InitFat16
__stack
CreateFile
WriteFile
exit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -