Forum: Mikrocontroller und Digitale Elektronik problem mit intel hex file und bootlaoder


von dr. boot (Gast)


Lesenswert?

Hallo!

Ich habe folgendes Problem mit dem intel hex file format: Ich hab ein 
kleine programm geschrieben, welches die daten aus jeder zeile 
extrahiert.
d.h. länge, adresse, record typ und prüfsumme werden entfernt.
Mit diesen daten füttere ich dann meinen bootlaoder. Leider entsprechen 
die daten, die ich dann mit avr studio auslese nicht den gleichen, die 
beim programmieren über isp im controller landen.

hier ein kleines beispiel:

intel hex file daten:
:080000000C9459000C9400005F
:100008000C9400000C9400000C9400000C94000068
:100018000C9400000C9400000C9400000C94000058
:100028000C940A010C9400000C9400000C9400003D
:100038000C9400000C945D010C9405010C940201D1
:100048000C9400000C9400000C9400000C94000028
:100058000C9400000C9400000C9400000C94000018
:100068000C9400000C9400000C9400000C94000008
:100078000C9400000C9400000C9400000C940000F8
:100088000C9400000C9400000C9400005F00AA007F
:1000980090E2000000000100030094000100060047
:1000A80096000200090098000000F894EE27EFBBC4
:1000B800F1E0F5BFE5BFE0937400E0937500F8E167
:1000C800F0936000E09360008DE0A2E0BB27ED9321
:1000D8008A95E9F780E090E1A0E0B1E0ED9301971F
:1000E800E9F7EEE9F0E085919591009761F0A59127
:1000F800B59105901590BF01F00105900D920197FB
:10010800E1F7FB01F0CFE0E0EEBBEFEFEDBFE0E1A0
:10011800EEBFC0E0D5E00C94BC01E0E8E0936100DC
:10012800E0E0E0936100E2B9EFEFE1B9E0E0E5B9C2
:10013800E0E7E4B9E0E0E8B9E7B9EBB9EAB9EEB964
:10014800EDB9E1BBE0BBE4BBE3BBE2E0E4BDE0E06A
:10015800E6BDE6EEE7BDE0E0E0938000E1E0E09395
:1001680081001CD1E0E0E0938700E0938600E093F3
:100178008900E0938800E0938B00E0938A00E09385
:100188008D00E0938C00E093B600E5E0E093B000CA
:10019800E0E0E093B200E093B300E0939000E093D6
:1001A8009100E0939500E0939400E0939700E0932A
:1001B8009600E0939900E0939800E0939B00E09309
:1001C8009A00E0939D00E0939C00E0936900E0931F
:1001D8006A00EDBBE3E0E0936E00E1E0E0936F00BE
:1001E800E0937000E0E0E0937100E0E8E0BFE0E059
:1001F800E0937B00E093D8007894089536BC42B829
:100208001895EA93E0E0E2B9E9911895EA93FA9330
:10021800EFB7EA936092B200E1E0F0E07E0E8F1E45
:10022800E991EFBFF991E991189577248824E8813D
:10023800F9817E168F06D8F3229608955394E7E045
:10024800E51508F45524E52DE03019F4E8E14E2EC3
:1002580022C0E13019F4E9E94E2E1DC0E23019F44C
:10026800E1E84E2E18C0E33019F4E5EA4E2E13C02B
:10027800E43019F4E4E24E2E0EC0E53019F4E6E657
:100288004E2E09C0E63019F4E2E44E2E04C0E730E1
:1002980011F4EAE54E2E89D0EF5FFF4F6F4F7F4F85
:1002A800E0930005F0930105609302057093030540
:1002B80008950A921A92FA926A937A938A939A9371
:1002C800AA93BA93EA93FA93EFB7EA9367D0F099AF
:1002D800B5DFE991EFBFF991E991B991A9919991A8
:1002E800899179916991F9901990099018952497B5
:1002F80084E0A0E0B0E0EAE9F0E00E9415025ED0F8
:100308009884A984F09A64D00E94060266D028F4E2
:10031800EE81FF819E16AF0608F006C069D0E1E0C5
:10032800F0E09E0EAF1EEFCF40D0E883F9836A83DA
:100338007B8344D0F09A42D0A881B9818A819B817D
:1003480047D00E94010249D0B8F342D046D060F4A9
:100358004FD0E885F985E915FA0528F4E92DFA2D35
:1003680031979E2EAF2EF1CFF09844242E96089503
:10037800D4DEE0E4FCE960E070E00E940B02E0EC0F
:10038800FAEDFA93EA93E8E4FEEEFA93EA93E1E0F1
:10039800F0E0FA93EA93ABDFFFCFFFCFA09285009E
:1003A800E92DFA2DE09384000895E0910005F0917D
:1003B800010560910205709103050895E0E0E0935E
:1003C8000005E0930105E0930205E0930305089515
:1003D800EA85FB856C857D850895A0910005B0911F
:1003E800010580910205909103050E94100208956D
:1003F800EC81FD81FA93EA9318CFEA1BFB0B680B9B
:10040800790B089576956795F795E79508957A930A
:100418006A93FA93EA930895AE17BF07860797077A
:100428000895AC0FBD1F05900D928A95E1F70895C8
:00000001FF

