Discussion:
[ethersex-devel] Vorstellung und erste Frage
Daniel Tombeil
2014-02-02 23:23:55 UTC
Permalink
Hallo zusammen,

ich bin Daniel, und möchte mich an dieser Stelle erst mal für Ethersex
bedanken. Ich bin begeistert! Bisher bin ich mit allem soweit klar
gekommen. Auch den bmp085 Sensor um SNMP zu erweitern hat gut
geklappt. Der Code ist gut zu lesen und zu erweitern. Ich betreibe
Ethersex auf meinen angepassten Net-IOs von Pollin, plane aber auch
eigene Hardware einzusetzen.

Jetzt zu meiner Frage: Es war mir nicht möglich, den TFTP-Bootloader
zu bauen. Ich habe in "General Setup" -> "Build a bootloader" gewählt,
die Bootloader-Size auf 8192 gesetzt. Sowie unter "Network" -> "UDP"
und "UDP Broadcast" aktiviert. Dann unter "Applications" -> "TFTP
support" -> "tftp-o-matic" entsprechende Eingaben gemacht. AVR ist ein
1284p, Fuses sind richtig gesetzt. Mit meinem seriellen Bootloader
klappt es.

Der Compile bricht immer mit Fehlermeldungen ab. z.B.

avr-gcc -mmcu=atmega1284p -Wl,--gc-sections,--relax
-Wl,--section-start=.text=0x1E000 -o ethersex ethersex.o core/eeprom.o
core/util/fixedpoint.o core/util/string_parsing.o core/util/byte2hex.o
core/util/app_crc.o network.o core/debug.o core/periodic.o core/spi.o
core/vfs/vfs.o core/vfs/vfs-util.o core/vfs/vfs_inline.o
hardware/adc/temp2text.o hardware/avr/dump_ecmd.o
hardware/avr/fuse_ecmd.o hardware/avr/hostname_ecmd.o
hardware/avr/reset_ecmd.o hardware/ethernet/ethernet_config.o
hardware/ethernet/enc28j60.o hardware/ethernet/enc28j60_process.o
hardware/ethernet/enc28j60_transmit.o hardware/dht/dht.o
hardware/i2c/master/i2c_master.o hardware/i2c/master/i2c_ds13x7.o
hardware/i2c/master/i2c_bmp085.o hardware/onewire/onewire.o
protocols/snmp/snmp_net.o protocols/snmp/snmp.o protocols/uip/uip.o
protocols/uip/uip_multi.o protocols/uip/uip_router.o
protocols/uip/parse.o protocols/uip/uip_arp.o
protocols/uip/check_cache.o protocols/dns/dns_net.o
protocols/dns/resolv.o protocols/dns/dns_ecmd.o
protocols/ecmd/parser.o protocols/ecmd/via_tcp/ecmd_net.o
services/clock/clock.o services/clock/clock_lib.o
services/freqcount/freqcount_timer.o
services/freqcount/freqcount_measure.o
services/freqcount/freqcount_average.o services/httpd/handle_400.o
services/httpd/handle_401.o services/httpd/handle_404.o
services/httpd/headers.o services/httpd/httpd.o
services/httpd/base64_mit.o services/httpd/handle_vfs.o
services/httpd/handle_ecmd.o services/ntp/ntp.o
services/tftp/tftp_net.o services/tftp/tftp-bootload.o
services/tftp/tftp-vfs.o core/portio/ecmd_simple.o
hardware/ethernet/ethernet_ecmd.o hardware/dht/dht_ecmd.o
hardware/i2c/master/i2c_master_ecmd.o
hardware/i2c/master/i2c_bmp085_ecmd.o hardware/onewire/onewire_ecmd.o
protocols/uip/ipstats.o protocols/uip/ecmd.o
services/clock/clock_ecmd_date.o services/clock/clock_ecmd_time.o
services/clock/whm_ecmd.o services/clock/uptime_ecmd.o
services/freqcount/freqcount_ecmd.o services/ntp/ntp_ecmd.o meta.o
-lm -lc # Pixie Dust!!! (Bug in avr-binutils)
services/tftp/tftp-vfs.o: In function `tftp_handle_packet':
/home/dt/Personal/PROJEKTE/PROGRAMMIEREN/ATMEGA-Devel/ethersex/trunk/ethersex/services/tftp/tftp-vfs.c:45: multiple definition of
`tftp_handle_packet'
services/tftp/tftp-bootload.o:/home/dt/Personal/PROJEKTE/PROGRAMMIEREN/ATMEGA-Devel/ethersex/trunk/ethersex/services/tftp/tftp-bootload.c:103: first defined
here
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: Disabling relaxation: it
will not work with multiple definitions
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: address 0x29faa of
ethersex section `.text' is not within region `text'
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: address 0x29faa of
ethersex section `.text' is not within region `text'
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: address 0x29faa of
ethersex section `.text' is not within region `text'
collect2: ld returned 1 exit status
make: *** [ethersex] Error 1

Bevor ich die Liste mit ggf. sinnlosen Anfragen belästige, wollte ich
fragen, ob mir jemand einen Pointer auf aktuelle Dokumentation geben
kann?

Vielen Dank!

Daniel
Daniel Tombeil
2014-02-07 16:22:22 UTC
Permalink
Hallo zusammen,
Post by Daniel Tombeil
Hallo zusammen,
[...]
Post by Daniel Tombeil
Bevor ich die Liste mit ggf. sinnlosen Anfragen belästige, wollte
ich fragen, ob mir jemand einen Pointer auf aktuelle Dokumentation
geben kann?
das Problem hat sich erledigt. Mittlerweile konnte ich einen
funktionierenden Bootloader bauen und damit auch erfolgreich ein Image
flashen.

