Atualmente, estou usando o Keil para desenvolver uma placa de descoberta STM32. Meu projeto está quase concluído e eu gostaria de mudar para um ambiente de construção baseado em Linux. Eu tenho usado a ferramenta de piscamento pré-configurada e os drivers STLink do Windows para exibir a placa e obtive a exportação de um arquivo bin, que consegui exibir na minha máquina Linux usando o qSTLink2 . Por enquanto, tudo bem.
Agora, estou preso em mudar o processo de construção de todo o projeto. Especificamente:
Como portar meu .uvproj para um makefile, levando em consideração coisas como o arquivo de inicialização 'startup_stm32l1xx_md.s'?
Respostas:
Entendi. Pensei em compartilhar meus resultados para que outros possam usá-lo. Agradeço a todos pelo seu tempo.
Usei essa cadeia de ferramentas do ARM para criar meu projeto e a biblioteca texane / stlink , que acompanha a
./st-flash
ferramenta, para exibir o binário no meu STM32L1. Enquanto o texane / stlink vem com o GDB, eu descobri que poderia fazer o processo de construção + piscar sem ele.Meu Makefile acabou assim. Não é muito bonito ou abstrato, mas faz o trabalho.
No qual:
arm-none-eabi-gcc
A cadeia de ferramentas ARM
-T stm32l1xx.ld
O documento vinculador
-mthumb -mcpu=cortex-m3
Diga ao GCC que é para um M3
-D STM32L1XX_MD -D USE_STDPERIPH_DRIVER
Define para o driver periférico padrão
startup_stm32l1xx_md.s
Documento de inicialização orientado ao GCC.
system_stm32l1xx.c main.c [ sources ]
Lista dos meus arquivos de origem
-lm
Para
Math.h
( L ib M ath)--specs=nosys.specs
Não use chamadas de sistemas como
_exit
.-o Project.elf
Nome da saída
fonte
stm32l1xx.ld
arquivo?Existe uma cadeia de ferramentas Gnu ARM (arm-none-eabi), e supostamente o openOCD funciona com o gdb (embora eu não tenha sido capaz de fazer isso acontecer no Win7 - o openOCD se conecta a uma placa STM32F4disco OK, mas o gdb tem problemas para se conectar ao openOCD )
Faça algumas escavações por aqui e você encontrará links para a cadeia de ferramentas, o openOCD e os exemplos de projetos que incluem a fonte de inicialização.
fonte