J'utilise actuellement Keil pour développer une carte de découverte STM32. Mon projet est presque terminé et j'aimerais passer à un environnement de construction basé sur Linux. J'ai utilisé l'outil de clignotement préconfiguré et les pilotes STLink pour Windows pour flasher la carte, et j'ai obtenu keil pour exporter un fichier bin, que j'ai réussi à flasher sur ma machine Linux en utilisant qSTLink2 . Jusqu'ici tout va bien.
Maintenant, je suis bloqué sur le déplacement du processus de construction de l'ensemble du projet. Plus précisément:
Comment puis-je porter mon .uvproj vers un makefile, tout en prenant en compte le fichier de démarrage 'startup_stm32l1xx_md.s'?
Réponses:
Je l'ai fait. J'ai pensé que je partagerais mes résultats afin que d'autres puissent l'utiliser. Merci pour votre temps, tout le monde.
J'ai utilisé cette chaîne d' outils ARM pour construire mon projet, et la bibliothèque texane / stlink , fournie avec l'
./st-flash
outil, pour flasher le binaire sur mon STM32L1. Alors que texane / stlink est livré avec GDB, j'ai trouvé que je pouvais faire le processus de construction + flashage sans lui.Mon Makefile a fini par ressembler à ceci. Ce n'est pas très joli ou abstrait, mais ça fait le travail.
Dans lequel:
arm-none-eabi-gcc
La chaîne d'outils ARM
-T stm32l1xx.ld
Le document de l'éditeur de liens
-mthumb -mcpu=cortex-m3
Dites à GCC que c'est pour un M3
-D STM32L1XX_MD -D USE_STDPERIPH_DRIVER
Définit pour le pilote de périphérique standard
startup_stm32l1xx_md.s
Document de démarrage orienté GCC.
system_stm32l1xx.c main.c [ sources ]
Liste de mes fichiers source
-lm
Pour
Math.h
( L ib M ath)--specs=nosys.specs
N'utilisez pas d'appels de système comme
_exit
.-o Project.elf
Nom de sortie
la source
stm32l1xx.ld
fichier?Il existe une chaîne d'outils Gnu ARM (arm-none-eabi), et soi-disant openOCD fonctionne avec gdb (bien que je n'ai pas pu y arriver sous Win7 - openOCD se connecte à une carte STM32F4disco OK, mais gdb a des problèmes de connexion à openOCD ).
Faites quelques recherches ici et vous trouverez des liens vers la chaîne d'outils, openOCD et des exemples de projets qui incluent la source de démarrage.
la source