extrahierte daten:
0C94 5900 0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 
0C94 0000 0C94 0000 0C94 0000 0C94 0A01 0C94 0000 0C94 0000 0C94 0000 
0C94 0000 0C94 5D01 0C94 0501 0C94 0201 0C94 0000 0C94 0000 0C94 0000 
0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 
0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 0C94 0000 
0C94 0000 0C94 0000 5F00 AA00 90E2 0000 0000 0100 0300 9400 0100 0600 
9600 0200 0900 9800 0000 F894 EE27 EFBB F1E0 F5BF E5BF E093 7400 E093 
7500 F8E1 F093 6000 E093 6000 8DE0 A2E0 BB27 ED93 8A95 E9F7 80E0 90E1 
A0E0 B1E0 ED93 0197 E9F7 EEE9 F0E0 8591 9591 0097 61F0 A591 B591 0590 
1590 BF01 F001 0590 0D92 0197 E1F7 FB01 F0CF E0E0 EEBB EFEF EDBF E0E1 
EEBF C0E0 D5E0 0C94 BC01 E0E8 E093 6100 E0E0 E093 6100 E2B9 EFEF E1B9 
E0E0 E5B9 E0E7 E4B9 E0E0 E8B9 E7B9 EBB9 EAB9 EEB9 EDB9 E1BB E0BB E4BB 
E3BB E2E0 E4BD E0E0 E6BD E6EE E7BD E0E0 E093 8000 E1E0 E093 8100 1CD1 
E0E0 E093 8700 E093 8600 E093 8900 E093 8800 E093 8B00 E093 8A00 E093 
8D00 E093 8C00 E093 B600 E5E0 E093 B000 E0E0 E093 B200 E093 B300 E093 
9000 E093 9100 E093 9500 E093 9400 E093 9700 E093 9600 E093 9900 E093 
9800 E093 9B00 E093 9A00 E093 9D00 E093 9C00 E093 6900 E093 6A00 EDBB 
E3E0 E093 6E00 E1E0 E093 6F00 E093 7000 E0E0 E093 7100 E0E8 E0BF E0E0 
E093 7B00 E093 D800 7894 0895 36BC 42B8 1895 EA93 E0E0 E2B9 E991 1895 
EA93 FA93 EFB7 EA93 6092 B200 E1E0 F0E0 7E0E 8F1E E991 EFBF F991 E991 
1895 7724 8824 E881 F981 7E16 8F06 D8F3 2296 0895 5394 E7E0 E515 08F4 
5524 E52D E030 19F4 E8E1 4E2E 22C0 E130 19F4 E9E9 4E2E 1DC0 E230 19F4 
E1E8 4E2E 18C0 E330 19F4 E5EA 4E2E 13C0 E430 19F4 E4E2 4E2E 0EC0 E530 
19F4 E6E6 4E2E 09C0 E630 19F4 E2E4 4E2E 04C0 E730 11F4 EAE5 4E2E 89D0 
EF5F FF4F 6F4F 7F4F E093 0005 F093 0105 6093 0205 7093 0305 0895 0A92 
1A92 FA92 6A93 7A93 8A93 9A93 AA93 BA93 EA93 FA93 EFB7 EA93 67D0 F099 
B5DF E991 EFBF F991 E991 B991 A991 9991 8991 7991 6991 F990 1990 0990 
1895 2497 84E0 A0E0 B0E0 EAE9 F0E0 0E94 1502 5ED0 9884 A984 F09A 64D0 
0E94 0602 66D0 28F4 EE81 FF81 9E16 AF06 08F0 06C0 69D0 E1E0 F0E0 9E0E 
AF1E EFCF 40D0 E883 F983 6A83 7B83 44D0 F09A 42D0 A881 B981 8A81 9B81 
47D0 0E94 0102 49D0 B8F3 42D0 46D0 60F4 4FD0 E885 F985 E915 FA05 28F4 
E92D FA2D 3197 9E2E AF2E F1CF F098 4424 2E96 0895 D4DE E0E4 FCE9 60E0 
70E0 0E94 0B02 E0EC FAED FA93 EA93 E8E4 FEEE FA93 EA93 E1E0 F0E0 FA93 
EA93 ABDF FFCF FFCF A092 8500 E92D FA2D E093 8400 0895 E091 0005 F091 
0105 6091 0205 7091 0305 0895 E0E0 E093 0005 E093 0105 E093 0205 E093 
0305 0895 EA85 FB85 6C85 7D85 0895 A091 0005 B091 0105 8091 0205 9091 
0305 0E94 1002 0895 EC81 FD81 FA93 EA93 18CF EA1B FB0B 680B 790B 0895 
7695 6795 F795 E795 0895 7A93 6A93 FA93 EA93 0895 AE17 BF07 8607 9707 
0895 AC0F BD1F 0590 0D92 8A95 E1F7 0895

