Programowanie STM32 z Raspberry - MetiumIoT/Metium GitHub Wiki
Instalacja
Cała instalacja powinna odbywać się przy pomocy skryptu w repozytorium STM_geofon/_tools/openocd_install.sh
Skrypt uruchamiany jako root, pobiera i kompiluje openOCD, tworzy plik do konfiguracji oraz skrypt flash.sh
, który służy do programowania stma podłączonego do rpi z poziomu Eclipse przez SSH.
Programowanie STM32 z RaspberryPi
Podłączenie przetwornika do RPi
Wgranie z pliku
Przykład użycia (wgranie wsadu z pliku /root/test.elf)
openocd -f /root/code/min_openocd_config.cfg -c "program /root/test.elf" -c reset -c shutdown
OpenOCD
Instalacja OpenOCD na RaspberryPi
Uruchamiane jako root:
apt update
apt install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev telnet autotools-dev automake
git clone git://git.code.sf.net/p/openocd/code
cd code
./bootstrap
./configure --enable-sysfsgpio --enable-bcm2835gpio
make
make install
cd /root
touch openocd_install.sh
nano openocd_install.sh
<wkleić zawartość. Do łatwiejszego kopiowania, po wybraniu pliku na repozytorium, można wybrać opcję wyświetlania *raw*>
lub pobrać ten plik z repozytorium i poprzez scp przesłać go do tej lokalizacji.
Następnie:
cd /root
sh openocd_install.sh
Po instalacji pojawi się folder:
cd /root/openocd_code
W którym są skrypty flash-prod.sh
Konfiguracja
Plik /root/openocd-code/min_openocd_config.cfg
interface sysfsgpio
# minimal swd setup
sysfsgpio_swdio_num 24
sysfsgpio_swclk_num 25
sysfsgpio_srst_num 23
transport select swd
reset_config srst_only
reset_config srst_nogate
reset_config connect_assert_srst
source [find target/stm32f3x.cfg]
adapter_nsrst_delay 100
adapter_nsrst_assert_width 100
init
targets
reset halt
Źródła
https://github.com/google/stm32_bare_lib
Wgrywanie firmware do stm32 przy pomocy zdeploy'owanych configów
Sprawdzenie instalacji openOCD
Sprawdzenie poprawności instalacji openocd to wykonanie komendy:
root@wibrotest:~# openocd -v
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
root@wibrotest:~#
Każdy inny komunikat świadczy o niepoprawnej instalacji, lub braku openocd.
Jak zainstalować openOCD
W celu instalacji openocd użyjemy skryptu openocd_install.sh. Skrypt ten instaluje openocd z repozytorium DietPi (apt -y install openocd) i przygotowuje odpowiednie środowisko do pobierania i wgrywania firmware STM z sieci.
Pobranie firmware (źródło ELF)
Firmware dostępny jest z dwóch źródeł:
Dostępne są następujące odmiany firmware:
3ch-1024-10s-500k.elf
3ch-1024-10s.elf
3ch-1024-1s-500k.elf
3ch-1024-2s-500k.elf
ch1-1024-10s.elf
ch1-1024-1s.elf
ch1-512-2s.elf
ch2-1024-1s.elf
ch3-1024-1s.elf
Komenda wykonawcza
Wgranie nowego firmware wykonujemy, jak w przykładzie poniżej:
cd /root/openocd-code
sh flash-dev.sh ch1-1024-1s-500k.elf
Dla wersji deweloperskiej mamy skrypt: flash-dev.sh , a dla wersji produkcyjnej: flash-prod.sh .
Sprawdzenie wersji wgranego firmware
W katalogu: /root/openocd-code jest "ukryty" podkatalog: ./flash_history a w nim pliki z datą i nazwą wgrywanego firmware.
UWAGA! Dotyczy to tego konkretnego RPi i operacji programowania na nim wykonanych. Jeśli płytka jest "nowa" to najlepiej wgrać wymagany firmware.