M1626 Flash Update

Gast #126756
Hi alle,


Ich entwickel gerade auf einem M16C26 einen Embedded Server. Es wird
möglich sein diesen Server über das Internet mit neuer Software zu
versorgen.

Dazu empfange ich das 64kByte große Bin File aus dem Internet und
speicher es in ein Eeprom, so weit so gut. Jetzt muss das Bin File noch
aus dem Eeprom in den Flash ab Adresse 0x0F0000 kopiert werden.

Leider habe ich keinen RAM mehr frei, um dort mein Flash Kopier
Routinen hin zu kopieren und dort auszuführen. Die einzige Möglichkeit
ist also den beiden Blöcke A und B (0x00F000-0x00FFFF) als Codesegment
zu nutzen. Also hab ich im sect30.inc ein entsprechendes Codesegment
angelegt und sehe dies auch ab Adress 0x00F000 im Bin File. Das doofe
ist jetzt nur, das der M16C Flasher nur die 64kByte ab Adresse 0x0F0000
in den Controller überspielt.

Bin also für alle guten Ideen und Anregungen offen!! Das einzige, was
mir nämlich im Moment einfällt, ist per Hand meine Flash Routinen im
Bin File irgendwo an eine freie Stelle in den 64kByte Block rein zu
kopieren und nachher beim Start wieder in den Block A und B zu
kopieren.
Gast
Kannst du event. einen Teil deines Speichers dynamisch reservieren
(vieleicht hast du ja ein paar große arrays). Wenn du dann in den
Updatemode gehst, brauchst du die Arrays nicht mehr und kannst sie
freigeben. Dann hast du auch wieder genug Speicher um deine
Flashroutine aus dem RAM auszuführen.
Gast
Ne, das geht leider nicht, solche Speicherbereiche gibt es bei mir im
RAM nicht. Evtl. hab ich jetzt ne Lösung gefunden, ich versuche gerade
soweit Segmente hin und her zu schieben, das ich einen Flash Block
komplet frei bekomme, dann kann ich darin mein Eeprom->Flash Kopier
Routine halten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.