Chris - AVR-Net-IO mit Arduino | ||
| Riki und Rudi Chris Michi Doris | ||
|
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) BODEN bit auf 0 setzen => eingeschalten NOCH MEHR WICHTIG !!! ponyser geht nur mit einem echten usb port - usbasb kaufen!
avrdude -v -p m32 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xBF:m -U hfuse:w:0xDC:mAVRNETIO (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
hat einfach funktioniert: www.ethersex.de/index.php/Flashing_(Deutsch) cross-avr-gcc und avr-libc: https://software.opensuse.org/package/cross-avr-gcc und mit avrdude flashen config: avr - net io default laden. +debuggen auf uart einschalten +dhcp +ecmd über uart ein avrdude ponyser
http://www.ethersex.de/index.php/Own_module
race condition in httplog.c: wenn zwischen ACK und ABORT ein 2. mal aufgerufen wird ein kaputter http request gesendet patches bei protocols/httplog/httplog.c: im uip_abort() teil das free machen patches bei protocols/uip/uip.c: if(uip_connr->timer == UIP_TIME_WAIT_TIMEOUT) { uip_connr->tcpstateflags = UIP_CLOSED; unnötige Konstanten im SRAM suchenFunktionen 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 power down für den netzwerk chipblog.derouineau.fr/2011/07/putting-enc28j60-ethernet-controler-in-sleep-mode/ | /* */ |