-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Guida all' installazione della piattaforma STM32 per PlatformIO con supporto per la scheda ArancinoV12
Dopo avere installato sul proprio sistema operativo l'ambiente di sviluppo PlatformIO tramite la documentazione ufficiale da consultare a questo link (si consiglia di usare VSCode):
https://platformio.org/install
https://docs.platformio.org/en/latest/core/installation.html
bisogna integrare manualmente il porting col supporto delle schede Arancino. Al momento é stato fatto su un fork del codice sorgente della singola piattaforma platform-atmelsam di Ivan Kravets.
L’url di riferimento interno del codice sorgente é il seguente:
https://git.smartme.io/smartme.io/arancino/platform-ststm32
Una volta effettuata l’installazione, navigare nella cartella utente di platformIO sul proprio sistema che, in base al sistema operativo, é definita come:
Unix e Unix-like ~/.platformio
o ${HOME}/.platformio
Windows %HOMEPATH%\.platformio
(ad es. C:\Users\myuser.platformio)
creare la sotto-cartella platforms
e clonare al suo interno il codice sorgente con questo comando :
$ git clone https://git.smartme.io/smartme.io/arancino/ide/platform-ststm32.git -b 15.1.0-arancino ststm32
$ cd ${HOME}/.platformio/platforms/ststm32
$ git submodule update --init --recursive
oppure scaricare lo zip dei sorgenti dall’interfaccia web di gitlab ed estrarre il contenuto dell’archivio nella cartella ststm32
.
A questo punto il sistema per lavorare é praticamente pronto… basta cominciare a scrivere il file platformio.ini
per cominciare a creare la build per i nostri dispositivi. Esaminiamo questo template :
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:arancinov12_h743zi]
platform = ststm32
board = arancinov12_h743zi
; board_upload.port = /dev/ttyXXX
; upload_flags =
framework = arduino
lib_archive = no
lib_deps =
smartme-io/[email protected]
Una volta che é stato inizializzato il file, ad esempio in VSCode creando un nuovo progetto scegliendo come board la scheda arancino, dobbiamo aggiungere alcune voci in aggiunta a quelle di default se vogliamo programmare le nostre schede :
upload_protocol
E' principalmente usato un solo protocollo di upload per la piattaforma :
-
dfu-util: richiama il tool di upload da riga di comando
dfu-util
.
board_upload.port
é il target su cui si vuole caricare il firmware ed é in genere un device descriptor del tipo /dev/ttyACMX
. Di default viene rilevata da platformIO e non viene fatto nessun override della stessa.
upload_flags
ci consente di aggiungere delle flags aggiuntive al nostro tool di upload. Non ci sono particolari flag da aggiungere alle board di questa piattaforma.
lib_deps
qui vanno aggiunte le librerie aggiuntive arduino-like e non (a seconda della piattaforma) che servono per la compilazione del codice sorgente.
Al momento, per installare il core arduino-like
della piattaforma Arancino NRF52 bisogna inserire l'url diretto alla tarball nella sezione framework-arduino-stm32-arancino
del file platform.json
:
"framework-arduino-stm32-arancino": {
"type": "framework",
"optional": true,
"owner": "smartme-io",
"version": "~1.0.0"
}
nel campo version
che attualmente ha scolpito il valore 1.0.0
:
http://download.smartme.io/artifactory/framework-arduino-stm32-arancino/1.0.0/framework-arduino-stm32-arancino-1.0.0.tar.bz2
sostituire inoltre, nella sezione tool-dfuutil
:
"tool-dfuutil": {
"type": "uploader",
"optional": true,
"owner": "smartme-io",
"version": "~0.11.0-arancino8"
}
il valore ~0.11.0-arancino8 con il seguente URL di download in base alla propria piattaforma come elencato nei link riportati qui sotto :
Windows
https://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-windows.tar.bz2
Linux
https://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-linux32.tar.bz2
https://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-linux64.tar.bz2
Linux ARM
https://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-arm64.tar.bz2
https://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-arm.tar.bz2
OSX
https://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-osx.tar.bz2
dato che usiamo come nostro host/repository artifactory all'indirizzo:
https://download.smartme.io/artifactory
Ovviamente il campo version
puó essere sostituito con un'altra versione stabile o di sviluppo della piattaforma. Ad esempio, per una release di tipo snapshot, un valore dell'url potrebbe essere simile a questo:
http://download.smartme.io/artifactory/framework-arduino-stm32-arancino/1.1.0-test.1/framework-arduino-stm32-arancino-1.1.0-test.1.tar.bz2
lo stesso concetto modulare verrá applicato per altri tool aggiuntivi e non della piattaforma (se dovesse essere necessario).
Per evitare i passi descritti sopra, viene fornito un template predefinito che effettua l'override dei componenti descritti sopra:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:arancinov12_h743zi]
platform = https://github.com/smartmeio/platform-ststm32.git#15.1.0-arancino
board = arancinov12_h743zi
framework = arduino
lib_archive = no
platform_packages =
smartme-io/framework-arduino-stm32-arancino@http://download.smartme.io/artifactory/framework-arduino-stm32-arancino/1.0.0/framework-arduino-stm32-arancino-1.0.0.tar.bz2
smartme-io/tool-dfuutil@http://download.smartme.io/artifactory/dfu-util/0.11.0-arancino8/dfu-util-0.11.0-arancino8-linux64.tar.bz2
l'utente potrá quindi modificare a proprio piacimento i valori su questa base e poi lanciare la build del firmware, da riga di comando o da VSCode stesso selezionando l'ambiente di build.
Ad esempio per effetuare da riga di comando (CLI), la build del firmware solo per la board arancino, dovrá essere lanciato il comando:
$ pio run -vvv -d <platformio_work_dir> -e arancinov12_h743zi
invece per effettuare l'upload (o il processo combinato di build e upload):
$ pio run -vvv -d <platformio_work_dir> -e arancinov12_h743zi -t upload
La libreria Arancino per la piattaforma puó essere installata in modalitá system-wide nella cartella utente di platformIO con questo comando:
$ pio lib --global install smartme-io/Arancino
da digitare nella propria shell di sistema (Unix o DOS). Di default verrá installata sempre l'ultima versione pubblicata sul registry di platformIO, altrimenti sará possibile specificare la versione con:
$ pio lib --global install smartme-io/Arancino@<VERSION>
Le versioni disponibili sono quelle pubblicate sul "registry" ufficiale delle librerie di platformIO:
https://platformio.org/lib/show/11767/Arancino
L'installazione puó anche essere effettuata tramite repository git remoto:
$ pio lib --global install https://github.com/smartmeio/arancino-library.git
L'installazione punterá sempre al branch predefinito del repository (in questo caso master). É possibile anche specificare il branch per testare una versione di sviluppo:
$ pio lib --global install https://github.com/smartmeio/arancino-library.git#<GIT_BRANCH>
stesso discorso vale per la tag del codice sorgente stesso:
$ pio lib --global install https://github.com/smartmeio/arancino-library.git#<GIT_TAG>