Wie geht das beim GCC? Muss da der exakte STM32 Typ, z.B. STM32F103ZET6 angegeben werden oder kann man einen Grundtyp definieren (z.B. STM32F103) und die Flash, bzw. RAM Adressen und Größen individuell mit weiteren Parametern bestimmen? Wäre es möglich das interne RAM eines Controllers nahtlos mit Hilfe von externem RAM zu vergrößern?
> und die Flash, bzw. RAM Adressen und Größen individuell mit > weiteren Parametern bestimmen? Das wird ueber Linkerscripte gemacht. > Wäre es möglich das interne RAM eines Controllers nahtlos > mit Hilfe von externem RAM zu vergrößern? Wenn der Controller ein externes Speicherinterface hat dann ist das moeglich. Olaf
Olaf schrieb: >> und die Flash, bzw. RAM Adressen und Größen individuell mit >> weiteren Parametern bestimmen? > > Das wird ueber Linkerscripte gemacht. danke. Wie sieht das denn ganz konkret aus? gcc [TypController]=STM32 ? Linkerscript = ? Erstellt gcc nicht das Linkerscript?
>gcc [TypController]=STM32 ? >Linkerscript = ? Beispiele finden sich zuhauf z.B. in der STM32 Std-Peripheral Lib oder ähnlichen Produkten (oft Files mit der Endung '.ld'). >Erstellt gcc nicht das Linkerscript? Nein, das machst Du! Woher soll der Compiler wissen, was Du wie und wohin linken willst? Bei den GNU Binutils ist ein binutils.pdf dabei. Da solltest Du Dir 'reinziehen! http://www.embedds.com/programming-stm32-discovery-using-gnu-tools-linker-script/
Zeichnungen und Screenshots schrieb: > Nein, das machst Du! Woher soll der Compiler wissen, > was Du wie und wohin linken willst? Beim Freepascal Compiler sieht das etwas anders aus. http://www.freepascal.org Dort ist ein selbst erstelltes Linker Script wohl nicht notwendig. Da wird der exakte Typ des Controllers beim compilieren mit angegeben. Die RAM und Flash Adressen sind im Compiler hardcoded hinterlegt, was ich allerdings für nicht besonders gut halte. Denn bei neuen Controllern mit geänderten Speichergrößen steht man dann auf den Schlauch. Bzw. wenn man das RAM selbst erweitert. Ich bin dabei auf Linux für den STM32 zu programmieren. Hier hat jemand schon Vorarbeit geleistet. http://j-software.dk/stm32f103.php Das funktioniert soweit schon ganz gut. Da ich viel in Pascal programmiere kann ich das dann schnell auf die STM32 Controller portieren. Meine Idee dort ist, dass man die RAM und Flash Basisadressen und Größen einfach durch weitere Parameter - die man dem Compiler übergibt - überschreibt. Hat der GCC überhaupt nichts mit dem Linkerscript zu tun? Irgendwoher muss der Linker ja wissen welche Dateien er zusammenfügen soll. Muss man das auch alles von Hand machen?
>Hat der GCC überhaupt nichts mit dem Linkerscript zu tun? Irgendwoher >muss der Linker ja wissen welche Dateien er zusammenfügen soll. Muss man >das auch alles von Hand machen? Bei den GNU Binutils ist ein binutils.pdf dabei. Das solltest Du Dir 'reinziehen! http://www.embedds.com/programming-stm32-discovery... Ausserdem: gcc.pdf
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.