osd-contiki/cpu/cc2538
Benoît Thébaudeau 96dd24836c cc2538: Use &vectors instead of flash/.text start address
The current CC2538 linker script in Contiki places the vector table at
the beginning of the flash memory / .text output section. However, this
location is arbitrary (the only requirement is that the vector table is
512-byte aligned), and custom linker scripts may be used with Contiki,
which means that Contiki may be used with a vector table placed
elsewhere. Thus, using the flash/.text start address in the CCA and as
the default NVIC VTABLE value was wrong.

This commit rather uses the address of the vectors[] array from
startup-gcc.c, which makes it possible to freely move around the vector
table without breaking anything or having to use a custom startup-gcc.c
and to configure the NVIC driver for that. Moreover, referencing the
vectors[] array naturally prevents it and its input section from being
garbage-collected by the linker, so this commit also removes the
now-unneeded "used" and "KEEP" keywords from the vector table.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-11-19 01:18:33 +01:00
..
dev cc2538: Use &vectors instead of flash/.text start address 2015-11-19 01:18:33 +01:00
usb cc2538: examples: Fix build warnings 2015-06-02 01:38:11 +02:00
cc2538.lds cc2538: Use &vectors instead of flash/.text start address 2015-11-19 01:18:33 +01: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: Add PKA drivers, ECC algorithms and examples 2015-10-18 20:14:17 +02:00
lpm.h cc2538: lpm: Fix build for LPM_CONF_ENABLE == 0 2014-01-28 20:21:06 +01:00
Makefile.cc2538 cc2538: Define the flash memory organization 2015-11-19 01:18:33 +01: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: Use &vectors instead of flash/.text start address 2015-11-19 01:18:33 +01:00