📄 main.lss
字号:
368: cc b9 out 0x0c, r28 ; 12
return (0);
}
36a: 80 e0 ldi r24, 0x00 ; 0
36c: 90 e0 ldi r25, 0x00 ; 0
36e: cf 91 pop r28
370: 08 95 ret
00000372 <main>:
//Hauptprogramm
void main (void)
{
372: cd e5 ldi r28, 0x5D ; 93
374: d2 e0 ldi r29, 0x02 ; 2
376: de bf out 0x3e, r29 ; 62
378: cd bf out 0x3d, r28 ; 61
//Initzialisierung der seriellen Schnittstelle
IOInit();
37a: e9 df rcall .-46 ; 0x34e
//鰂fnet einen kanal f黵 printf
fdevopen (uart_putchar, NULL, 0);
37c: 40 e0 ldi r20, 0x00 ; 0
37e: 50 e0 ldi r21, 0x00 ; 0
380: ba 01 movw r22, r20
382: 8c ea ldi r24, 0xAC ; 172
384: 91 e0 ldi r25, 0x01 ; 1
386: d7 d1 rcall .+942 ; 0x736
printf ("Startup OK\nInitializing MMC/SD-Card!\n");
388: 82 e7 ldi r24, 0x72 ; 114
38a: 90 e0 ldi r25, 0x00 ; 0
38c: 2c d2 rcall .+1112 ; 0x7e6
//Initialisierung der MMC/SD-Karte
char Timeout = 0;
38e: 10 e0 ldi r17, 0x00 ; 0
char a = 1;
while (a !=0) /*ist der R點kgabewert ungleich NULL ist ein Fehler aufgetreten
MMC/SD-Karte wird dann neu Initialisiert*/
{
a = Init_MMC();
390: 65 de rcall .-822 ; 0x5c
Timeout++;
392: 1f 5f subi r17, 0xFF ; 255
if (Timeout == 200)
394: 18 3c cpi r17, 0xC8 ; 200
396: 21 f4 brne .+8 ; 0x3a0
{
printf ("Keine MMC/SD-Karte gefunden!!\n");
398: 87 e9 ldi r24, 0x97 ; 151
39a: 90 e0 ldi r25, 0x00 ; 0
39c: 24 d2 rcall .+1096 ; 0x7e6
while (1) {}
39e: ff cf rjmp .-2 ; 0x39e
3a0: 88 23 and r24, r24
3a2: b1 f7 brne .-20 ; 0x390
}
}
//Initialisierung der MMC/SD-Karte ENDE!
char Buffer[512];
long addr = 0;
char tmp = 0;
//Erzeugt ein Array von 512 Bytes mit dem Inhalt EEhex
for (int a=0;a<512;a=a+1)
3a4: 20 e0 ldi r18, 0x00 ; 0
3a6: 30 e0 ldi r19, 0x00 ; 0
{
Buffer[a] = 0xEE;
3a8: 3e 01 movw r6, r28
3aa: 08 94 sec
3ac: 61 1c adc r6, r1
3ae: 71 1c adc r7, r1
3b0: f9 01 movw r30, r18
3b2: e6 0d add r30, r6
3b4: f7 1d adc r31, r7
3b6: 8e ee ldi r24, 0xEE ; 238
3b8: 80 83 st Z, r24
3ba: 2f 5f subi r18, 0xFF ; 255
3bc: 3f 4f sbci r19, 0xFF ; 255
3be: 82 e0 ldi r24, 0x02 ; 2
3c0: 20 30 cpi r18, 0x00 ; 0
3c2: 38 07 cpc r19, r24
3c4: 8c f3 brlt .-30 ; 0x3a8
}
//schreibt Array in den ersten Blocks der MMC/SD Karte (addr = 0)
tmp = Write_Block_MMC (addr,Buffer);
3c6: a3 01 movw r20, r6
3c8: 60 e0 ldi r22, 0x00 ; 0
3ca: 70 e0 ldi r23, 0x00 ; 0
3cc: 80 e0 ldi r24, 0x00 ; 0
3ce: 90 e0 ldi r25, 0x00 ; 0
3d0: 4f df rcall .-354 ; 0x270
if (tmp != 0) //ist der R點kgabewert ungleich NULL ist ein Fehler aufgetreten
3d2: 88 23 and r24, r24
3d4: 61 f0 breq .+24 ; 0x3ee
{
printf("Error %x\n",tmp);
3d6: 99 27 eor r25, r25
3d8: 9f 93 push r25
3da: 8f 93 push r24
3dc: 85 eb ldi r24, 0xB5 ; 181
3de: 90 e0 ldi r25, 0x00 ; 0
3e0: 9f 93 push r25
3e2: 8f 93 push r24
3e4: ec d1 rcall .+984 ; 0x7be
3e6: 0f 90 pop r0
3e8: 0f 90 pop r0
3ea: 0f 90 pop r0
3ec: 0f 90 pop r0
}
//auslesen des zweiten Blocks von der MMC/SD Karte (addr = 1)
addr = 1;
tmp = Read_Block_MMC (addr,Buffer);
3ee: a3 01 movw r20, r6
3f0: 61 e0 ldi r22, 0x01 ; 1
3f2: 70 e0 ldi r23, 0x00 ; 0
3f4: 80 e0 ldi r24, 0x00 ; 0
3f6: 90 e0 ldi r25, 0x00 ; 0
3f8: cc de rcall .-616 ; 0x192
if (tmp != 0) //ist der R點kgabewert ungleich NULL ist ein Fehler aufgetreten
3fa: 88 23 and r24, r24
3fc: 61 f0 breq .+24 ; 0x416
{
printf("Error %x\n",tmp);
3fe: 99 27 eor r25, r25
400: 9f 93 push r25
402: 8f 93 push r24
404: 85 eb ldi r24, 0xB5 ; 181
406: 90 e0 ldi r25, 0x00 ; 0
408: 9f 93 push r25
40a: 8f 93 push r24
40c: d8 d1 rcall .+944 ; 0x7be
40e: 0f 90 pop r0
410: 0f 90 pop r0
412: 0f 90 pop r0
414: 0f 90 pop r0
}
//ausgabe des zweiten Blocks auf die serielle Schnittstelle
for (int a=0;a<512;a=a+8)
416: 00 e0 ldi r16, 0x00 ; 0
418: 10 e0 ldi r17, 0x00 ; 0
41a: 73 01 movw r14, r6
{
printf("%x %x %x %x %x %x %x %x ",Buffer[a],Buffer[a+1],Buffer[a+2],Buffer[a+3],Buffer[a+4],Buffer[a+5],Buffer[a+6],Buffer[a+7]);
41c: e8 e0 ldi r30, 0x08 ; 8
41e: f0 e0 ldi r31, 0x00 ; 0
420: ec 0f add r30, r28
422: fd 1f adc r31, r29
424: e0 0f add r30, r16
426: f1 1f adc r31, r17
428: 80 81 ld r24, Z
42a: 99 27 eor r25, r25
42c: 9f 93 push r25
42e: 8f 93 push r24
430: e7 e0 ldi r30, 0x07 ; 7
432: f0 e0 ldi r31, 0x00 ; 0
434: ec 0f add r30, r28
436: fd 1f adc r31, r29
438: e0 0f add r30, r16
43a: f1 1f adc r31, r17
43c: 80 81 ld r24, Z
43e: 99 27 eor r25, r25
440: 9f 93 push r25
442: 8f 93 push r24
444: e6 e0 ldi r30, 0x06 ; 6
446: f0 e0 ldi r31, 0x00 ; 0
448: ec 0f add r30, r28
44a: fd 1f adc r31, r29
44c: e0 0f add r30, r16
44e: f1 1f adc r31, r17
450: 80 81 ld r24, Z
452: 99 27 eor r25, r25
454: 9f 93 push r25
456: 8f 93 push r24
458: e5 e0 ldi r30, 0x05 ; 5
45a: f0 e0 ldi r31, 0x00 ; 0
45c: ec 0f add r30, r28
45e: fd 1f adc r31, r29
460: e0 0f add r30, r16
462: f1 1f adc r31, r17
464: 80 81 ld r24, Z
466: 99 27 eor r25, r25
468: 9f 93 push r25
46a: 8f 93 push r24
46c: 94 e0 ldi r25, 0x04 ; 4
46e: 89 2e mov r8, r25
470: 91 2c mov r9, r1
472: 8c 0e add r8, r28
474: 9d 1e adc r9, r29
476: f4 01 movw r30, r8
478: e0 0f add r30, r16
47a: f1 1f adc r31, r17
47c: 80 81 ld r24, Z
47e: 99 27 eor r25, r25
480: 9f 93 push r25
482: 8f 93 push r24
484: 83 e0 ldi r24, 0x03 ; 3
486: a8 2e mov r10, r24
488: b1 2c mov r11, r1
48a: ac 0e add r10, r28
48c: bd 1e adc r11, r29
48e: f5 01 movw r30, r10
490: e0 0f add r30, r16
492: f1 1f adc r31, r17
494: 80 81 ld r24, Z
496: 99 27 eor r25, r25
498: 9f 93 push r25
49a: 8f 93 push r24
49c: b2 e0 ldi r27, 0x02 ; 2
49e: cb 2e mov r12, r27
4a0: d1 2c mov r13, r1
4a2: cc 0e add r12, r28
4a4: dd 1e adc r13, r29
4a6: f6 01 movw r30, r12
4a8: e0 0f add r30, r16
4aa: f1 1f adc r31, r17
4ac: 80 81 ld r24, Z
4ae: 99 27 eor r25, r25
4b0: 9f 93 push r25
4b2: 8f 93 push r24
4b4: f7 01 movw r30, r14
4b6: 80 81 ld r24, Z
4b8: 99 27 eor r25, r25
4ba: 9f 93 push r25
4bc: 8f 93 push r24
4be: 8f eb ldi r24, 0xBF ; 191
4c0: 90 e0 ldi r25, 0x00 ; 0
4c2: 9f 93 push r25
4c4: 8f 93 push r24
4c6: 7b d1 rcall .+758 ; 0x7be
a=a+8;
4c8: 08 5f subi r16, 0xF8 ; 248
4ca: 1f 4f sbci r17, 0xFF ; 255
4cc: e8 e0 ldi r30, 0x08 ; 8
4ce: f0 e0 ldi r31, 0x00 ; 0
4d0: ee 0e add r14, r30
4d2: ff 1e adc r15, r31
printf("%x %x %x %x %x %x %x %x\n",Buffer[a],Buffer[a+1],Buffer[a+2],Buffer[a+3],Buffer[a+4],Buffer[a+5],Buffer[a+6],Buffer[a+7]);
4d4: ec 0f add r30, r28
4d6: fd 1f adc r31, r29
4d8: e0 0f add r30, r16
4da: f1 1f adc r31, r17
4dc: 80 81 ld r24, Z
4de: 99 27 eor r25, r25
4e0: 9f 93 push r25
4e2: 8f 93 push r24
4e4: e7 e0 ldi r30, 0x07 ; 7
4e6: f0 e0 ldi r31, 0x00 ; 0
4e8: ec 0f add r30, r28
4ea: fd 1f adc r31, r29
4ec: e0 0f add r30, r16
4ee: f1 1f adc r31, r17
4f0: 80 81 ld r24, Z
4f2: 99 27 eor r25, r25
4f4: 9f 93 push r25
4f6: 8f 93 push r24
4f8: e6 e0 ldi r30, 0x06 ; 6
4fa: f0 e0 ldi r31, 0x00 ; 0
4fc: ec 0f add r30, r28
4fe: fd 1f adc r31, r29
500: e0 0f add r30, r16
502: f1 1f adc r31, r17
504: 80 81 ld r24, Z
506: 99 27 eor r25, r25
508: 9f 93 push r25
50a: 8f 93 push r24
50c: e5 e0 ldi r30, 0x05 ; 5
50e: f0 e0 ldi r31, 0x00 ; 0
510: ec 0f add r30, r28
512: fd 1f adc r31, r29
514: e0 0f add r30, r16
516: f1 1f adc r31, r17
518: 80 81 ld r24, Z
51a: 99 27 eor r25, r25
51c: 9f 93 push r25
51e: 8f 93 push r24
520: f4 01 movw r30, r8
522: e0 0f add r30, r16
524: f1 1f adc r31, r17
526: 80 81 ld r24, Z
528: 99 27 eor r25, r25
52a: 9f 93 push r25
52c: 8f 93 push r24
52e: f5 01 movw r30, r10
530: e0 0f add r30, r16
532: f1 1f adc r31, r17
534: 80 81 ld r24, Z
536: 99 27 eor r25, r25
538: 9f 93 push r25
53a: 8f 93 push r24
53c: f6 01 movw r30, r12
53e: e0 0f add r30, r16
540: f1 1f adc r31, r17
542: 80 81 ld r24, Z
544: 99 27 eor r25, r25
546: 9f 93 push r25
548: 8f 93 push r24
54a: f7 01 movw r30, r14
54c: 80 81 ld r24, Z
54e: 99 27 eor r25, r25
550: 9f 93 push r25
552: 8f 93 push r24
554: 88 ed ldi r24, 0xD8 ; 216
556: 90 e0 ldi r25, 0x00 ; 0
558: 9f 93 push r25
55a: 8f 93 push r24
55c: 30 d1 rcall .+608 ; 0x7be
55e: ed b7 in r30, 0x3d ; 61
560: fe b7 in r31, 0x3e ; 62
562: b4 96 adiw r30, 0x24 ; 36
564: 0f b6 in r0, 0x3f ; 63
566: f8 94 cli
568: fe bf out 0x3e, r31 ; 62
56a: 0f be out 0x3f, r0 ; 63
56c: ed bf out 0x3d, r30 ; 61
56e: 08 5f subi r16, 0xF8 ; 248
570: 1f 4f sbci r17, 0xFF ; 255
572: 88 e0 ldi r24, 0x08 ; 8
574: 90 e0 ldi r25, 0x00 ; 0
576: e8 0e add r14, r24
578: f9 1e adc r15, r25
57a: 92 e0 ldi r25, 0x02 ; 2
57c: 00 30 cpi r16, 0x00 ; 0
57e: 19 07 cpc r17, r25
580: 0c f4 brge .+2 ; 0x584
582: 4c cf rjmp .-360 ; 0x41c
}
//auslesen des ersten Blocks von der MMC/SD Karte (addr = 1)
addr = 0;
tmp = Read_Block_MMC (addr,Buffer);
584: ae 01 movw r20, r28
586: 4f 5f subi r20, 0xFF ; 255
588: 5f 4f sbci r21, 0xFF ; 255
58a: 60 e0 ldi r22, 0x00 ; 0
58c: 70 e0 ldi r23, 0x00 ; 0
58e: 80 e0 ldi r24, 0x00 ; 0
590: 90 e0 ldi r25, 0x00 ; 0
592: ff dd rcall .-1026 ; 0x192
if (tmp != 0) //ist der R點kgabewert ungleich NULL ist ein Fehler aufgetreten
594: 88 23 and r24, r24
596: 61 f0 breq .+24 ; 0x5b0
{
printf("Error %x\n",tmp);
598: 99 27 eor r25, r25
59a: 9f 93 push r25
59c: 8f 93 push r24
59e: 85 eb ldi r24, 0xB5 ; 181
5a0: 90 e0 ldi r25, 0x00 ; 0
5a2: 9f 93 push r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -