Hallo So langsam sollte jeder mitbekommen, dass ich mich mit ADUC MCUs beschäftige. Ich bin gerade dabei, meine Headerfiles etc. so umzuschreiben, dass nicht nur aduc702x sondern auch aduc703x oder aduc712x unterstützt wird. Im Moment hänge ich am Linker Skript und konnte im Internet keine Antwort auf mein Problem finden. Der aduc712x hat 2x64kb Flash-Ram. In den letzten 2kb des ersten Flash liegt der Bootloader von ADI, der weder gelesen noch beschrieben werden kann. Im Addressraum liegt also eine Lücke! Mein Problem ist, dass ich nicht weiß, wie man den Linker dazu bringen kann, beide Flashs zu verwenden, also beide Chips als Programmspeicher zu verwenden. Ich habe den Linker-Skript angehängt. Hat von euch einer eine Idee, wie das geht? Geht so etwas überhaupt automatisch oder muss ich mir selbst sections definieren? Vielen Dank, Tilo
Du kannst die verschiedene Sektionen, .bss, .data und .text in verschiedene FLASH chips spreichern. Wenn du z.B. die folgende Anweisung machst: .data : { _data = .; *(.data) *(.ramrun) _edata = .; } >ram AT > flash2 kommt die .data Sektion ins FLASH2. Da musst du aber aufpassen was für Wert dann _data und _edata haben. Die beide werden dann vielleicht in Startup code verwendet um die Initialwerte ins Flash später zu kopieren.
Danke für deinen Hinweis. Das bedeutet also, ich muss selbst den Code über beide Flash verteilen? Schade, ich dachte, man könnte den Linker anweisen, den Code optimal zu verteilen.
Das ist vielleicht auch möglich aber ich weiss nicht wie man das macht. Hast du dir schonmal den folgende PDF angesehen ? www.skyfree.org/linux/references/ld.pdf Das ist die ganze GNU LD Specifications. Gruß: Valentin
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.