Strona internetowa projektu: ARM Mbed-CLI
Programowanie platformy rozwojowej NUCLEO-F401RE, poprzedzające połączenie z chmurą obliczeniową Cayene można wykonać zdalnie w konsoli kompilatora os.mbed.com lub na komputerze lokalnym. Skorzystamy z obu możliwości przy wykonywaniu Ćwiczenia 1 (testu platformy). W tym celu należy przygotować sobie środowisko programistyczne, które pozwoli na zapisanie skompilowanego programu w pamięci układu wbudowanego NUCLEO-F401RE doposażonego w moduły rozszerzeń X-NUCLEO -IDW01M1 (podręcznik użytkownika UM1975), -IKS01A2 i -NFC01A1.Instalacja interfejsu linii poleceń
Instalacja interfejsu linii poleceń (ang. command-line interface) dla ARM Mbed-CLI przebiega w sposób opisany poniżej.Przy założeniu, że w systemie Windows jest już zainstalowany menadżer pakietów pip [1], wpisujemy w linii poleceń systemu (jako administrator):
C:\Users\PC> pip install mbed-cli
W dalszej części pominiemy ścieżkę do bieżącego katalogu, pozostawiając tylko znak '>', sygnalizujący polecenie wpisywane w linii poleceń. Zainstalowany pakiet aktualizujemy poleceniem:
> pip install -U mbed-cli
Sprawdzamy wersję (tutaj 1.9.1):
> mbed --version
W przypadku instalacji Pythona w środowisku Anaconda zamiast linii poleceń systemu używamy linię poleceń Anaconda (Anaconda Command Prompt). Inny sposób instalacji przedstawiono tutaj [2].
W katalogu "C:\Program Files (x86)\GNU Tools Arm Embedded\8 2018-q4-major" (tutaj w wersji 8 2018-q4-major) instalujemy oprogramowanie GNU Tools ARM Embedded (tzw. toolchain GCC ARM) [3]. Więcej informacji na temat instalacji można znajduje się w pliku readme.txt w katalogu C:\Program Files (x86)\GNU Tools ARM Embedded\8 2018-q4-major\share\doc\gcc-arm-none-eabi. Dodajemy ścieżkę użytkownika i/lub systemową do zmiennych środowiskowych systemu Windows:
GCC_ARM_PATH=”C:\Program Files (x86)\GNU Tools Arm Embedded\7 2018-q2-update\bin”
Ścieżka wskazuje na miejsce instalacji binariów - plików wykonywalnych kompilatora. Można też dodać ją za pośrednictwem programu mbed-cli (mbed):
> mbed config -G GCC_ARM_PATH ="C:\Program Files (x86)\GNU Tools Arm Embedded\7 2018-q2-update\bin"
Ścieżkę do wybranego kompilatora ustawia się też w miarę potrzeb w pliku mbed_settings.py.
Do utworzonego katalogu "ARMmbed-Projects" importujemy mbed-os, wpisując w konsoli (więcej tutaj [4]):
> mbed import mbed-os
Ilustracja 1: Linia poleceń Anaconda Prompt w trakcie pobierania mbed-os do katalogu PC |
> pip install prettytable junit_xml future mbed_cloud_sdk intelhex intervaltree mbed_ls mbed_host_tests mbed_greentea fuzzywuzzy pyelftools manifest_tool icetea pycryptodome pyusb
Brakującą bibliotekę instalujemy z repozytorium git:
> pip install git+https://github.com/ARMmbed/manifest-tool.git
Katalog "mbed-os" pobrany wraz z biblioteką "mbed-os.lib" do katalogu w którym wywołujemy polecenie import kopiuje się często do katalogu nowego programu, by pominąć pobieranie tej biblioteki przy następnym tworzeniu programu.
Konfigurując zmienną MBED_OS_DIR wskazującą na katalog "mbed-os" sprawimy, że jedna biblioteka mbed-os będzie wspólna dla wszystkich programów tworzonych w podkatalogach katalogu projektów "./ARMmbed-Projects", np.:
> mbed config -G MBED_OS_DIR "C:\Users\PC\Backup\GrantyDydaktycznePL-2018\ROBOCZY\ARMmbed-Projects\mbed-os"
Usunięcie powyższego przypisania:
> mbed config -G MBED_OS_DIR --unset
Inne przydatne polecenia:
./ARMmbed-Projects> cd mbed-os
./ARMmbed-Projects/mbed-os> mbed update
./ARMmbed-Projects/mbed-os> mbed config root
Globalne ustawienie programowalnej jednostki MCU (Microprocessor Computing Unit) jest przydatne wtedy, gdy korzystamy tylko z jednej platformy rozwojowej (więcej tutaj [5]):
> mbed config -m NUCLEO_F401RE
Importowanie kodów źródłowych z repozytorium github
Będąc w katalogu projektów, importujemy przykładowy projekt z repozytorium oprogramowania (więcej tutaj [5,6]):> cd..
> mbed import https://github.com/ARMmbed/mbed-os-example-blinky
lub
> mbed import -vv mbed-os-example-blinky
Więcej przykładowych projektów znajdziemy na stronie [7], natomiast bardziej rozbudowaną wersję programu testowego typu Blinking LED udostępniono na tym blogu [Ćwiczenie 1].
Kompilacja kodu źródłowego
Kompilację zaimportowanego projektu poprzedza się przejściem do katalogu projektu roboczego. Przełącznik/argument/opcja -t wskazuje na Toolchain, przełącznik -m na jednostkę MCU:> cd mbed-os-example-blinky
> mbed compile -t GCC_ARM -m NUCLEO_F401RE
Z dołączeniem informacji o profilu:
> mbed compile -t GCC_ARM -m NUCLEO_F401RE --profile .\mbed-os/tools/profiles/debug.json -f --sterm
Zaprogramowanie MCU (tzw. flashing) z przełącznikiem: -f
Ponowna kompilacja (czysta) wszystkich źródeł z przełącznikiem: -c
Port COM otwieramy i nasłuchujemy z przełącznikiem: --sterm
Parametry transmisji ustawiamy poleceniami: --baudrate 115200 --port COM4
Testowanie kodu: [8]
O podłączone urządzenie, port i dysk podłączenia MCU zapytamy wywołując:
> mbed detect
O konfigurację zapytamy tak:
> mbed config --list
Przy pierwszej kompilacji należy chwilę odczekać, zanim nie uzyskamy skompilowanych wersji wszystkich bibliotek. Kolejne kompilacje w trakcie rozwoju aplikacji trwają krócej, ze względu na przyrostowe budowanie pliku wynikowego.
Programowanie jednostki MCU z poziomu katalogu projektu podłączonego jako dysk D:
> copy .\BUILD\NUCLEO_F401RE\GCC_ARM\mbed-os-example-blinky.bin D:
lub kompilując z przełącznikiem -f (patrz powyżej).
Uwaga: Jeśli chcemy zachować skompilowany plik binarny w innym miejscu, by np. później szybko zaprogramować platformę jednym z posiadanych programów, to zmieniamy ścieżkę z D: na inną.
Nieco lepszą automatyzację tego procesu uzyskamy tworząc w katalogu roboczym plik wykonywalny, np. o nazwie "run_F401RE.bat", w którym umieszczamy komendy compile i copy. Kompilacja i programowanie MCU odbywa się wtedy przez uruchomienie tego pliku. Poniżej jego zawartość:
mbed compile -t GCC_ARM -m NUCLEO_F401RE
copy .\BUILD\NUCLEO_F401RE\GCC_ARM\mbed-os-example-blinky.bin D:
TIMEOUT /T 20
Eksportowanie projektu do Eclipse:
> mbed export -i eclipse_gcc_arm -m NUCLEO_F401RE
lub dodatkowo z przełącznikiem: --profile mbed-os/tools/profiles/debug.json
Edycja kodu
Konfigurację środowiska programistycznego Eclipse opisano na stronie mbed OS [9].
Plik "main.cpp", zwierający kod źródłowy programu edytujemy w dowolnym notatniku lub edytorze (tzw. IDE - Integrated Development Environment), np. Dev C++. To IDE umożliwia dodanie komendy (np. o nazwie run_F401RE), uruchamiającej wcześniej przygotowany plik "run_F401RE.bat" (Menu/Tools/Configure Tools/Add). Po wskazaniu pliku do uruchomienia i zatwierdzeniu nowego narzędzia można kompilować i zapisywać modyfikacje programu na MCU, klikając Menu/Tools/run_F401RE. Instalację tego środowiska programistycznego poprzedza się zwykle instalacją kompilatorów MinGW lub TDM GCC dostępnych do ściągnięcia na stronach sourceforge.net.
Inną opcją dostępną przy pełnej rejestracji w chmurze ARM Pelion jest instalacja IDE mbed-cloud-sdk-python. ARM Pelion jest dostępne na stronie portal.mbedcloud.com lub z własnego profilu na mbed.com.
Więcej informacji podano w opisie do projektu z przedmiotu "Mechatronika" przygotowanego dla studentów Mechatroniki Wydziału Mechanicznego PŁ dostępnym w jednym z postów tego bloga.
Komentarze
Prześlij komentarz