Archivi tag: linguaggio C

ESP32 – IDF Sdk con IDE Eclipse

Dopo aver configurato l’ambiente di sviluppo IDF nell’articolo precedente

ESP32 – IDF Sdk

vediamo ora come utilizzare Eclipe come IDE per lo sviluppo del codice. Le istruzioni sono disponibili al link

Configurazione Eclipse

Scaricare Eclipse per C/C++ per Linux

Download Eclipse

Scompattare il file e spostarlo su /opt/

Eseguire ecplise

Impostare il workspace per eclipse

eclipse-workspaceUna volta aperto l’IDE selezionare File–>Import–>C/C++- -> Existing Code as Makefile Project

eclipse-importPremere Next; alla schermata successiva selezionare la cartella contenente il Makefile di un progetto di esempio ne campo “Existing Code Location” e scegliere come “Toolchain for indexer settings” CrossGcc come ad esempio indicato di seguito

eclipse-import2Una volta caricato il progetto con il tasto destro sul nome del progetto si sceglie l’opzione properties

eclipse-project-propertiesSotto C/C++ Build–>Envinronment aggiungere la variabile

eclipse-batchAggiungere sempre nella medesima sezione la variabile IDF_PATH che punta all’SDK IDF scaricato

eclipse-idf-pathEditare la variabile PATH ed aggiungere il path ai bin del cross compilatore /home/sviluppo/Esp32/espressif/esp/xtensa-esp32-elf/bin

eclipse-pathAccedere sempre in “C/C++ General”–> “Preprocessor Include Paths”; scelgliere il tab Providers e cliccare su “CDT Cross GCC Built-in Compiler Settings”

eclipse-cross-cdtSostituire ${COMMAND}

eclipse-cross-cdt1con xtensa-esp32-elf-gcc

eclipse-cross-cdt2Accedere ora nei providers e scegliere “CDT GCC Build Output Parser”

eclipse-cross-cdt3ed inserire all’inizio del Compiler command pattern xtensa-esp32-elf-

eclipse-cross-cdt4Salvare le configurazioni.

Le impostazioni del progetto vanno fatte sempre da make menuconfig nella shell unix. Accedere nella shell ed impostare come GPIO del led da spegnere ed accendere il valore 2; questo perché nel nostro caso la scheda è una doit il cui design è illustrato nel presente documento

SchematicsforESP32

Accedere a Example configuration

blink-configurationed impostare il valore del gpio a 2

blink-gpioSalvare la configurazione. Riandare su Eclipse e procedere alla pulizia con

eclipse-clean-blinke successiva compilazione con Project–> Build

eclipse-build-blinkPer eseguire il flash del firmware da eclipse, selezionare il progetto e con il tasto destro scegliere Build Targets -> Create…

eclipse-create-targetInserire nel campo target il valore flash, lasciando di default tutto il resto

eclipse-create-target-flashA questo punto si procede al caricamento dell’immagine cliccando due volte sulla nuova voce flash all’interno dei target del progetto

eclipse-run-flash Le impostazioni per eseguire il flash devono essere impostate con make menuconfig, come visto nell’articolo precedente

ESP32 – Idf Sdk

 

ESP32 – IDF Sdk

In questo articolo si descrive come impostare l’ambiente di sviluppo per ESP32 della Espressif.

Dal link alle risorse per il soc

https://www.espressif.com/en/products/hardware/esp32/resources

si accede alla guida per la compilazione del firmware sulle piattaforme Windows, OSX e Linux

http://esp-idf.readthedocs.io/en/latest/get-started/index.html

Le operazioni elencate di seguito sono eseguite sempre su Linux Debian 9, configurato come già descritto in precedenza

MicroPython – Python su dispositivi embedded

Si utilizza l’IDF del github.  Su Debian 9 con l’utenza utilizzata per collegarsi sul sistema si crea sotto la Home dell’utente la cartella Esp32 ed all’interno la cartella espressif

Installare i prerequisiti

Scaricare il cross compilatore

Creare la cartella esp e dall’interno scompattare il toolchain

Aggiungere al PATH la cartella bin del cross compilatore

Aggiungere al gruppo dialout, l’utenza utilizzata per le operazioni

Clonare il repository IDF dal $HOME/Esp32/espressif

Aggiungere la variabile di ambiente IDF_PATH

Creare la cartella dei progetti sotto $HOME/Esp32/espressif e copiare un esempio dalla cartella dell’IDF

Eseguire la configurazione

Accedere a Serial flasher config–> ed impostare i parametri della connessione; nel nostro caso lasciamo il default

idf-serial_flasher

Salvare la configurazione e compilare il firmware

Per caricare il firmware sulla scheda eseguire

Per caricare solo la applicazione eseguire

mentre per compilare solo la applicazione eseguire

Per eseguire il monitor del programma eseguire

hello_world

Gli altri esempi disponibili con sdk

https://github.com/espressif/esp-idf/tree/f586f5e/examples

Al seguente link invece sono presenti i riferimenti delle API dell’IDF

http://esp-idf.readthedocs.io/en/latest/api-reference/index.html

