Wie Stelle ständig an bestimmte Adresse mit LD-linker-command-file?
Entwickle ich eine c-Anwendung auf einem embedded-Prozessor mit einer gcc-basierte toolchain. In meiner Anwendung, die ich benötigen, um ein flag auf einen bestimmten Speicherbereich. Ich brauche Hilfe mit der linker-command-file-syntax, dies zu erreichen.
- Was meinst du mit 'Platz ein flag'? Sie haben zu definieren, die eine C-variable an einer bestimmten Stelle, so dass Sie zugegriffen werden kann von einem anderen Prozess? Wie irgendeine Art von Informationen zur version, oder eine boot-option?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihre C-Datei etwas schreiben wie:
In Ihr angepasstes linker-Skript hinzufügen .Flagge, um die gewünschte Abschnitt:
Werden Sie sicher, dass Sie diese an der richtigen Stelle, als die Lage-pointer kann nur wachsen Die Lage Zeiger auf
_flag_start + [size of your flag]
nach diesem block, was bedeutet, dass alle nachfolgenden Abschnitte gelegt werden, dass unter dieser Adresse oder höher.Und natürlich Lesen und verwenden Sie die manuelle David Grayson zur Verfügung gestellt.
Hatte ich zu diesem Zweck auf einem Cortex-M3 eine Zeit. Mein linker Skript ist lang, kompliziert, und der privaten, aber diese Seite hat mir geholfen es zu schreiben und vielleicht finden Sie es nützlich zu:
http://www.linuxselfhelp.com/gnu/ld/html_chapter/ld_3.html
Ich würde empfehlen, einen zu finden, die vorhandenen linker-Skript, das mit dem compiler ist die Verwendung von Standard -, und dann zu modifizieren, dass durch Zugabe eines speziellen Abschnitt an einer bestimmten Adresse, und setzen Sie Ihre fahne in diesem Abschnitt im Quelltext.