Inhaltsverzeichnis
Dali NodeMCU
Eine custom ESP8266 firmware basierend auf NodeMCU. Es wird ein zusätzlicher DALI-Treiber implementiert.
Funktionen des Dali-Moduls:
Dali.setup(tx_pin, rx_pin) - Definiere Anschluss TX und RX Dali.arc(address_mode, address, brightness) - Helligkeit der Lampe direct einstellen. Address_Mode kann folgende Werte annehmen Dali.BROADCAST (Adresse ist beliebig), Dali.SLAVE (Adresse 0 bis 63) und Dali.GROUP (Adresse 0 bis 15).
Entwicklung der NodeMCU-Firmware
Firmware compilieren
Eine gute Anleitung wie man die NodeMCU Firmware compiliert, ist hier zu finden:
Anstatt der originalen Firmware muss man natürlich die NodeMCU-Dali Variante compilieren: https://github.com/shackspace/nodemcu-firmware-dali
Debugger
Der ESP8266 lässt sich über JTAG programmieren/debuggen. Aktuell wird eine spezielle Version von OpenOCD benötigt:
git clone https://github.com/saeugetier/openocd
cd openocd
./bootstrap.sh
./configure –enable-maintainer-mode –disable-werror –enable-buspirate
make
sudo make install
Damit JTAG auf dem Buspirate funktioniert, muss eine aktuelle Firmware auf der Hardware installiert sein. Weitere Infos siehe:
http://cybermashup.com/2014/05/01/jtag-debugging-made-easy-with-bus-pirate-and-openocd/
http://dangerousprototypes.com/docs/JTAG
Wie man einen ESP8266 an einen Debugger anschließt, sieht man hier: http://visualgdb.com/tutorials/esp8266/
Einstellungen xtensa-lx106-elf-gdb
Datei .gdbinit
file app/.output/eagle/debug/image/eagle.app.v6.out
set remote interrupt-sequence BREAK
target extended-remote localhost:3333
add-symbol-file ../esp-elf-rom/bootrom.elf 0x40000000
Die BOOTROM gibt es hier: https://github.com/jcmvbkbc/esp-elf-rom
Debugger nutzen
Nun lässt sich der Debugger im Projekt verzeichnis von NodeMCU-Dali nutzen.
Befehle:
break <funktion> setzt einen Breakpoint (Hardware-Breakpoint/Software-Breakpoint je nach Verfügbarkeit) backtrace zeigt den stack
monitor halt stoppt die Ausführung des programms monitor reset setzt das Programm zurück
monitor reg zeigt die aktuellen Register an