bitte um entschuldigung für diesen "hex-haufen" :)
btw: die extrahierten daten bitte OHNE leerzeichen interpretieren. es 
werden NUR die hex werte so wie sie hier stehen byte für byte ab adresse 
0x0000 in den flash geschrieben.

Danke für eure Hilfe!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Sieht doch eigentlich nicht schlecht aus. Womit hast Du jetzt ein 
Problem?

von dr. boot (Gast)


Lesenswert?

wie gesagt, wenn ich die extrahierten daten in den controller schreibe 
und dann auslese, ergibt das ein hex file A.
wenn ich das gleiche programm mit AVR studio in den controller schreibe, 
ergibt das ein programm B. leider ist A nicht gleich B....

von Ulrich (Gast)


Lesenswert?

kleiner tipp am Rande:
avr-objcopy -I ihex -O binary main.hex main.bin
so erspart man sich das umwandeln.

Wenn du die über bootloader programmierte Version ausließt, dann ist am 
Ende noch der bootloader im hex file. wenn du per isp programmierst so 
ist dieser nicht am Ende da. Vielleicht ist das ja der Unterschied?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

dr. boot:

Schicke mal das original-hex-file und jenes, das Du mit dem Bootloader 
geschrieben hast. Dabei solltest Du einmal das Originalfile und dann das 
per Bootloader in den Controller gebrannte Programm mit AVR-Studio als 
Read-Flash-File auslesen, so daß Du wieder ein intel-hex-file bekommst. 
Erst dann kann man die beiden Files direkt miteinander vergleichen.

von dr. boot (Gast)


Lesenswert?

@travel rec. genau so hab ichs gemacht - danke für eure hilfe.

ich hab den fehler jetzt gefunden - ich hatte LB und UB in den pages 
vertauscht.

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.