Trattiamo ora i passi da seguire per creare la propria immagine Nodemcu con cross compilazione su Linux.
Partiamo sempre dalla immagine Debian descritta in articolo precedente
Ambiente Debian
Seguendo quanto indicato al link
Cross compilazione
come prima operazione prepariamo l’ambiente di cross compilazione.
Colleghiamoci su Debian con la nostra utenza (sviluppo nel nostro caso) e creiamo una cartella esp8266 da riga comando
Installiamo i prerequisiti
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
sudo apt-get install make sudo apt-get install unrar sudo apt-get install autoconf sudo apt-get install automake sudo apt-get install libtool sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install gperf sudo apt-get install flex sudo apt-get install bison sudo apt-get install texinfo sudo apt-get install gawk sudo apt-get install ncurses-dev sudo apt-get install libncurses5-dev sudo apt-get install libexpat-dev sudo apt-get install python sudo apt-get install python-dev sudo apt-get install python-serial sudo apt-get install sed sudo apt-get install git sudo apt-get install unzip sudo apt-get install bash sudo apt-get install help2man sudo apt-get install wget sudo apt-get install bzip2 sudo apt-get install libtool-bin sudo apt-get install srecord sudo apt-get install python2.7-dev |
Procediamo a scaricare il repository esp-open-sdk
|
git clone --recursive https://github.com/pfalcon/esp-open-sdk |
per procedere alla sua compilazione
|
cd esp-open-sdk make STANDALONE=y |& tee make0.log |
Al termine della compilazione abbiamo la seguente indicazione
|
Xtensa toolchain is built, to use it: export PATH=/home/sviluppo/esp8266/esp-open-sdk/xtensa-lx106-elf/bin:$PATH Espressif ESP8266 SDK is installed, its libraries and headers are merged with the toolchain |
Occorre inserire nel PATH quanto segue
|
export PATH=/home/sviluppo/esp8266/esp-open-sdk/xtensa-lx106-elf/bin:$PATH alias xgcc="xtensa-lx106-elf-gcc" |
Possiamo clonare a queto punto il github del firmware Nodemcu. Sempre dalla precedente finestra di riga comandi eseguire
|
sviluppo@debian8:~/esp8266/esp-open-sdk$ cd .. sviluppo@debian8:~/esp8266$ pwd /home/sviluppo/esp8266 sviluppo@debian8:~/esp8266$ |
Una volta posizionati nella cartella esp8266 eseguire
|
git clone https://github.com/nodemcu/nodemcu-firmware |
Al termine posizionarsi in nodemcu-firmware
Prima di procedere alla creazione del nostro primo firmware apportiamo delle modifche sulla configurazione presente in app/include/user_config.h
- Abilitiamo la direttiva per il nostro devkit 0.9 (devkit in nostro possesso)
#define DEVKIT_VERSION_0_9 1 // define this only if you use NodeMCU devkit v0.9
- Modifichiamo la velocità di comunicazione sulla USB (velocità di comunicazione del nostro devkit)
//#define BIT_RATE_DEFAULT BIT_RATE_115200
#define BIT_RATE_DEFAULT BIT_RATE_9600
- Modifichiamo la dimensione della flash a 4M (dimensione a nostra disposizione)
#define FLASH_4M
// #define FLASH_8M
// #define FLASH_16M
//#define FLASH_AUTOSIZE
Salviamo il file e procediamo alla creazione del firmware con il comando
Al termine sotto la cartella bin
|
sviluppo@debian8:~/esp8266/nodemcu-firmware$ ls ./bin 0x00000.bin 0x10000.bin |
troveremo due file: 0x00000.bin e 0x100000.bin. Creiamo un solo file nodemcu_float.bin con il comando
|
srec_cat -output ./bin/nodemcu_float.bin -binary ./bin/0x00000.bin -binary -fill 0xff 0x00000 0x10000 ./bin/0x10000.bin -binary -offset 0x10000 |
Aggiungiamo l’utente sviluppo al gruppo abilitato a scrivere sulla usb
|
sudo adduser $USER dialout |
Debian vede senza necessità di drivers aggiuntivi la porta USB. In presenza di macchina virtuale abilitare la periferica.
Accedere all’sdk scaricato e compilato prima; nella cartella bin copiare i file
- blank.bin
- esp_init_data_default.bin
nella cartella bin dove sono stati generati i file del firmware nodemcu
A questo punto siamo pronti a caricare il firmware sul dispositivo mediante lo strumento esptool. Nel prossimo articolo descriveremo come caricare il firmware sul dispositivo
Caricare il firmware con esptool