osd-contiki/cpu/cc2538
Benoît Thébaudeau 1cd3c9e7e5 cc2538: Initialize .data/.bss using ROM functions
This is safer because the previous code assumed that the start and end
VMAs of .data and .bss were word-aligned, which is not always the case,
so the initialization code could write data outside these sections. The
ROM functions support any address boundary.

This is faster because the ROM functions are ultra optimized, using
realignment and the LDM/STM instructions, which is much better than the
previous simple loops of single word accesses.

This is smaller because the ROM functions don't require to add any code
to the target device other than simple function calls.

This makes the code simpler and more maintainable because standard
functions are not reimplemented and no assembly is used.

Note that this is also faster and smaller than the corresponding
functions from the standard string library.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-05-23 18:50:52 +02:00
..
dev cc2538: Allow for configuration of processor speed 2015-05-19 18:55:55 +02:00
usb Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
cc2538.lds cc2538: Move the stack out of .bss 2015-05-23 18:50:52 +02:00
clock.c cc2538: Allow for configuration of processor speed 2015-05-19 18:55:55 +02:00
cpu.c New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
cpu.h Re-structure CC2538 doxygen module hierarchy 2015-02-16 10:17:58 +01:00
dbg.c cc2538: uart: Make it possible to use several UARTs simultaneously 2014-04-17 18:53:44 +02:00
dbg.h Improve wording 2015-02-16 10:17:58 +01:00
debug-uart.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
ieee-addr.c Improve documentation for the CC2538 IEEE address re-ordering 2014-06-06 18:33:28 +01:00
ieee-addr.h Make the CC2538 secondary IEEE address location configurable 2014-06-06 18:15:07 +01:00
lpm.c cc2538: Allow for configuration of processor speed 2015-05-19 18:55:55 +02:00
lpm.h cc2538: lpm: Fix build for LPM_CONF_ENABLE == 0 2014-01-28 20:21:06 +01:00
Makefile.cc2538 Merge pull request #968 from g-oikonomou/cc2538-contrib-on-chip-sensors 2015-05-14 19:21:56 +02:00
mtarch.h A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
reg.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
rtimer-arch.c cc2538: lpm: Fix RTIMER_NOW() upon wake-up 2013-12-05 20:23:29 +01:00
rtimer-arch.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
slip-arch.c cc2538: uart: Make it possible to use several UARTs simultaneously 2014-04-17 18:53:44 +02:00
spi-arch.h CC2538: added support for SSI1 2015-05-18 10:02:55 +02:00
startup-gcc.c cc2538: Initialize .data/.bss using ROM functions 2015-05-23 18:50:52 +02:00