Hallo Gemeinde, ich arbeite grad mit AVR STudio 5 und versuche eine EEProm File zu erstellen. Das klappt ansich auch wunderbar. Nut leider ist das Format im EEprom anderst wie ich es gerne hätte. (Ausschnitt) IST (AVR STudio 5): :1000000000000000000000000000000000000000F0.. :10001000000090019001640064006400640000002E.. SOLL (ICCAVR 7): :0E0000000000000000000000000000000000F2.. :0E000E00000000009001900164006400640096.. Nach längerem suchen und prüfen ist mir bewusst geworden das der Dateninhalt der gleiche ist. "Nur" die Recordlänge (RECLEN) vom Intelhex Format ist auf HEX 10 (Dez. 16) vor eingestellt und ich möchte aber HEX 0E (Dez. 14) haben, da jeder Eintrag im EEprom 14 Werte hat. Der Code wurde ursprünglich mal für ICCAVR 7 geschrieben und ich portiere den gerade aufs AVR STudio 5 um. Im ICCAVR 7 gehts irgendwie automatisch mit 14 Einträgen. Ich habe auch schon diverse Options der avr-objcopy.exe ausgetestet. --srec-len <number> -b --byte <num> Leider ohne Erfolg. Die unterschiedlichen Bezeichnung für die Datenlänge verwirren mich auch sehr und erschweren nur das Filtern der Suchergebnisse. Ich konnte auch nicht finden, wo ich ausschließlich für .EEP File Paramter angeben kann. In den Options im AVR Studio 5 habe ich auch noch keine Änderungsmöglichkeit dazu finden können. Bzw. die die ich probierte führten nicht zum Erfolg. Dann wollte ich die interne Hilfe Seite aufmachen aber es kommt nur "Page not found" http://msdn.microsoft.com/EN-US/library/AVR_STUDIOUSERGUIDE Bitte liebe Gemeinde, zeigt oder erklärt mir jemand wie ich das einstellen kann. Grüßle NewWay
Re: AVR Studio 5 EEPROM File Intel Hex Format Datenlänge RECLEN einstellen per Option avr-objcopy.ex
NewWay schrieb: > das der Dateninhalt der gleiche ist. "Nur" die Recordlänge > (RECLEN) vom Intelhex Format ist auf HEX 10 (Dez. 16) vor eingestellt > und ich möchte aber HEX 0E (Dez. 14) haben, da jeder Eintrag > im EEprom 14 Werte hat. Das sollte aber einem ordentlich geschriebenm Code zum Einlesen eines Hex-Files keinerlei Schwierigkeiten machen. > Leider ohne Erfolg. Die unterschiedlichen Bezeichnung für > die Datenlänge verwirren mich auch sehr und erschweren > nur das Filtern der Suchergebnisse. Machst du das händisch, oder wie muss man sich das Vorstellen? > Bitte liebe Gemeinde, zeigt oder erklärt mir jemand wie ich > das einstellen kann. Du verschwendest deine Zeit. Nimm einen ordentlichen Hex-File Leser oder ändere deinen Code zum Einlesen entsprechend um, dann ist das alles kein Problem mehr. Genau solche Nachlässigkeiten und Annahmen rächen sich immer. Irgendwann. Und zwar jede Einzelne.
Re: AVR Studio 5 EEPROM File Intel Hex Format Datenlänge RECLEN einstellen per Option avr-objcopy.ex
NewWay schrieb: > ich möchte aber HEX 0E (Dez. 14) haben, da jeder Eintrag > im EEprom 14 Werte hat. So lange die Einträge im EEPROM direkt hintereinander angeordnet werden (und warum sollte das nicht so sein?), ist das doch völlig egal. Oliver
Re: AVR Studio 5 EEPROM File Intel Hex Format Datenlänge RECLEN einstellen per Option avr-objcopy.ex
Guten Morgen Karl Heinz Buchegger und Oliver, vielen Dank für euer rasches Feedback. Ich befürchte die Problemstellung hast Du etwas missverstanden!? Bitte lasses es mich noch einmal versuchen: Ich erzeuge die Intel HEX File über eine Header File. Ich nutze einen HEX Editor um den Inhalt zu überprüfen. Es ist ein Struct im Code definiert.
1 | typedef struct |
2 | {
|
3 | unsigned char ByteVar1; |
4 | unsigned char ByteVar2; |
5 | unsigned char ByteVar3; |
6 | unsigned char ByteVar4; |
7 | unsigned char ByteVar5; |
8 | unsigned char ByteVar6; |
9 | unsigned char ByteVar7; |
10 | unsigned char ByteVar8; |
11 | unsigned char ByteVar9; |
12 | unsigned char ByteVar10; |
13 | unsigned char ByteVar11; |
14 | unsigned char ByteVar12; |
15 | unsigned char ByteVar13; |
16 | unsigned char ByteVar14; |
17 | } BSP_daten; |
Um meine EEPROM File vom AVR Studio erzeugen zu lassen habe ich in einer H-File ein Define erstellt.
1 | #define EEPROM __attribute__((section (".eeprom")))
|
und anschließende die Daten für ins EEPROM.EEP.
1 | BSP_daten SpeicherOrt1 EEPROM = {0xAA,0x55,0xAA,0x55, |
2 | 0xAA,0x55,0xAA,0x55, |
3 | 0xAA,0x55,0xAA,0x55, |
4 | 0xAA,0x55 |
5 | };
|
Wie gesagt, das AVR Studio 5 compiliert mir das auch und erzeugt mir ein EEPROM File. Aber eben mit einer RECLEN von HEX 10. Aus historischen Gründen MÖCHTE / WILL ich aber HEX 0E als RECLEN. Nur weiß ich eben nicht WO und WIE ich das dem AVR Studio oder sonst wo einstellen kann. Bitte zeigt bzw. erklärt mir doch jemand wie das geht!? Im ICCAVR ist dieses Define nicht vorhanden. Es wird mit Pragma erstellt.
1 | #pragma data:eeprom+3
|
2 | |
3 | BSP_daten SpeicherOrt1 = {0xAA,0x55,0xAA,0x55, |
4 | 0xAA,0x55,0xAA,0x55, |
5 | 0xAA,0x55,0xAA,0x55, |
6 | 0xAA,0x55 |
7 | };
|
8 | |
9 | #pragma data:data
|
Der ICCAVR erzeugt mir aber "einfach so" ein EEPROM File mit RECLEN von HEX 0E bzw. DEZ 14 !! Was das +3 soll weiß ich übrigens nicht. > Machst du das händisch, oder wie muss man sich das Vorstellen? Nun die "Specs" im Netz benutzen unterschiedliche Begriffe, aber die eigentliche Intel HEX Spec nennt den Eintrag RECLEN. - Datenlänge - Byte count - ... Wenn man jetzt diese, in Kombination mit anderen wie z.B. AVR Studio, EEPROM etc, als Suchbegriff Googled, findet man unzählige Antworten dazu, aber viel zu viele die nicht im Kontext dazu stehen, leider. Das erschwert, mir zumindest, das Filtern der relevanten Informationen dies bezüglich. Viele Grüße NewWay
Re: AVR Studio 5 EEPROM File Intel Hex Format Datenlänge RECLEN einstellen per Option avr-objcopy.ex
NewWay schrieb: > Ich nutze einen > HEX Editor um den Inhalt zu überprüfen. Dann benutze eine bessere Verifikationsmethode. Mit avr-objcopy kannst du den Inhalt zumindest in eine Binärdatei umwandeln (vorausgesetzt natürlich, er beginnt an Adresse 0 und hat keine Lücken), die kannst du dann gegen den Soll-Inhalt vergleichen lassen.
Re: AVR Studio 5 EEPROM File Intel Hex Format Datenlänge RECLEN einstellen per Option avr-objcopy.ex
NewWay schrieb: > Aus historischen Gründen MÖCHTE / > WILL ich aber HEX 0E als RECLEN. Dann nochmal ganz deutlich: WARUM? Welcher Teil deiner Software oder deienr Tools funktioniert nur mit einer RECLEN von 14, und warum? Lösung: Such oder schreib dir ein Tool, daß das bestehende ihex-file einliest, und dir den output liefert, den du möchtest. Im Studio 5 kann man m.E. post-procressing-Programme definieren, dort hängst du das Programm dann rein. Oliver
Re: AVR Studio 5 EEPROM File Intel Hex Format Datenlänge RECLEN einstellen per Option avr-objcopy.ex
Hallo Jörg Wunsch, auch Dir danke sehr für dein Feedback. In der Tat, es hat geklappt. Vielen Dank. Da war ich wohl echt auf dem Holzweg. Viele Grüße NewWay
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.