Índice:

Comece a desenvolver STM32 no Linux: 4 etapas
Comece a desenvolver STM32 no Linux: 4 etapas
Anonim
Image
Image
Baixe tudo que você precisa
Baixe tudo que você precisa

Neste Instructable, vou mostrar como é fácil começar a desenvolver programas STM32 no Linux. Comecei a usar o Linux como minha máquina principal há 2 anos e não me decepcionei. Tudo funciona mais rápido e melhor do que o Windows. Claro que é menos conveniente de vez em quando, mas força você a aprender coisas mais profundamente para que possa usá-lo.

Enfim, neste instrutível, parte de uma série que estou começando aqui E no youtube é sobre como iniciá-la. Por favor, certifique-se de assistir meu vídeo no youtube também, onde eu explico tudo como um segmento e você pode codificar junto comigo.

Nesta série, vou mostrar como você pode desenvolver usando apenas um editor de texto como notepad, SublimeText ou Atom, para que você não precise de nenhum software proprietário ou IDE. Isso é o mais básico possível e é surpreendentemente fácil.

Etapa 1: baixe tudo que você precisa

Você precisa baixar três partes para que tudo funcione:

  • Compilador GCC para ARM
  • Arquivos de firmware STM32
  • Utilitário St-link
  • Projeto de amostra

O compilador é o principal software que compila nosso código C com todos os outros arquivos de biblioteca em linguagem de máquina que nosso controlador stm32 pode entender. Baixe a última versão pré-compilada deste compilador.

A pasta que contém o firmware STM32 é aquela que contém todos os arquivos de inicialização e de núcleo necessários para a operação do processador principal. Estaremos usando a Biblioteca Periférica Padrão que foi superada pela HAL. Eu gosto mais do StPeriphLibrary, já que as empresas que trabalham com esses processadores os usam porque é robusto, antigo e tem suporte. Também é mais robusto. Isso não elimina o trabalho que você tem que fazer para inicializar um periférico ou ligar um LED, mas força você a aprender como esses processadores funcionam. Com isso, você terá mais conhecimento do funcionamento interno e, assim, compreenderá a programação de qualquer tarefa.

O último software para download é o utilitário st-link. Ele é mantido no github e é usado para transferir arquivos binários compilados para o processador usando stlink IC na placa que serve como um programador / depurador SWD / JTAG.

Além disso, forneci uma pasta de projeto de amostra da qual falarei mais tarde e você pode baixá-la. Ele está dentro da primeira pasta VIDEO1.

Etapa 2: Instalando o software

Instalando software
Instalando software
Instalando software
Instalando software

Depois de fazer o download de todos os arquivos, sugiro que os coloque em uma pasta comum, pois todos são usados juntos para o mesmo propósito. Coloquei todas as pastas dentro de uma pasta chamada "Embedded" no meu diretório HOME.

Começaremos com a mais fácil, as bibliotecas STM32. A pasta que você baixou pode ser deixada lá. Apenas certifique-se de pesquisar para ver onde os arquivos apropriados estão armazenados. Portanto, você pode alterar e editar o MakeFile principal para que funcione com sua plataforma.

O segundo mais fácil é o compilador. Você também não precisa fazer nada para isso, mas faremos do compilador uma função acessível globalmente para que você possa chamar o compilador de qualquer pasta, independentemente do caminho. Todos os passos podem ser feitos em terminal ou em gui, mas eu gosto de usar terminal porque quando você ganha experiência fica mais rápido e fácil e encorajo você a usar mais terminal, se tiver medo. Aqui estão as etapas:

  1. Vá para a sua pasta pessoal "/ home / SEU NOME DE USUÁRIO /" ou "~ /" ou digite cd no terminal
  2. abra o arquivo ".bashrc" digitando: nano.bashrc
  3. role para baixo até o final do arquivo e adicione esta linha: export PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
  4. saia salvando: CTRL + X, clique em Y, ENTER
  5. execute o comando: source.bashrc para atualizar as fontes do terminal
  6. verifique se tudo está funcionando digitando: arm-none-eabi-gcc --version, ele deve exibir a versão mais recente do compilador

Para instalar o st-link, extraia o arquivo que você baixou na pasta Embedded. Em seguida, siga estas etapas:

  1. Executar: make
  2. Vá para a pasta "build / Release": cd build / Release
  3. Digite ls e você verá dois executáveis chamados "st-flash" e "st-util"
  4. Mova esses dois para o diretório pai stlink: mv st-flash st-util../../
  5. Você pode, se desejar usar essas duas funções, editar globalmente o arquivo ".bashrc" novamente adicionando:

    exportar PATH = $ PATH: ~ / Embedded / stlink /

Isso é tudo! Você tem tudo que você precisa. Agora vá pegar seu editor de texto favorito. Use apenas um padrão, um mais inteligente como SublimeText ou Atom, é o que eu uso.

Etapa 3: Configurando um Projeto de Amostra

Configurando um Projeto de Amostra
Configurando um Projeto de Amostra

Agora criaremos um projeto de amostra que você pode usar para iniciar cada projeto. É como um modelo com todas as configurações principais já tratadas.

