Datum: 24.04.2008 14:17
Hallo, da ich nun schon seit geraumer Zeit am grübeln, googeln und lesen bin und trotzdem nicht weiterkomme mit meinem Problem, wende ich mich an euch. Hintergrund meines Werkens ist, dass ich einen Programmcode (bzw. INTEL HEx file) habe (eines PIC16F684), diesen in den Flash eines ATMEGA mitaufnehmen möchte, um den ATMEGA als Programmer für den PIC zu verwenden. Ich beschäftige mich mit dem Intel Hex File. Wenn ich nun dieses File z.B. in einem Texteditor öffne, habe ich z.B. folgende Zeile: :100018001B208312200E8300F00E700E0900A92009 Schau ich mir jetzt das gleiche File über den "PICKIT 1 Flash Starter Kit" an, so ergibt sich der Inhalt (ab Zelle 0018) zu 0000 102F 2814 1283 100C 3040 008F 0064 Wie passt das zusammen? Desweiteren werden im Editor die Zellen bis 27E belegt, während im Programm "Starter Kit" nur bis 13E Daten stehen. Mir ist auch bewusst, dass eine Zelle im Pic lediglich 14 Bit hat. Kann es sein, dass das Hex-File das künstlich auf 16Bit aufpeppt?! Bin da gerade mächtig auf dem Holzweg. Danke schon im Voraus für euer Bemühen. Gruß Robbi
Datum: 24.04.2008 14:39
...so spontan kann ich da auch nicht helfen. Wenn du wissen willst, wie das Hex-FOrmat aufgebaut ist dann guck: http://www.piclist.com/techref/fileext/hex/intel.htm virtuPIC
Datum: 24.04.2008 15:31
Mahlzeit!
Habe das Problem gelöst.
Im HEX-File steht ja am Anfang die Adresse byteweise, während im "PICKIT
1 Flash Starter Kit" die Daten Zellenweise (14 bzw. 16 Bit) dargestellt
werden.
Deswegen gibt es einen "Versatz". D.h. 2 Datenbytes sind in einer
Speicherzelle abgelegt.
Um das mal am Beispiel und vlt. anderen Leuten, die das gleiche Problem
haben,
zu erklären, folgendes:
Im Hex File steht:
:100018001B208312200E8300F00E700E0900A92009
:10 16 Bytes
0018 Anfangsadresse
00 Record Type Daten
1B Daten im Byte 0x18
20 Daten im Byte 0x19
Byte Nr. Speicherzelle* Wert
0x18 0x0C 1B
0x19 20
*Speicherzelle ist Halber Byte Wert
Da die Speicherzellen im Format HighByte - LowByte aufgebaut sind, steht
im Programm "PICKIT 1 Flash Starter Kit" an der Stelle der Speicherzelle
0x0C der Wert 201B.
Gruß Robbi
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel