Hallo Zusammen, ich arbeite an einer SPS-Runtime für µC, weiß jemand ob und wie es möglich ist z. B. auf einem atmega128 durch ein bootladeränliches Programm Hex-Code nachzuladen und zu verwenden ? viele Grüße Wolfgang
Beim Uploaden wird dem AVR-Bootloader ja die Zieladresse aus dem Hexfile mitgeteilt. So sollten also Teile des Flashes, welche natürlich nicht durch festen Programmcode (SPS-Anwendung bzw. Bootloader) belegt sein dürfen, für SPS-Anweisungen mit einem gewöhnlichen Bootloader nachladbar sein. Denk an die pageweise Aufteilung im AVR-Flash. Der Adressoffset für die SPS-Anweisungen muss also ein Vielfaches der Pagegröße sein. Deine SPS-Anweisungen schreibst als HEX-File mit dem nötigen Adressoffset. Oder Du schreibst erstmal in ein Binärfile, welches Du mit einem BIN2HEX-Tool HEXelst. Da geht z.B. http://www.keil.com/download/docs/113.asp Der Aufruf mit einem Offset von 0x2800 wäre dann: bin2hex.exe /O0x2800 input.bin im C-File dann: #include <avr/pgmspace.h> void mySpsFunc(void){ PGM_P SpsAdr = (PGM_P)0x2800; uint8_t SpsDta; while(1){ SpsDta = pgm_read_byte(SpsAdr++); /* ... Weiterer Code ... */ } } Gruß Frank
Hallo Frank, vielen Dank für deinen kompetenten ausführlichen Beitrag Gruß Wolfgang
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.