Você pode baixá-lo no meu MEGA, o link está na primeira etapa deste instrutível e abaixo de cada vídeo do youtube meu. Dentro está o arquivo main.c vazio junto com alguns arquivos de inicialização para este processador e o Makefile. Makefile é aquele que diz ao compilador C onde encontrar o compilador arm, como compilar e onde estão todas as bibliotecas. Para obter esses arquivos apropriados para o seu projeto, você pode ir para a pasta da biblioteca STM32 e verificar se há pastas de "projeto" ou "exemplos". Dentro, você verá e copiará estes arquivos: main.c, Makefile e XXX_conf.h, system_XXX.c. Além disso, você precisará do arquivo vinculador stm32_flash.ld, que pode ser encontrado na pasta:

"/ FLASH_Program / TrueSTUDIO / FLASH_Program /" que está dentro da pasta de exemplo ou apenas procure o arquivo.

O Makefile pode ser encontrado online ou copiado da minha pasta, mas você precisará alterar algumas coisas. Vamos dar uma olhada em meu arquivo de criação e o que você pode alterar.

# Caminho para a pasta stlink para enviar o código para a placa

STLINK = ~ / Embedded / stlink # Coloque seus arquivos de origem aqui (*.c) SRCS = main.c system_stm32f4xx.c # Arquivos de origem de bibliotecas #SRCS + = stm32f4xx_rcc.c #SRCS + = stm32f4xx_gpio.c # Binários serão gerados com este nome (.elf,.bin,.hex) PROJ_NAME = test # Coloque o diretório do código da biblioteca STM32F4 aqui, altere YOURUSERNAME para o seu STM_COMMON = / home / matej / Embedded / STM32F4-Discovery_FW_V1.1.0 # Configurações do compilador. Edite apenas CFLAGS para incluir outros arquivos de cabeçalho. CC = arm-none-eabi-gcc OBJCOPY = arm-none-eabi-objcopy # Sinalizadores do compilador CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS + = -DUSE_STDPERIPH_DRIVER CFLAGS + = -mlittle-endian -mthumb -mcpu = cortex-m4 -mthumb-interwork CFLAGS + = -mfloat-abi = duro -mfpu = fpv4-sp-d16 CFLAGS + = -I. # Incluir arquivos das bibliotecas STM CFLAGS + = -I $ (STM_COMMON) / Bibliotecas / CMSIS / Incluir CFLAGS + = -I $ (STM_COMMON) / Bibliotecas / CMSIS / ST / STM32F4xx / Incluir CFLAGS + = -I $ (STM_COMMON) / Bibliotecas / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilitários / STM32F4-Discovery # adicionar arquivo de inicialização para construir SRCS + = $ (STM_COMMON) / Bibliotecas / CMSIS / ST / STM32F4xx / Source / Templates / Truestm s OBJS = $ (SRCS:.c =.o) vpath%.c $ (STM_COMMON) / Libraries / STM32F4xx_StdPeriph_Driver / src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME). $ (SRCS) $ (CC) $ (CFLAGS) $ ^ -o $ @ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binário $ (PROJ_NAME). $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash o STM32F4 burn: proj $ (STLINK) / st-flash write $ (PROJ_NAME).bin 0x80000000

  • Você pode editar a primeira linha para alterar o caminho para a pasta do utilitário stlink
  • Você pode alterar a linha para o destino de sua pasta com bibliotecas e SEU NOME DE USUÁRIO

    STM_COMMON = / home / SEU NOME DE USUÁRIO / Embedded / STM32F4-Discovery_FW_V1.1.0

  • Verifique também a seção onde todas as bibliotecas estão vinculadas. Isso pode mudar dependendo da plataforma que você está usando, portanto, verifique as alterações na árvore de arquivos. Tudo o mais que inclui quaisquer caminhos para certos arquivos, como a próxima linha com o arquivo de inicialização, pode ser alterado.

Depois de editar todas essas coisas dentro do Makefile, você pode verificar se ele está funcionando abrindo um terminal dentro do seu diretório e digitando: make. Se ele compilar tudo sem problemas, você está pronto. Caso contrário, verifique os erros do compilador e edite o Makefile.

Além disso, quando uso o Atom, coloco duas partes do código lado a lado. Normalmente main.c e Makefile à esquerda, pois você só precisa editar o Makefile uma vez e as bibliotecas à direita. Você pode ver na imagem que abri a pasta que contém os arquivos.c e.h para cada biblioteca. Você pode ver tudo isso nos vídeos.

Etapa 4: Concluído

Finalizado!
Finalizado!

Agora que você configurou o Makefile e o compilador está funcionando, pode usar esta pasta para todos os projetos como um modelo, portanto, certifique-se de salvar uma cópia desta pasta.

Além disso, você pode testar os programas st-flash e st-info conectando sua placa de desenvolvimento e digitando no terminal:

st-info --probe

Você pode ver a plataforma que o software stlink reconhece e a família IC junto com o cache e outras coisas. Você pode digitar:

st-info

para ver todos os parâmetros disponíveis.

Agora você pode começar a programar. No próximo instrutível e vídeo, vou mostrar o básico de GPIO e relógios. Esses dois são o básico para todo o resto, já que quase tudo com que a placa interage é sobre GPIO e tudo funciona no clock e você verá o padrão para programar esses processadores.

Até então, obrigado por conferir meu instrutível e meu vídeo do youtube, se você ainda não tiver feito isso.

Recomendado: