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.