[riot-devel] 6lowpan Host with SLAAC, minimum ram

Arndt, Josua jarndt at ias.rwth-aachen.de
Mon Dec 4 15:05:02 CET 2017


Thanks all for your suggestions.



I used following configuration



CFLAGS += -DGNRC_PKTBUF_SIZE=512

CFLAGS += -DGNRC_IPV6_NETIF_ADDR_NUMOF=8

CFLAGS += - DGNRC_IPV6_NIB_NUMOF =1



CFLAGS += -DTHREAD_STACKSIZE_DEFAULT=512

CFLAGS += -DTHREAD_STACKSIZE_IDLE=129

CFLAGS += -DTHREAD_EXTRA_STACKSIZE_PRINTF=128



CFLAGS += -DAT86RF2XX_MAC_STACKSIZE=256

CFLAGS += -DGNRC_SIXLOWPAN_STACK_SIZE=512

CFLAGS += -DGNRC_IPV6_STACK_SIZE=512

CFLAGS += -DGNRC_RPL_STACK_SIZE=512



Yes basically the default values, as I try to touch as less as possible.



Compiling gnrc_network

AVR Memory Usage

Device: atmega256rfr2

Program:  113986 bytes (43.5% Full)

(.text + .data + .bootloader)

Data:      22334 bytes (68.2% Full)

(.data + .bss + .noinit)



I removed rpl as suggested and got a good step forward



Device: atmega256rfr2

Program:   88418 bytes (33.7% Full)

(.text + .data + .bootloader)

Data:      16047 bytes (49.0% Full)

(.data + .bss + .noinit)



I used some reges magic to change the shell_commands.c to seperatly enable schells for every module

And only used this shells:

CFLAGS += -DMODULE_GNRC_NETIF_SHELL_ENABLE

CFLAGS += -DMODULE_PS_SHELL_ENABLE

CFLAGS += -DMODULE_GNRC_ICMPV6_ECHO_SHELL_ENABLE



Device: atmega256rfr2

Program:   85956 bytes (32.8% Full)

(.text + .data + .bootloader)

Data:      15039 bytes (45.9% Full)

(.data + .bss + .noinit)



This is at least a good starting point  to be used with 16kbyte instead of 32kbyte ram, and leaves some space for further optimization.



Running in on the xmega gives with all shell

AVR Memory Usage

Device: atxmega256a3u

Program:   97324 bytes (36.0% Full)

(.text + .data + .bootloader)

Data:      16154 bytes (98.6% Full)

(.data + .bss + .noinit)



And with only the above mentioned shells, reboot and udp
> help
Command              Description
---------------------------------------
udp                  send data over UDP and listen on UDP ports
reboot             Reboot the node
ps                     Prints information about running threads.
ping6               Ping via ICMPv6
ifconfig            Configure network interfaces

Device: atxmega256a3u
Program:   94906 bytes (35.1% Full)
(.text + .data + .bootloader)
Data:      15148 bytes (92.5% Full)
(.data + .bss + .noinit)

If there is demand for separately enabled shells I could do a PR, but this needs to be also well  documented and I'm not quite sure which is the best way.

As I tried several suggestions I would give a short result here

GNRC_PKTBUF_SIZE from 6KiB to 512

CFLAGS += -DGNRC_IPV6_NETIF_ADDR_NUMOF=5,  when reduced below 5 no global address is not accepted.

CFLAGS += -DGNRC_IPV6_NC_SIZE=1



Removed modules
#USEMODULE += gnrc_rpl
#USEMODULE += auto_init_gnrc_rpl
#USEMODULE += netstats_rpl

Thank you again.

[rwth_ias_bild_rgb_logo]

Josua Arndt, M.Sc.
RWTH Aachen University
Integrated Analog Circuits and RF Systems
Kopernikusstra├če 16, ICT Cube North, Room 209, D-52074 Aachen
Email: Josua.Arndt at ias.rwth-aachen.de<mailto:Josua.Arndt at ias.rwth-aachen.de>
Phone: +49 241 / 80 - 27750



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20171204/1d0ec1d3/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 7649 bytes
Desc: image001.png
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20171204/1d0ec1d3/attachment-0001.png>


More information about the devel mailing list