Eu tenho uma placa de descoberta STM32 e gostaria de poder programá-la no Linux.
Qual é a maneira mais fácil de fazer isso?
Eu tenho uma placa de descoberta STM32 e gostaria de poder programá-la no Linux.
Qual é a maneira mais fácil de fazer isso?
Respostas:
Uma maneira fácil de programar e depurar a placa STM32 Discovery (ou qualquer STM32 usando um programador ST-Link) é usar o projeto 'stlink' https://github.com/texane/stlink (no entanto, o OpenOCD também parece popular)
As placas ST Nucleo também aparecem como um dispositivo flash USB, portanto nem precisam stlink
- basta copiar o arquivo para elas.
Existem algumas páginas boas sobre como desenvolver a descoberta do STM32 no Linux, como http://gpio.kaltpost.de/?page_id=131 e http://torrentula.to.funpic.de/2012/03/22/ setup-up-the-stm32f4-arm-development-toolchain / e http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
No entanto, achei o último link o mais útil. Ele mostra como criar projetos STM32 da ST como estão - A única mudança é adicionar o Makefile, que parece ser uma solução perfeita.
Nas versões recentes do Ubuntu, há um pacote que você pode instalar que contém um compilador ARM:
sudo apt-get install gcc-arm-none-eabi
Observe que os processadores são todos um pouco diferentes. Todos STM32F0..4 precisarão de diferentes sinalizadores de compilador e o script do vinculador será ligeiramente diferente para cada um (embora apenas devido aos tamanhos de RAM e Flash alterados).
Editar: se você deseja começar muito rapidamente, também pode consultar http://www.espruino.com . É um intérprete de JavaScript executado no próprio STM32; portanto, depois de instalar o 'stlink' para que você possa piscar na placa, basta baixar uma imagem desse site, piscar e conectar-se a um aplicativo de terminal e iniciar a programação.
Se você gosta mais de editores de texto e Makefiles, em vez de usar uma GUI, pode:
Leve seu projeto para o conselho. Qualquer uso
Codifique em um editor de texto e use ferramentas de linha de comando. Este tutorial fornecerá muitas dicas.
Apreciar
Eclipse , GCC e OpenOCD são uma cadeia de ferramentas. É recomendado pela EMCU-IT e há informações adicionais aqui . Essas páginas também recomendam o uso de um RTOS como o FreeRTOS.org , mas isso depende de você.
E para obter ajuda na compilação dos exemplos do STM32 no Linux, clique aqui . Esse link aponta para um makefile para os exemplos que podem ser chamados com
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
Algumas pequenas correções de código também estão documentadas, mas a maior parte do projeto deve funcionar com
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
Eu tive sucesso com https://github.com/JorgeAparicio/bareCortexM (veja também as postagens no blog). Estou convencido de que posso simplesmente dar um passo ao longo do código ou navegar na memória do dispositivo em vez de inserir instruções de depuração no meu código ou adivinhar o que está acontecendo dentro do chip.
O projeto bareCortexM é um modelo Eclipse para desenvolvimento com a série Cortex M, especialmente STM32, em C ++ sem um sistema operacional. Ele está configurado para usar o openocd, gcc e possui scripts para piscar e depurar em vários destinos, incluindo alguns dos painéis de descoberta. Seguindo as instruções e instalando os plug-ins recomendados do Eclipse, pude usar meu STM32VLDISCOVERY no Ubuntu.
Conforme recomendado, eu combinei o modelo eclipse com a mesma biblioteca de modelos libstm32pp C ++ do mesmo autor para o hardware STM32. A libstm32pp fornece uma substituição surpreendentemente completa do CMSIS e dos drivers STM32 frequentemente criticados por um modelo de programação que permite dizer coisas como PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
e PINB::setLow()
ou PINB::setHigh()
quase todas compiladas em linha devido aos modelos C ++. A configuração é muito boa.
Talvez fosse útil para alguém: meu pequeno artigo (em russo) e um projeto simples . Tudo no linux e sem coisas desnecessárias como eclipse.
As bibliotecas foram retiradas do site da ST, makefile - de um dos muitos exemplos da GPL na Internet.
Aqui está um projeto de modelo pequeno, porém inovador, para o início rápido do uso da placa STM32F0 Discovery no Linux ou em qualquer outro sistema operacional:
https://github.com/dobromyslov/stm32f0-chibios-template
Observe que o projeto usa o ChibiOS - um sistema operacional de código aberto gratuito e de código aberto, para que não seja exatamente uma implementação simples do zero.
Considere a plataforma . Se você estiver familiarizado com a linha de comando, verá que a plataforma facilita consideravelmente o processo de desenvolvimento. pio init
pode ser usado para configurar um projeto. pio run
aproveita o conjunto de ferramentas para compilar. pio run --target upload
envia o código para o dispositivo. O Platformio cuida do download dos componentes, bibliotecas, etc. da cadeia de ferramentas, conforme necessário.