Começarei com o desenvolvimento do ARM (após 2 anos de AVRs) e peguei a placa STM DISCOVERY com o microprocessador stm32f4.
Decidi usar o eclipse + ARM gcc, já que não gosto do limite de código do Keil e não tenho dinheiro para obter uma versão paga.
Seguindo os tutoriais, instalei o eclipse junto com as ferramentas gcc ARM + openocd + make utils etc.
Minha pergunta é sobre o plugin 'packages'. Como todo iniciante, estou confuso quanto ao uso do novo STM HAL ou do SPL mais antigo.
Meu entendimento é que o HAL implementou a abstração em um nível em que pode ser chamado de equivalente do Arduino para arm. O SPL, por outro lado, fornece abstração apenas o suficiente para tornar a codificação mais rápida, mas você ainda precisa lidar com o nível de chip.
Com esse entendimento, gostaria de manter o SPL para entender melhor as coisas, em vez de usar o HAL.
O que eu gostaria de saber é: o uso de pacotes para o STM me força implicitamente a usar o HAL? Se sim, alguém pode me indicar como usar o SPL na minha configuração?
Respostas:
O SPL, como eu vejo, não tem nada a ver com o IDE que você está usando. Você pode simplesmente incluir os módulos relevantes (por exemplo, stmf4xx_dma.c e stmf4xx_dma.h) em seu projeto e usar as funções expostas (e descritas muito bem) nos arquivos .c e .h. Na verdade, eu tenho aprendido sobre o stmf411 nucleo com gcc, openocd e SPL usando apenas o prompt de comando do Windows; sem IDE. Pacotes no eclipse provavelmente o forçariam a usar o HAL (uma vez que dentro da pasta 'Packages' baixada para o eclipse, eu vejo apenas os módulos HAL).
O HAL em si parece muito mais estratificado do que o necessário. Considerando que acessar os registros diretamente se torna cansativo e dificilmente legível. O SPL parece perfeito. clive1, o guru no fórum st.com, também prefere o SPL ao HAL. Aqui está a minha pergunta nesse fórum ... pode ser útil.
Precisa de ajuda com USART no Nucleo stmf411
fonte
Não tenho nenhuma experiência com o HAL, mas usei o SPL várias vezes para salvar meus tempos. Na minha opinião, a comunidade-alvo desses processadores embarcados são 2 grupos: Primeiro grupo que não está interessado em se envolver com as camadas de hardware. Programadores de software, amadores habituais e adoradores de Arduino, framboesa. se você estiver nesse grupo, parece que HAL é uma boa escolha para você. Segundos provenientes da comunidade eletrônica e de hardware, que preferem
para
por ligar o LED e quero saber o que eles estão fazendo basicamente. se você tiver nesse grupo e tiver tempo suficiente para ler o manual de referência e o manual de programação do seu MCU, talvez a programação em nível de registro seja outra opção. mas se você quiser decidir entre apenas a opção acima de 2: o HAL tem um futuro melhor por causa do suporte a ST ', mas o SPL é uma maneira mais fácil de entender para um novo iniciante. Talvez isso possa ajudar http://www.eevblog.com/forum/microcontrollers/stm32-and-their-hal-library/
fonte
Obtenha este IDE: System Workbench for STM32 - é gratuito, baseado no Eclipse e possui arm-gcc e openocd em um pacote.
E sobre bibliotecas: além de SPL e HAL agora existem LL. Cada um tem algumas vantagens e desvantagens, e você deve escolher o que precisa. E pelo que entendi , todos eles têm status experimental para ST. Abaixo das minhas notas para cada um deles:
Breve descrição para minhas notas:
>_<
, todas as funções do TIM + DMA são implementadas para reescrever o registro TIM e nenhuma outra ...)Para um pouco de reabilitação do HAL: ele tem uma grande vantagem para o novato - é apoiado pelo STMCubeMX.
EDITAR:
Eu esqueço o libopencm3 - é uma biblioteca alternativa. Eu não usei.
fonte