CPSB
Cyfrowe przetwarzanie sygnałów biologicznych
Prowadzący: mgr inż. Adrian Byszuk
Kontakt:
email: A.Byszuk@elka.pw.edu.pl
Pokój: 230 (jest dzwonek!)
Materiały do ćwiczeń:
- Podstawy systemu Linux:
- Podstawowe peryferia mikrokontrolerów STM32:
- Podstawowe peryferia mikrokontrolerów STM32:
- BioSig - aplikacja do wizualizacji sygnałów:
STM32F4Discovery - konfiguracja środowiska:
Niniejszy opis dotyczy konfiguracji środowiska opartego o narzędzia: eclipse, openOCD oraz toolchain GNU toolchain from ARM Cortex-M processors. Aby poprawnie skonfigurować powyższe narzędzia należy:
-
Instalacja Eclipse
- Pobrać i zainstalować środowisko Eclipse (w przykładzie użyto wersji Kepler 4.3)
(WAŻNE: nie używamy wersji dostępnej przez Software Center, należy ściągnąć ze strony eclipse.org i wypakować do katalogu domowego)
- W razie potrzeby zainstalować Java Development Kit
- Zainstalować plugin CDT (wsparcie języka C w środowisku eclipse) - Help/Install new software (http://download.eclipse.org/tools/cdt/releases/kepler) Main+Optional Features
- Zainstalować plugin dla mikrokontrolerów ARM (ściągnąć z http://sourceforge.net/projects/gnuarmeclipse/files/latest/download, następnie Help/Install New Software -> Add -> Archive)
-
Instalacja toolchaina
- Pobrać toolchain dla mikrokontrolerów ARM (np. https://launchpad.net/gcc-arm-embedded) - dostępne są pliki binarne bez potrzeby instalacji
- Dla systemów 64-bitowych niezbędne jest zainstalowanie pakietów: libc6-i386 oraz lib32ncurses5
-
Instalacja debuggera
-
Zainstalować pakiet openocd z repozytorium: "apt-get install openocd"
- W katalogu /etc/udev/rules.d/ stworzyć plik stlink.rules z zawartością (wymagane uprawnienia roota):
# stlink v2
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="664", GROUP="plugdev"
- Użytkownik musi być dodany do grupy plugdev, aby móc uruchomić openocd
-
Utworzenie projektu
- Otworzyć środowisko Eclipse, wybrać katalog roboczy
- File/New/Project.../C Project -> STM32F4xx C/C++ Project w polu Toolchain: Cross ARM GCC
- W następnym oknie ustawić parametry mikrokontrolera zgodnie z dokumentacją do płytki Discovery. Dodatkowo ustawić:
- Content: empty
- Use system calls: freestanding
- Trace output: none
- Zaznaczyć opcje: Check some warnings, Use -Og on debug, Use newlib nano, Exclude unused
- W ostatnim oknie ustawić Toolchain name na "GNU Tools for ARM Embedded..." i podać ścieżkę do katalogu /bin toolchaina
- Utworzony nowy projekt zawiera od razu predefiniowane środowisko wykorzystujące bibliotekę STM32 Cube. Biblioteka ta jest jednak znacznie zubożoną wersją starej biblioteki StdPeriph o znacznie mniejszej funkcjonalności("wersja dla idiotów"). Proponuję nadal korzystać ze starej wersji biblioteki (tak jak w przykładach).
- Aby korzystać z lepszej wersji biblioteki należy wykonać wszystkie poniższe kroki.
- W projekcie usunąć katalog ldscripts i pliki _initialize_hardware.c, _write.c, stm32f4_hal_conf.h
- Dodać do projektu pliki źródłowe i nagłówki (template)
- We właściwościach projektu C/C++ General/Paths and Symbols zakładka includes dodać ścieżki do bibliotek dla języka C:
- z biblioteki ST
CMSIS/Include
CMSIS/Device/ST/STM32F4xx/Include
STM32Fxxx_StdPeriph_Driver/inc/
- Dodać (skopiować lub dolinkować) niezbędne pliki źródeł potrzebne w projekcie (katalog STM32Fxxx_StdPeriph_Driver/src/)
- We właściwościach wskazać skrypt linkera w opcji C/C++ Build/Settings/Tool Settings/Cross ARM C++ Linker/Tool settings. Usunąć pozostałe wpisy. Odznaczyć opcję "Do not use standard files"
- Dodać zmienną USE_STDPERIPH_DRIVER = 1, usunąć zmienne USE_FULL_ASSERT, USE_HAL_DRIVER we właściwościach projektu C/C++ General/Path and Symbols/Symbols dla języka GNU C
- C/C++ Build/Settings: w zakładce Tool settings
-
Uruchamianie
- Opcja Debug As/Debug Configurations
- Dodać nową konfigurację dla GDB OpenOCD Debugging
- Zakładka Main: w polu "C/C++ application" podać ścieżkę do skompilowanego pliku binarnego z rozszerzeniem ELF. (najłatwiej klikając na "Search Project...")
- Zakładka Debugger: podać ścieżkę do programu OpenOCD: /usr/bin/openocd. W polu "Config options" trzeba wskazać opcjami ścieżkę do pliku konfiguracyjnego:
"-f /usr/share/openocd/scripts/board/stm32f4discovery.cfg"
- Zakładka Startup: w Run/Restart Commands zaznaczyć Set breakpoint at: main. Odznaczyć Pre-Run Reset
- Kliknąć Debug
Powyższy opis został przygotowany dla systemu operacyjnego Ubuntu 14.04 64-bit
STM32F4Discovery - przykłady:
Przydatne linki:
- virtualbox.org - Narzędzie do tworzenia maszyn wirtualnych. Przydatne jeśli nie chcemy instalować dystrybucji Linuksa na dysku.
- STM32F4Discovery - Dokumentacja płytki STM32F4Discovery. Warte uwagi: UM1472 i schematy.
- STM32 Embedded Software - Katalog firmware dostarczanego przez producenta i dostawców.
- STM32F407VG - Materiały i dokumentacja do MCU na płytkach Discovery. Najbardziej przydatny jest Reference Manual.
Tutaj są równiez odnośniki do STM32 Peripheral Library. Biblioteka ta jest niezbędna przy pracach na laboratorium i w projekcie; archiwum zawiera również dokumentację i *liczne* przykłady.