Forum: Mikrocontroller und Digitale Elektronik File not Found - Disassembler AVR Studio


von Björn (Gast)


Lesenswert?

Hallo zusammen,

ich habe gerade mal den Software Uart von Peter Dannegger compiliert. 
Leider funktioniert das Programm nicht. Es scheint sich immer 
auszuhängen oder an falsche Adressen zu springen. Im Disassembler sieht 
es folgendermaßen aus:
1
@00000000: _delay_loop_2
2
---- UNKNOWN_FILE ---------------------------------------------------------------------------------
3
0: File not found
4
+00000000:   C019        RJMP      PC+0x001A      Relative jump
5
+00000001:   C033        RJMP      PC+0x0034      Relative jump
6
+00000002:   C032        RJMP      PC+0x0033      Relative jump
7
+00000003:   C031        RJMP      PC+0x0032      Relative jump
8
+00000004:   C030        RJMP      PC+0x0031      Relative jump
9
+00000005:   C02F        RJMP      PC+0x0030      Relative jump
10
+00000006:   C02E        RJMP      PC+0x002F      Relative jump
11
+00000007:   C02D        RJMP      PC+0x002E      Relative jump
12
+00000008:   C02C        RJMP      PC+0x002D      Relative jump
13
+00000009:   C02B        RJMP      PC+0x002C      Relative jump
14
+0000000A:   C0B5        RJMP      PC+0x00B6      Relative jump
15
+0000000B:   C11A        RJMP      PC+0x011B      Relative jump
16
+0000000C:   C0D9        RJMP      PC+0x00DA      Relative jump
17
+0000000D:   C027        RJMP      PC+0x0028      Relative jump
18
+0000000E:   C026        RJMP      PC+0x0027      Relative jump
19
+0000000F:   C025        RJMP      PC+0x0026      Relative jump
20
+00000010:   C024        RJMP      PC+0x0025      Relative jump
21
+00000011:   C023        RJMP      PC+0x0024      Relative jump
22
+00000012:   C022        RJMP      PC+0x0023      Relative jump
23
+00000013:   C021        RJMP      PC+0x0022      Relative jump
24
+00000014:   C020        RJMP      PC+0x0021      Relative jump
25
+00000015:   C01F        RJMP      PC+0x0020      Relative jump
26
+00000016:   C01E        RJMP      PC+0x001F      Relative jump
27
+00000017:   C01D        RJMP      PC+0x001E      Relative jump
28
+00000018:   C01C        RJMP      PC+0x001D      Relative jump
29
+00000019:   C01B        RJMP      PC+0x001C      Relative jump
30
+0000001A:   2411        CLR       R1             Clear Register
31
+0000001B:   BE1F        OUT       0x3F,R1        Out to I/O location
32
+0000001C:   EFCF        SER       R28            Set Register
33
+0000001D:   E0D2        LDI       R29,0x02       Load immediate
34
+0000001E:   BFDE        OUT       0x3E,R29       Out to I/O location
35
+0000001F:   BFCD        OUT       0x3D,R28       Out to I/O location
36
+00000020:   E011        LDI       R17,0x01       Load immediate
37
+00000021:   E0A0        LDI       R26,0x00       Load immediate
38
+00000022:   E0B1        LDI       R27,0x01       Load immediate
39
+00000023:   EEE0        LDI       R30,0xE0       Load immediate
40
+00000024:   E0F2        LDI       R31,0x02       Load immediate
41
+00000025:   C002        RJMP      PC+0x0003      Relative jump
42
+00000026:   9005        LPM       R0,Z+          Load program memory and postincrement
43
+00000027:   920D        ST        X+,R0          Store indirect and postincrement
44
+00000028:   30AE        CPI       R26,0x0E       Compare with immediate
45
+00000029:   07B1        CPC       R27,R17        Compare with carry
46
+0000002A:   F7D9        BRNE      PC-0x04        Branch if not equal
47
+0000002B:   E011        LDI       R17,0x01       Load immediate
48
+0000002C:   E0AE        LDI       R26,0x0E       Load immediate
49
+0000002D:   E0B1        LDI       R27,0x01       Load immediate
50
+0000002E:   C001        RJMP      PC+0x0002      Relative jump
51
+0000002F:   921D        ST        X+,R1          Store indirect and postincrement
52
+00000030:   38AE        CPI       R26,0x8E       Compare with immediate
53
+00000031:   07B1        CPC       R27,R17        Compare with carry
54
+00000032:   F7E1        BRNE      PC-0x03        Branch if not equal
55
+00000033:   D009        RCALL     PC+0x000A      Relative call subroutine
56
+00000034:   C139        RJMP      PC+0x013A      Relative jump
57
+00000035:   CFCA        RJMP      PC-0x0035      Relative jump
58
@00000036: init
59
---- MAIN.C ---------------------------------------------------------------------------------------
60
13:       void init( void )
61
+00000036:   B81A        OUT       0x0A,R1        Out to I/O location
62
16:         DDRB = 0;
63
+00000037:   B814        OUT       0x04,R1        Out to I/O location
64
17:         PORTD = 0xFF;
65
+00000038:   EF8F        SER       R24            Set Register
66
+00000039:   B98B        OUT       0x0B,R24       Out to I/O location
67
18:         PORTB = 0xFF;
68
+0000003A:   B985        OUT       0x05,R24       Out to I/O location
69
19:         suart_init();
70
+0000003B:   D01E        RCALL     PC+0x001F      Relative call subroutine
71
20:       }
72
+0000003C:   9508        RET                      Subroutine return
73
@0000003D: main
74
23:       int main( void )
75
+0000003D:   93CF        PUSH      R28            Push register on stack
76
+0000003E:   93DF        PUSH      R29            Push register on stack
77
25:         init();
78
+0000003F:   DFF6        RCALL     PC-0x0009      Relative call subroutine
79
26:         sei();
80
+00000040:   9478        SEI                      Global Interrupt Enable
81
27:         uputs( "Hallo Peter\n\r" );
82
+00000041:   E080        LDI       R24,0x00       Load immediate
83
+00000042:   E091        LDI       R25,0x01       Load immediate
84
+00000043:   D062        RCALL     PC+0x0063      Relative call subroutine
85
+00000044:   E520        LDI       R18,0x50       Load immediate
86
+00000045:   EC33        LDI       R19,0xC3       Load immediate
87
c:/programme/winavr-20090313/lib/gcc/../../avr/include/util/delay_basic.h 
88
110: File not found
89
+00000046:   ECC8        LDI       R28,0xC8       Load immediate
90
+00000047:   E0D0        LDI       R29,0x00       Load immediate
91
+00000048:   C005        RJMP      PC+0x0006      Relative jump
92
+00000049:   01CE        MOVW      R24,R28        Copy register pair
93
+0000004A:   9701        SBIW      R24,0x01       Subtract immediate from word
94
+0000004B:   F7F1        BRNE      PC-0x01        Branch if not equal
95
c:/programme/winavr-20090313/lib/gcc/../../avr/include/util\delay.h 
96
124: File not found
97
+0000004C:   5021        SUBI      R18,0x01       Subtract immediate
98
+0000004D:   4030        SBCI      R19,0x00       Subtract immediate with carry
99
120: File not found
100
+0000004E:   1521        CP        R18,R1         Compare
101
+0000004F:   0531        CPC       R19,R1         Compare with carry
102
+00000050:   F7C1        BRNE      PC-0x07        Branch if not equal
103
+00000051:   C002        RJMP      PC+0x0003      Relative jump
104
---- MAIN.C ---------------------------------------------------------------------------------------
105
31:             uputchar( ugetchar());
106
+00000052:   D02D        RCALL     PC+0x002E      Relative call subroutine
107
+00000053:   D03F        RCALL     PC+0x0040      Relative call subroutine
108
30:           while( kbhit() )
109
+00000054:   D025        RCALL     PC+0x0026      Relative call subroutine
110
+00000055:   2388        TST       R24            Test for Zero or Minus
111
+00000056:   F7D9        BRNE      PC-0x04        Branch if not equal
112
+00000057:   E520        LDI       R18,0x50       Load immediate
113
+00000058:   EC33        LDI       R19,0xC3       Load immediate
114
+00000059:   CFEF        RJMP      PC-0x0010      Relative jump
115
@0000005A: suart_init
116
---- SUART.C --------------------------------------------------------------------------------------

Was hat es denn mit dem "Unknown File" oder "Files not found" auf sich? 
Eigentlich sind diese alle vorhanden.

Gruß,
Björn

von spess53 (Gast)


Lesenswert?

Hi

>Es scheint sich immer auszuhängen oder an falsche Adressen zu springen.

Richtigen Controller eingestellt?

>Was hat es denn mit dem "Unknown File" oder "Files not found" auf sich?
>Eigentlich sind diese alle vorhanden.

Der Code wird vom Compiler generiert. Dafür gibt es kein File.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.