Gast
#878829
Hallo ich schreibe derzeit an einem Bootloader - welcher soweit auch funktioniert - nur der "Write FLASH"-Befehl über das ECON-Register tut nicht, wie er soll. In den ULOAD Modus konnte ich wechseln - Erase Page und Erase Flash funktionieren auch. Nur anstatt die Daten zu schreiben, die ich ihm per rs232 schicke, schreibt er die letzte beschriebene Seite aus dem FLASH-Bootloader (Seite 227 (0xE300). Egal welche FLASH-Seite ich beschreiben will - es findet sich immer diese Seite in der dann beschriebenen FLASH-Seite. Die lt. Datenblatt an XDATA 0x0000-0x00FF zu schreibenden Daten habe ich anschließend rückgelesen und sie waren, wie sie sein sollten. Der verwendete Compiler ist der C51 von Keil
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
C51 Ausgabe:
; SOURCE LINE # 151
009C ?C0024:
; SOURCE LINE # 152
009C 120000 R LCALL rd_rs232
009F 8F00 R MOV page,R7
; SOURCE LINE # 153
00A1 E500 R MOV A,page
00A3 C3 CLR C
00A4 94E0 SUBB A,#0E0H
00A6 506A JNC ?C0025
; SOURCE LINE # 154
00A8 E4 CLR A
00A9 F500 R MOV crc,A
00AB F500 R MOV crc+01H,A
; SOURCE LINE # 155
00AD FA MOV R2,A
00AE FB MOV R3,A
00AF ?C0026:
; SOURCE LINE # 156
; SOURCE LINE # 157
00AF 120000 R LCALL rd_rs232
00B2 7400 MOV A,#LOW MEM_BLOCK
00B4 2B ADD A,R3
00B5 F582 MOV DPL,A
00B7 7400 MOV A,#HIGH MEM_BLOCK
00B9 3A ADDC A,R2
00BA F583 MOV DPH,A
00BC EF MOV A,R7
00BD F0 MOVX @DPTR,A
; SOURCE LINE # 158
00BE 120000 R LCALL L?0099
00C1 8E00 R MOV crc,R6
00C3 8F00 R MOV crc+01H,R7
; SOURCE LINE # 159
00C5 0B INC R3
00C6 BB0001 CJNE R3,#00H,?C0073
00C9 0A INC R2
00CA ?C0073:
00CA E4 CLR A
00CB B503E1 CJNE A,AR3,?C0026
00CE EA MOV A,R2
00CF B401DD CJNE A,#01H,?C0026
00D2 ?C0027:
; SOURCE LINE # 160
00D2 120000 R LCALL rd_rs232
00D5 750000 R MOV input,#00H
00D8 8F00 R MOV input+01H,R7
; SOURCE LINE # 161
00DA AD00 R MOV R5,input+01H
00DC 120000 R LCALL L?0100
00DF 8E00 R MOV crc,R6
00E1 8F00 R MOV crc+01H,R7
; SOURCE LINE # 162
00E3 120000 R LCALL rd_rs232
00E6 750000 R MOV input,#00H
00E9 8F00 R MOV input+01H,R7
; SOURCE LINE # 164
00EB AD00 R MOV R5,input+01H
00ED 120000 R LCALL L?0100
00F0 8E00 R MOV crc,R6
00F2 8F00 R MOV crc+01H,R7
; SOURCE LINE # 165
00F4 E500 R MOV A,crc+01H
00F6 4500 R ORL A,crc
00F8 7013 JNZ ?C0029
; SOURCE LINE # 166
00FA 8500C7 R MOV EADRH,page
; SOURCE LINE # 167
00FD 75C613 MOV EADRL,#013H
; SOURCE LINE # 168
0100 75B902 MOV ECON,#02H
; SOURCE LINE # 169
0103 E5B9 MOV A,ECON
0105 7003 JNZ ?C0030
; SOURCE LINE # 170
0107 020000 R LJMP ?C0082
010A ?C0030:
; SOURCE LINE # 171
; SOURCE LINE # 172
010A 020000 R LJMP ?C0083
010D ?C0029:
010D 7F22 MOV R7,#022H
; SOURCE LINE # 173
010F 020000 R LJMP ?C0098
0112 ?C0025:
; SOURCE LINE # 174
0112 E4 CLR A
0113 FA MOV R2,A
0114 FB MOV R3,A
0115 ?C0034:
; SOURCE LINE # 175
0115 120000 R LCALL rd_rs232
0118 0B INC R3
0119 BB0001 CJNE R3,#00H,?C0075
011C 0A INC R2
011D ?C0075:
011D BA01F5 CJNE R2,#01H,?C0034
0120 BB02F2 CJNE R3,#02H,?C0034
0123 ?C0035:
; SOURCE LINE # 176
0123 7F11 MOV R7,#011H
0125 ?C0084:
; SOURCE LINE # 177
; SOURCE LINE # 178