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.
> 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.
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
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.