Hallo, ich möchte die Funktionen sprintf / sscanf in meinem Programm für ein STM32 verwenden. Wie muss ich die stdio.h einbinden? Mit #include <stdio.h> findet er die Datei nicht. Ich benutze die CoIDE und arm-none-eabi (WinARM). Moritz
stdio.h ist schon mal richtig. Da sind die Funktionsprototypen drin. Wenn der Compiler das nicht findet, dann musst du ihm den Include-Pfad mitgeben. Das lässt sich sicher irgendwie bei den Projekteinstellungen erledigen. Warum nimmst du überhaupt Winarm? Das Projekt ist doch mause-tot. Ich würde dir eher zu Codesourcery, Yagarto oder zu der von ARM gepflegten Toolchain[1] raten. Die hier genannten Toolchains (auch Winarm) nutzen die newlib. Diese braucht zum funktionieren von (s)printf und (s)scanf zusätzliche Funktionen, die du implementieren musst. Der Linker wird dir noch mitteilen, welche das sind. Die Implementationen der Stdio-Funktionen in der newlib sind aber alles andere als ressourcenschonend, sodass sich Alternativimplementationen anbieten. Für (s)printf verwende ich diese hier: http://www.firefly-power.de/ARM/printf.html Die passt in ca. 1kb Flash. Für (s)scanf sollte sich auch so etwas finden lassen. Für den Fall dass du die newlib-Funktionen nutzen willst, schau mal hier: https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/getting-newlib-to-work-with-stm32-and-code-sourcery-lite-eabi [1] https://launchpad.net/gcc-arm-embedded Gruß Oliver
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.