STM32F3DISCOVERY: início rápido com Mac OS X

Ferramentas necessárias:

  • gcc, binutils
  • gdb
  • utilitário stlink

Fluxo de Trabalho

O desenvolvimento e a depuração de software incorporado incluem várias etapas. A primeira ferramenta de que você certamente precisará é um compilador. O compilador traduz o código-fonte escrito em C / C ++ ou qualquer outra linguagem de programação em códigos que uma CPU possa entender. No caso do STM32, que inclui um núcleo ARM Cortex-M3, o compilador mais conveniente e confiável é o GCC.

GCC, Binutils, GDB

Felizmente, quase todas as ferramentas de que precisamos (a saber, GCC, GDB e binutils) estão disponíveis via MacPorts. Tudo o que precisamos fazer é:
sudo port install arm-none-eabi-gcc arm-none-eabi-binutils
Depois que o port terminar de baixar e descompactá-los, um monte de ferramentas ‘arm-none-eabi-‘ seria acessível via comando linha.

Instalando o utilitário stlink

A última coisa que precisamos para começar a depurar um chip é um adaptador de depurador. Este tipo de ferramenta é usado como uma interface entre o depurador GDB e o hardware MCU. Existem 2 possibilidades: stlink e OpenOCD. OOCD é uma ferramenta mais complexa, que suporta muitos adaptadores diferentes, como FT2232, STLink, Altera, J-Link, R-Link e outros. Mas só precisamos de um suporte STLink, então podemos ir por outro caminho, que é um pouco mais simples, e instalar o utilitário stlink.

sudo port install libusb automake autoconf pkgconfig
aclocal
--force -I /opt/local/share/aclocal
git clone https
://github.com/texane/stlink.git stlink-utility
cd stlink
-utility
./autogen.sh
./configure
make

Agora copie os binários st-flash e st-util em outro lugar (provavelmente vou conseguir escrever um Portfile algum dia para torná-lo disponível via MacPorts também).

Depurar

Execute st-util (executá-lo sem parâmetros é suficiente em nosso caso). Deve produzir algo assim:

2013-02-12T23:18:04 INFO src/stlink-common.c: Loading device parameters…. 
2013-02-12T23:18:04 INFO src/stlink-common.c: Device connected is: F3 device, id 0x10036422
2013-02-12T23:18:04 INFO src/stlink-common.c: SRAM size: 0xa000 bytes (40 KiB), Flash: 0x40000 bytes (256 KiB) in pages of 2048 bytes Chip ID is 00000422, Core ID is 2ba01477.
KARL
- should read back as 0x03, not 60 02 00 00
init watchpoints

Listening at *:4242

Agora inicie o GDB com destino remoto:

arm-none-eabi-gdb <compiled ELF firmware file path>
(gdb) tar extended-remote :4242
(gdb) load
Have fun using GDB CLI commands

Além disso, você pode usar qualquer outro GDB frontal que desejar: por exemplo, o Eclipse tem um, então ele pode ser configurado para depurar no chip.