Hallo,
der ATmega32 besitzt ja intern 1KB eeprom. Die winavr hat dafür auch Funktionen um diesen Bereich anzusprechen und z.B. Vars ins eeprom auszulagern bzw. dort dynamisch Daten zur Laufzeit anzulegen.
http://www.nongnu.org/avr-libc/user-...r__eeprom.html
Es gibt aber normalerweise auch die Möglichkeit, ein vorcompiliertes EEP file mit dem GCC zu erstellen und hoch zu laden. Das ist das gleiche HEX Format wie der Programmoutput und schaut z.B. so aus:
Das kann man mit einem ISP-Programmer und AVR-Studio auch ganz einfach direkt in die CPU laden.Code::10000000004010502E2C6F4F302A304F6F2C2E2076 :1000100000060906000000000000000A1F0E040090 :100020000000000A1F0E04000000000A1F0E04005A :100030000000000A1F0E04000000000A1F0E04004A :1000400000040404040404000000000A1F0E04005D :0100500000AF :00000001FF
Nu meine Frage.
Hat es jemand geschafft diese EEPROM Daten über den Robotloader in die CPU zu laden?
Ich vermute das es mit dem Robotloader nicht gehen wird aber hat denn jemand mal eine Art "EEPROMloaderprogramm" geschrieben, ähnlich wie der Originalbootloader der das EEPROM mit hochladbaren HEX Daten beschreibt? Mit einem Terminal z.B. kann man ja auch Daten/Files an den RP6 senden.
Ich möchte es mir eigentlich ersparen, die Prozessoren mit ISP zu bearbeiten und so ein Programm würde 1kb Speicher für selten bis garnicht veränderte Konstanten/Variablen bieten, wo bisher RAM oder besser... ProgrammFLASH per PSTR() genutzt wird. Über Deklarationen wie:
geht es aber auch und wie ich finde... besser!Code:const char var[] EEMEM = "0123456789ABCDEF";
Nur müsste man die Daten aus dem .eep halt irgendwie einfach ins eeprom bekommen.
Hat da jemand schon mal was gebaut?
Gruß
Lesezeichen