Allerdings habe ich jetzt ein anderes Problem. Wenn ich die Firmware
via seriellem Bootloader flashe, klappt alles wie erwartet. Hier
verwende ich das .hex File. Wenn ich vom gleich Build das ".bin" per
TFTP flashe, dann funktioniert die Firmware nicht mehr sauber. Auch
kalkuliere ich für das .bin File mit "jacksum -a CRC-16 -x
ethersex.bin" eine andere CRC-16 Checksumme, als ich später im TFTP
Request mit CRC support sehe.

Hat jemand einen Hinweis, wie ich das weiter debuggen kann?

Danke!

Daniel
Daniel Tombeil
2014-02-02 23:15:43 UTC
Permalink
Hallo zusammen,

ich bin Daniel, und möchte mich an dieser Stelle erst mal für Ethersex
bedanken. Ich bin begeistert! Bisher bin ich mit allem soweit klar
gekommen. Auch den bmp085 Sensor um SNMP zu erweitern hat gut
geklappt. Der Code ist gut zu lesen und zu erweitern. Ich betreibe
Ethersex auf meinen angepassten Net-IOs von Pollin, plane aber auch
eigene Hardware einzusetzen.

Jetzt zu meiner Frage: Es war mir nicht möglich, den TFTP-Bootloader
zu bauen. Ich habe in "General Setup" -> "Build a bootloader" gewählt,
die Bootloader-Size auf 8192 gesetzt. Sowie unter "Network" -> "UDP"
und "UDP Broadcast" aktiviert. Dann unter "Applications" -> "TFTP
support" -> "tftp-o-matic" entsprechende Eingaben gemacht. AVR ist ein
1284p, Fuses sind richtig gesetzt. Mit meinem seriellen Bootloader
klappt es.

Der Compile bricht immer mit Fehlermeldungen ab. z.B.

avr-gcc -mmcu=atmega1284p -Wl,--gc-sections,--relax
-Wl,--section-start=.text=0x1E000 -o ethersex ethersex.o core/eeprom.o
core/util/fixedpoint.o core/util/string_parsing.o core/util/byte2hex.o
core/util/app_crc.o network.o core/debug.o core/periodic.o core/spi.o
core/vfs/vfs.o core/vfs/vfs-util.o core/vfs/vfs_inline.o
hardware/adc/temp2text.o hardware/avr/dump_ecmd.o
hardware/avr/fuse_ecmd.o hardware/avr/hostname_ecmd.o
hardware/avr/reset_ecmd.o hardware/ethernet/ethernet_config.o
hardware/ethernet/enc28j60.o hardware/ethernet/enc28j60_process.o
hardware/ethernet/enc28j60_transmit.o hardware/dht/dht.o
hardware/i2c/master/i2c_master.o hardware/i2c/master/i2c_ds13x7.o
hardware/i2c/master/i2c_bmp085.o hardware/onewire/onewire.o
protocols/snmp/snmp_net.o protocols/snmp/snmp.o protocols/uip/uip.o
protocols/uip/uip_multi.o protocols/uip/uip_router.o
protocols/uip/parse.o protocols/uip/uip_arp.o
protocols/uip/check_cache.o protocols/dns/dns_net.o
protocols/dns/resolv.o protocols/dns/dns_ecmd.o
protocols/ecmd/parser.o protocols/ecmd/via_tcp/ecmd_net.o
services/clock/clock.o services/clock/clock_lib.o
services/freqcount/freqcount_timer.o
services/freqcount/freqcount_measure.o
services/freqcount/freqcount_average.o services/httpd/handle_400.o
services/httpd/handle_401.o services/httpd/handle_404.o
services/httpd/headers.o services/httpd/httpd.o
services/httpd/base64_mit.o services/httpd/handle_vfs.o
services/httpd/handle_ecmd.o services/ntp/ntp.o
services/tftp/tftp_net.o services/tftp/tftp-bootload.o
services/tftp/tftp-vfs.o core/portio/ecmd_simple.o
hardware/ethernet/ethernet_ecmd.o hardware/dht/dht_ecmd.o
hardware/i2c/master/i2c_master_ecmd.o
hardware/i2c/master/i2c_bmp085_ecmd.o hardware/onewire/onewire_ecmd.o
protocols/uip/ipstats.o protocols/uip/ecmd.o
services/clock/clock_ecmd_date.o services/clock/clock_ecmd_time.o
services/clock/whm_ecmd.o services/clock/uptime_ecmd.o
services/freqcount/freqcount_ecmd.o services/ntp/ntp_ecmd.o meta.o
-lm -lc # Pixie Dust!!! (Bug in avr-binutils)
services/tftp/tftp-vfs.o: In function `tftp_handle_packet':
/home/dt/Personal/PROJEKTE/PROGRAMMIEREN/ATMEGA-Devel/ethersex/trunk/ethersex/services/tftp/tftp-vfs.c:45: multiple definition of
`tftp_handle_packet'
services/tftp/tftp-bootload.o:/home/dt/Personal/PROJEKTE/PROGRAMMIEREN/ATMEGA-Devel/ethersex/trunk/ethersex/services/tftp/tftp-bootload.c:103: first defined
here
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: Disabling relaxation: it
will not work with multiple definitions
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: address 0x29faa of
ethersex section `.text' is not within region `text'
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: address 0x29faa of
ethersex section `.text' is not within region `text'
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: address 0x29faa of
ethersex section `.text' is not within region `text'
collect2: ld returned 1 exit status
make: *** [ethersex] Error 1

Bevor ich die Liste mit ggf. sinnlosen Anfragen belästige, wollte ich
fragen, ob mir jemand einen Pointer auf aktuelle Dokumentation geben
kann?

Vielen Dank!

Daniel

Loading...