Ich verwende derzeit Keil, um für ein STM32-Discovery-Board zu entwickeln. Mein Projekt steht kurz vor dem Abschluss und ich möchte auf eine Linux-basierte Gebäudeumgebung umsteigen. Ich habe das vorkonfigurierte Flashing-Tool und die STLink-Treiber für Windows verwendet, um das Board zu flashen, und ich habe Keil dazu gebracht, eine Bin-Datei zu exportieren, die ich mit qSTLink2 auf meinem Linux-Computer flashen konnte . So weit, ist es gut.
Jetzt bin ich fest entschlossen, den Prozess des Aufbaus des gesamten Projekts voranzutreiben. Speziell:
Wie portiere ich meine .uvproj auf ein Makefile, während ich Dinge wie die Startdatei 'startup_stm32l1xx_md.s' berücksichtige?
Antworten:
Habe es geschafft. Ich dachte, ich würde meine Ergebnisse teilen, damit andere sie nutzen können. Vielen Dank für Ihre Zeit, alle zusammen.
Ich habe diese ARM-Toolchain verwendet , um mein Projekt zu erstellen, und die Texane / Stlink- Bibliothek, die mit dem
./st-flash
Tool geliefert wird, um die Binärdatei auf meinem STM32L1 zu flashen. Während texane / stlink mit GDB geliefert wird, habe ich festgestellt, dass ich den Building + Flashing-Prozess ohne GDB durchführen kann.Mein Makefile sah dann so aus. Es ist nicht sehr hübsch oder abstrakt, aber es erledigt den Job.
In welchem:
arm-none-eabi-gcc
Die ARM-Toolchain
-T stm32l1xx.ld
Das Linker-Dokument
-mthumb -mcpu=cortex-m3
Sagen Sie GCC, dass dies für einen M3 ist
-D STM32L1XX_MD -D USE_STDPERIPH_DRIVER
Definiert für den Standard-Peripherietreiber
startup_stm32l1xx_md.s
GCC-orientiertes Startdokument.
system_stm32l1xx.c main.c [ sources ]
Liste meiner Quelldateien
-lm
Für
Math.h
( L ib M ath)--specs=nosys.specs
Verwenden Sie keine Systemaufrufe wie
_exit
.-o Project.elf
Ausgabename
quelle
stm32l1xx.ld
Datei?Es gibt eine Gnu ARM-Toolchain (arm-none-eabi), und angeblich funktioniert openOCD mit gdb (obwohl ich dies unter Win7 nicht geschafft habe - openOCD stellt eine Verbindung zu einer STM32F4disco-Karte her, OK, aber gdb hat Probleme mit der Verbindung zu openOCD ).
Haben einige Graben um hier und Sie finden Links zu den Toolchain, openocd und Beispielprojekte , die Startquelle enthalten.
quelle