STM32F4 Discovery - iurobpn/pvtestes GitHub Wiki
Instalação de pacotes nescessários a programação da stm32f4 discovery kit
1. Informações Gerais
Este guia de instalação se baseia no guia do MCU GNU Eclipse, que está em constante evolução. Qualquer problema, volte ao guia original do MCU GNU eclipse.
3 príncpais pacotes tem de ser instalados: * GNU GCC toolchain: coleção GNU de compiladores, que inclui compilador C (gcc) e debuger (gdb); * Openocd: Open on chip debugger, software de debug e gravação aberto para várias plataformas; * Eclipse com plugin "GNU MCU Eclipse": É opcional, mas facilita tanto a gravação de firmware quanto o debug.
Estes guia tenta guiar a instalação de modo simples e a evitar erros comuns, mas há outras maneiras de instalação e configurão.
2. Instalação e configuração do gcc arm toolchain.
Instale o pacote build-essential, e se for instalar o eclipse, instale o pacote java.
$ sudo apt update
$ sudo apt install build-essential default-jre
As instrucções de instalação do arm toolchain: https://gnu-mcu-eclipse.github.io/toolchain/arm/install/. Siga a seção GNU/Linux.
O download do arm-gcc toolchain pode ser encontrado em: https://github.com/gnu-mcu-eclipse/arm-none-eabi-gcc/releases
Escolher versão linux 64 bits, a atual é a centos64, mas pode ser debian64 ou ubuntu64, ou outra no futuro. Supondo q o arquivo baixado seja: gnu-mcu-eclipse-arm-none-eabi-gcc-7.2.1-1.1-20180401-0515-centos64.tgz, a pasta de instalação será:
$HOME/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/7.2.1-1.1-20180401-0515/
A pasta de binários será: $HOME/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/7.2.1-1.1-20180401-0515/bin/
$HOME/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/7.2.1-1.1-20180401-0515/bin/
Instalação
$ mkdir -p $HOME/opt
$ cd $HOME/opt
$ tar xf ~/Downloads/gnu-mcu-eclipse-arm-none-eabi-gcc-7.2.1-1.1-20180401-0515-centos64.tgz
$ chmod -R -w $HOME/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/7.2.1-1.1-20180401-0515/
NÃO adicione o toolchain ao caminho(path) do sistema!
Teste a instalção do toolchain
Execute e verifique se a saida é similar.
$ $HOME/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/7.2.1-1.1-20180401-0515/bin/arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU MCU Eclipse ARM Embedded GCC, 64-bits) 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3. Instalação do openocd
O link de instalação original do openocd é https://gnu-mcu-eclipse.github.io/openocd/install/. Siga a seção gnu/linux. O download pode ser feito em https://github.com/gnu-mcu-eclipse/openocd/releases. Escolher a versão linux 64 bits, a atual é a centos64, mas poderá ser debian64 ou ubuntu64, ou outra no futuro.
Supondo q o arquivo baixado seja: gnu-mcu-eclipse-openocd-0.10.0-7-20180123-1217-centos64.tgz, a pasta de instalação será:
$HOME/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217
E a pasta de binários será:
$HOME/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/bin/
Instalação
Execute:
$ cd ~/opt/
$ tar xf ~/Downloads/gnu-mcu-eclipse-openocd-0.10.0-7-20180123-1217-centos64.tgz
$ chmod -R -w $HOME/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/
Teste o funcionamento da instalação
Execute o código abaixo e verifique se a saida é similar.
$ $HOME/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/bin/openocd --version
GNU MCU Eclipse 64-bits Open On-Chip Debugger 0.10.0+dev-00404-g20463c28 (2018-01-23-12:24)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Adicionar regras udev para reconhecimento do openocd
Execute o código abaixo e reinicie.
$ sudo cp /home/gagarin/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/contrib/60-openocd.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
Verificando permissões da porta serial
Se tiver erro de acesso ao USB, adicione seu usuario ao grupo da porta do dispositivo e reinicie. Para descobrir a porta e o grupo:
$ ll /dev/tty*
Pegue a porta de nome diferente, provavelmente a ttyACM0 ou ttyUSB0, e o grupo deve ser o nome após o root:
crw-rw-rw- 1 root dialout 166, 0 Mai 10 13:36 /dev/ttyACM0
no caso acima, o grupo é o dialout. Para alterar o grupo, digite:
$ gedit /etc/group
e adicione ao final da linha o nome de seu usuário ao final de linha, sem espaço e depois do dois pontos, por exemplo:
dialout:x:20:nome_usuario
Testando instalação:
$ ${HOME}/opt/gnu-mcu-eclipse/openocd/0.8.0-201501181257/bin/openocd \
-f board/stm32f4discovery.cfg
GNU MCU Eclipse 64-bits Open On-Chip Debugger 0.8.0-00036-gb7535dd (2015-01-18-12:57)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v14 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.905638
Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
^C
Ajuste o caminho do openocd no eclipse, vá ao menu do eclipse Window -> Preferences -> MCU -> Global OpenOCD Path
4. Instalação e Configuração do Eclipse
Faça o download do eclipse com o plugin GNU MCU Ecipse já instalados:
https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases/.
Extraia a versão linux64 para:
bash $HOME/opt/eclipse/
É recomendavel seguir esta seção para facilitar o uso do eclipse:https://gnu-mcu-eclipse.github.io/eclipse/workspace/preferences/
Criando o projeto do provant-software
Vá no menu: file → new → project. Selecione "Makefile project with existing code".
Configure o nome do projeto e a pasta do projeto como
caminho\_ate\_o\_codigo/provante-software/
No caso deste tutorial:
$HOME/git/provant-software/
Selecione "Cross ARM gcc" e finalize a criação do projeto.
Selecione o projeto na aba "Project Explorer"(aba mais a esquerda) e vá em: file → Properties. Clique em c/c++ Build. Clique em "workspace" e selecione a pasta:
io-board/stm32f4/app/remote-controlled-flight
como "Build directory". Clique em "Apply". Esta etapa mostra ao eclipse onde esta o makefile do projeto.
Em seguida, expanda c/c++ build, e clique em settings. Em "Toolchain path:" coloque o local de instalação do toolchain.
Selecione o projeto em "Project Explorer" e clique no menu Project → Build Project para compilar o projeto.
Configurando o Eclipse para programmar e debugar a discovery stm32f4 usando o openocd
Vá no menu Run → Debug Configurations. Selecione "GDB OpenOCD Debugging", e clique no botão new launch configuration. Selecione app/remote-controlled-flight/bin/prj-remote-controlled-flight.elf em "C/C++ Application" na aba Main.
Na aba Debugger, prenncha 'Config options' com:
-f board/stm32f4discovery.cfg
Na opção 'Commands', coloque:
set mem inaccessible-by-default off
set remote hardware-breakpoint-limit 6
set remote hardware-watchpoint-limit 4
Na aba 'Startup', preencha com:
monitor halt
Clique em apply e close. Esta configuração de debug lhe permitirá debugar e programar a discovery.