Si può anche generare la documentazione dai sorgenti del github. Posizionarsi in ~/Esp32/espressif/esp-idf/docs/en

Installare i prerequisiti

Generare i documenti in formato html

make-htmlLa documentazione è generata in _build/html.

Nel prossimo articolo imposteremo come IDE per la compilazione dei programmi Eclipe

ESP32 – IDF SDK con IDE Eclipse

Progetto in C per lettura sensore temperatura Beaglebone

Dopo aver visto come impostare la cross compilazione e collegato un sensore DHT11  di temperatura/umidità alla scheda

Debug Remoto Beaglebone

Sensori con Beaglebone

Lettura temperatura ed umidità in python

vediamo ora come creare un progetto in C, partendo dai sorgenti C  per la lettura del sensore dht di Adafruit

Libreria sensori DHT Python Adafruit

Utilizzando Eclipse,  si crea un progetto per la lettura del nostro sensore. Si richiamano le funzioni presenti nel codice C della libreria Adafruit. Questi sorgenti sono importati nel progetto Eclipse

progetto Dht sensor

e mediante il codice di esempio C dhtSensor.c, che contiene il main del programma C, viene richiamata la lettura del sensore dai sorgenti Adafruit in modo analogo a quanto visto per Python.

Eseguendo

viene mostrato l’help dell’eseguibile.

 Per leggere il sensore DHT11 sul pin P8_11 si esegue

il cui risultato è mostrato di seguito

lettura Sensore CDi seguito il progetto Eclipse con i sorgenti utilizzati

Progetto dhtSensor Eclipse

Debug remoto sul Beaglebone

Nel precedente articolo abbiamo preparato l’ambiente con Eclipse per la cross compilazione per il Beaglebone

Cross compilazione per Beaglebone

Procediamo ora a configurare Eclipse ed il Beaglebone per eseguire in debug del codice direttamente sul Beaglebone.

 Sul Beaglebone installare il gdbserver

 Sul sistema Debian con Eclipse installare gdb-multiarch

 Da Eclipse accedere a Run->Debug Configurations

debug configurationsCliccare due volte su C++ Remote Application per impostare i parametri

configurazione debug remotoAlla finestra successiva creare una nuova connessione di tipo ssh con il tasto New

nuova connessione Inserire i parametri per la connessione

parametri connessioneImpostare la destinazione remota del file e la gestione dell’esecuzione; con il tasto browse si sceglie dove copiare il file e con il campo “Commands to execute before application” si danno i permessi di esecuzione al file

cartelle remoteNel nostro caso si crea una cartella esempi sotto /root/ sul Beaglebone in cui eseguire il debug remoto

impostazioni main debug

Impostare il multarch debugger nel tab Debugger e gli altri parametri di startup e gdb command line

impostazioni debugger debugImpostare la porta del server di debug remoto installato sul Beaglebone nel tab GdbServer Settings

impostazioni debug serverCreare il file .gdbinit nella cartella del progetto con il comando

touch debugPer avviare il debug eseguire la configurazione prima impostata

esecuzione debugEclipse si connette con il Beaglebone ed esegue il debug remoto con l’apertura della Debug Perspective

debug perspective

Cross compilazione per Beaglebone

Nell’articolo sull’ambiente Debian abbiamo preparato il sistema per lo sviluppo per ambienti embedded

Sistema di sviluppo su Debian

Nell’articolo sulla compilazione dell’immagine dell’Orange PI PC abbiamo installato i tool di cross complilazione per l’ambiente armhf

Creazione immagine Armbian per Orange PI PC

Partendo dalla immagine pulita dell’ambiente di sviluppo su Debian riportiamo i passi da eseguire per installare l’ambiente di cross compilazione. Ci si collega sul deskop Debian come sviluppo/password.

Come operazione preliminare installiamo il cross compilatore in Debian

https://wiki.debian.org/CrossToolchains

Creare il file crosstools.list in /etc/apt/sources.list.d

ed inseriamo la voce

Salviamo il file ed aggiungiamo la chiave del repository embedian.org

Installiamo i seguenti pacchetti e l’architettura armhf

Installiamo a questo punto l’ide Eclipse per cpp. Scarichiamo l’ide per linux a 64bit

Eclipse IDE

 Scompattare il pacchetto eclipse sotto /home/sviluppo.

Installare il jre java

 Aggiungere alla fine

Eseguire

 Eseguire Eclipse dalla cartella eclipse per avviare l’IDE

Avvio EclipseCome primo esempio creiamo un semplice programma in C per il Beaglebone.

Creare un nuovo progetto in C, inserendo i dati elencati di seguito

nuovo progettoSelezionare ambedue le configurazioni

project configurationInserire il prefisso per la cross compilazione ed il percorso del compilatore

crosscompilerprefixPremere Finish. Aggiungere al progetto un file sorgente in C

source file cInserire il semplice codice di esempio

Procedere alla compilazione selezionando il progetto con il tasto destro del mouse e scegliendo Build Project

build project

Copiare il file generato sul Beaglebone. Si puo usare scp o ftp. Dare i permessi di esecuzione al file compilato ed eseguirlo

Il risultato è ovviamente il testo inserito nel codice

esecuzione esempio