AppCode would overwrite boot-code

Gast #3209442
Hallo,

ich benutze Codesourcery + Eclipse für den ARM7 (LPC2148) und habe jetzt 
erstmals folgendes Problem.

Nach dem Zusammenlegen von zwei C Quelltextteilen bekomme ich die
Meldung: "AppCode would overwrite boot-code".

Diese Meldung kommt aus  LPC2148_flash.ld (...LPC2368 from Chan with
modifications by Martin Thomas)

Genauer steht da :

LAST_USED_FLASH_ADDRESS = LOADADDR(.data) + (_data_end_ - 
_data_start_);
ASSERT(LAST_USED_FLASH_ADDRESS < USERAPP_START_ADDRESS , "AppCode would 
overwrite boot-code");
USERAPP_MAX_ADDRESS = ORIGIN(ROM) + LENGTH(ROM);

Jetzt hätte ich gerne gewusst, wie ich das aufschlüsselen kann. Bisher 
hat
alles wunderbar geklappt. Nun müsste ich aber zum Beheben des Problem 
wissen, wo man die Addressen findet auf die sich die Berechnug bezieht.

Hat jemand eine Idee dazu ?

Danke.
Moderator Persönliche Seite
> LAST_USED_FLASH_ADDRESS = LOADADDR(.data) + (_data_end_ -
> _data_start_);

Die letzte benutzte Flash-Adresse wird berechnet, unter der Annahme, 
dass die Initalwerte von Variablen zuletzt im Flash abgelegt sind. 
LOADADDR(.data) ist die erste Adresse, die .data Output-Section, zu 
dieser wird die Größe der Section addiert.

> ASSERT(LAST_USED_FLASH_ADDRESS < USERAPP_START_ADDRESS , "AppCode would
> overwrite boot-code");

Falls die in der vorherigen Zeile errechnetet Adresse >= 
USERAPP_START_ADDRESS bricht der Linker ab.

So richtig erinnern kann ich mich an der Code gerade nicht aber ich habe 
das wohl vor ein paar Jahren verbrochen für irgend einen speziellen 
Bootloader. Falls kein Bootloader zum Einsatz kommt, kann man die 
Prüfung einfach rauslöschen. Der Linker prüft bei einfachen Anwendungen 
ohnehin anhand der LENGTH-Angaben in der MEMORY-section des 
Linkerscripts, ob ausreichend Platz zur Verfügung steht.
Gast
Ja, super , klappt!

Nein, es ist kein Bootloader im Einsatz. Hatte das Script schon
unverändert mehrere Jahren im Einsatz ohne Problem (obwohl ich es als
ganzes sowieso nicht verstehe). Das was normalerweise raus kommt
funktioniert jedoch prima. Hoffe auch weiterhin!!

Danke sehr, hat mit sehr geholfen.

Grüße

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.