ETHERSEX (im Einsatz)
AVR-Net-IO mit Home-Assistant da: [link]
mein repo mit mqtt patches + home-assistant modul + reduzierter ram verbauch + TCP abort callback patch: github.com/ferbar/ethersex
WICHTIG: nicht vergessen die fuses zu setzen. Siehe https://www.ethersex.de/index.php/Flashing_(Deutsch)
lfuse:w:0xCF:m -U hfuse:w:0xDC:m
AVRNETIO (Hat leider nicht funktioniert, nicht im Einsatz)
Pollin AVR-NET-IO mit Arduino. zum Flashen verwende ich das "ATMEL Evaluations-Board Version 2.0.1"
Hat leider nicht funktioniert: --- github.com/maassen/avr-netino/tree/master/hardware/avrnetio ---
das arduino Verzeichnis damit überschreiben, bootloader kompilieren und boards.txt schreiben. Wenn Tools->Boards / netavr nicht gefunden wird unten Fehlermeldung checken ob boards.txt im richtigen Verzeichnis ist
bootloader kompilieren
TOOLROOT=../../../tools/ make -f ../atmega/Makefile anio
avrdude
https://www.mikrocontroller.net/articles/Pollin_ATMEL_Evaluations-Board
alles löschen:
avrdude -p m32 -F -c ponyser -P /dev/ttyS0 -v -e avrdude -p m32 -F -c ponyser -P /dev/ttyS0 -v -e
firmware upload:
avrdude -p m32 -F -c ponyser -P /dev/ttyS0 -v -U ./atmega/ATmegaBOOT_168_anio32.hex
Funktionen erwarten prinzipiell ein char* aufs SRAM. D.h. möchte man eine Konstante verwenden muss diese zuerst ins SRAM kopiert werden. Das geschieht beim Start des Programms. Für die meisten Funktionen gibts allerdings auch _p - Versionen die den char * im Programm Speicher erwarten. Baut man die Funktion auf *_p und _P("string") um kann man einige Bytes kostbares SRAM sparen.
LDFLAGS += "-Wl,-Map=$(TARGET).map,--cref"
-Wa,-adhlns=MySrc.lst
und dann nach .rodata (konstanten die in strings verandelt werden) common (globale objekte) und .bss suchen
|