Commit graph

1394 commits

Author SHA1 Message Date
Benoît Thébaudeau 5d98cb71e2 cc2538: Add support for Coffee
Coffee is placed by default at the beginning of the flash memory, right
before the firmware. This avoids the memory gaps that there could be
before and after Coffee if it were placed after the firmware, because it
is unlikely that the end of the firmware is aligned with a flash page
boundary, and the CCA is not flash-page-aligned. Thanks to that, Coffee
is also always in the same flash area if its size remains unchanged,
even if the firmware changes, which makes it possible to keep the Coffee
files when reprogramming the firmware after a partial flash erase
command.

The default configuration of Coffee is set to use sensible values for a
typical usage on this SoC, i.e. for sensor data logging.

The default size of Coffee is set to 0 in order not to waste flash if
Coffee is unused.

COFFEE_CONF_CUSTOM_PORT can be defined to a header file to be used with
"#include" in order to override the default CC2538 port of Coffee. This
makes it possible to use Coffee with an external memory device rather
than with the internal flash memory, without having to alter the Contiki
files.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-11-19 01:22:58 +01:00
Benoît Thébaudeau ee3ee049e4 cc2538: Set the entry point to the CCA
No entry point was defined, so it defaulted to the beginning of the
.text output section where the vector table is located by default in
Contiki. Actually, the vector table may be located elsewhere, and the
ROM-based boot loader first reads the CCA to find the vector table.

Consequently, this commit sets the entry point to the CCA, which fixes
both the entry point and the initial symbol reference, so this commit
also removes the now-unneeded "__used__" and "KEEP" keywords from the
CCA.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-11-19 01:18:34 +01:00
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
Benoît Thébaudeau a191fcdb84 cc2538: nvic: Simplify VTABLE configuration
The only thing needed for VTABLE is the absolute address of the vector
table. Splitting it between code/SRAM base and offset complicates things
and brings nothing.

Consequently, this commit merges the NVIC VTABLE configurations into a
single one giving the vector table absolute address.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-11-19 01:18:33 +01:00
Benoît Thébaudeau efb4b858e2 cc2538: Define the flash memory organization
Define the flash memory page and word sizes. These definitions are
grouped with the flash lock bit page and CCA definitions, so flash-cca.h
is renamed to flash.h.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-11-19 01:18:33 +01:00
Benoît Thébaudeau 790c253d6d cc2538: Define and use device features
Define the available CC2538 devices and their features, and use them to
define the linker script memory regions. The .nrdata output section is
now always defined in order to trigger an error if it is used but no
memory is available for it. The CC2538 device used by Contiki is made a
configuration option, the CC2538SF53 device being the default.

This makes more sense than defining the flash memory address and size as
configuration options like previously, all the more not all values are
possible and all the features are linked by each device.

This change also makes it possible to:
 - use the correct SRAM parameters for the CC2538NF11,
 - know at build time if the AES, SHA, ECC and RSA hardware features are
   available on the selected CC2538 device.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-11-19 01:18:33 +01:00
Simon Duquennoy fbd78a7e3b Merge pull request #1293 from simonduq/pr/fix-warnings
Fix a number of compiler warnings and enable -Werror in Travis
2015-11-10 08:49:11 +01:00
George Oikonomou a63efe947f Merge pull request #1233 from adamdunkels/pr/26xx-13xx-fixes
CC26xx/CC13xx fixes
2015-11-09 08:33:58 +00:00
George Oikonomou 3aa4547327 Merge pull request #1257 from bkozak-scanimetrics/cc26xx_fully_turnoff_radio
CC26xx - fully shutdown the rf-core & abort rx op
2015-11-04 15:45:05 +00:00
Antonio Lignan 6037e269a8 Merge pull request #1336 from sumanpanchal/z1-uart0-dma
Zolertia Z1: Direct memory access using UART.
2015-11-02 08:47:08 +01:00
George Oikonomou 54648591ee Explicitly send CMD_ABORT in prop mode before powering down 2015-11-01 22:53:35 +00:00
Oliver Schmidt 9962d0720a Merge pull request #1347 from oliverschmidt/master
Removed CC_FASTCALL.
2015-11-01 19:36:07 +01:00
Oliver Schmidt 1639b712bb Removed CC_FASTCALL.
CC_FASTCALL was introduced many years ago for the cc65 tool chain. It was never used for another tool chain. With a798b1d648 the cc65 tool chain doesn't need CC_FASTCALL anymore.
2015-11-01 18:10:17 +01:00
Oliver Schmidt 692fbf5422 Merge pull request #1343 from oliverschmidt/master
Added 80 column IRC client / web browser for the C64.
2015-10-31 15:18:10 +01:00
suman_panchal 35cc40563e Zolertia Z1: Direct memory access using UART. 2015-10-31 11:45:13 +05:30
Oliver Schmidt fb5d0b7ef0 Made 80 column display a cc65 application attribute.
So far 80 column display was an attribute of a cc65 platform. Now each cc65 application can ask for 80 column display by defining WITH_80COL. Of course this is ignored by platforms incapable of 80 column display.

I see three types of application:

* Applications not benefitting from 80 column at all and in fact looking better with 40 column display. These are now using 40 column display. Examples: ethconfig, ipconfig

* Applications taking advantage of 80 column display if it is available without drawbacks. These stay as they were. Examples: Telnet server, web server, wget

* Applications needing 80 column display so urgently that it is likely desirable even if the display becomes harder to read. These come now in both flavors allowing the user to choose. Examples: IRC, web browser

Note: This change doesn't actually introduce any 80 column display with drawbacks. This if left to a subsequent change.
2015-10-30 12:42:58 +01:00
George Oikonomou 3e0f37090c Merge pull request #1324 from msloth/master
Remove LED fade in lpm.c
2015-10-29 11:36:39 +00:00
Marcus Linderoth 1906bff17c allow lpm_shutdown without a wake-up pin set 2015-10-28 11:06:26 +01:00
Marcus Linderoth ea7a5d1c63 Remove fade away of LED when going into shutdown mode; it consumes power and is application-layer stuff. 2015-10-28 10:51:37 +01:00
Benoît Thébaudeau bf41de1be5 Merge pull request #1078 from drandreas/cc2538-crypto
cc2538: Add PKA drivers, ECC algorithms and examples
2015-10-21 11:24:35 +02:00
Simon Duquennoy 2daa3d7377 Merge pull request #1269 from tadodotcom/tmp-uip-fallback-iface
More flexibility for the fallback interface
2015-10-20 11:33:14 +02:00
Simon Duquennoy ca8fe618e7 cc2420 and cc2430: add comment on why we discard tbiv 2015-10-20 10:11:49 +02:00
Simon Duquennoy f49b161795 Remove commented-out code 2015-10-20 10:11:47 +02:00
Adam Dunkels d48cf89e9b Fixed compiler warnings for the AVR platforms 2015-10-20 10:11:42 +02:00
George Oikonomou 2773a37857 Update CCxxwares to our warning-free version 2015-10-20 10:11:41 +02:00
Adam Dunkels 24b1eb4031 The -pedantic and -stdc flags trigger a few too many warnings 2015-10-20 10:11:35 +02:00
Adam Dunkels 4cab313b8c Fix compiler warnings 2015-10-20 10:11:34 +02:00
Adam Dunkels 06dfce6d46 The -pedantic and -stdc flags trigger a few too many warnings 2015-10-20 10:11:33 +02:00
Adam Dunkels 12a185f394 Added the WERROR=1 flag to the CC2538 and CC26xx CPUs 2015-10-20 10:11:23 +02:00
Simon Duquennoy a2b1934f03 mbxxx: added missing undefs 2015-10-20 09:37:28 +02:00
Simon Duquennoy ccfdf80ff2 Removed mbxxx warning messages on the current ld file in use 2015-10-20 09:37:27 +02:00
Simon Duquennoy 0340567af8 tapdev6.c: do not ignore return value of system() 2015-10-20 09:37:18 +02:00
Simon Duquennoy 2c91ab6fad linuxradio-drv.c: added missing include 2015-10-20 09:37:17 +02:00
Simon Duquennoy 01984f07c2 cc2420 and cc2430: removed compiler warning on unused tbiv 2015-10-20 09:37:16 +02:00
Simon Duquennoy 560d6af97b msp430x: do not compile mtarch, which currently assumes 16-bit function pointers 2015-10-20 09:37:15 +02:00
AntiCat d631270af4 cc2538: Add PKA drivers, ECC algorithms and examples 2015-10-18 20:14:17 +02:00
Vladimir Pouzanov 2d75926989 Fixed linuxradio-drv guard macro name 2015-09-29 12:29:08 +01:00
Simon Duquennoy 6d4f50e53a Merge pull request #1282 from farcaller/nativenet
Basic NETSTACK_CONF_RADIO based on kernel 802.15.4
2015-09-28 19:30:38 +02:00
Mariano Alvira ff7129dc53 Merge pull request #881 from drugo72/avr-fixes
Avr fixes
2015-09-28 09:41:21 -05:00
Vladimir Pouzanov bd1b7d9814 Fixed linuxradio compilation issues with native and minimal-net 2015-09-28 12:48:01 +01:00
Vladimir Pouzanov 4c8618e6ba Extracted linuxradio device name to contiki-conf 2015-09-28 12:48:00 +01:00
Vladimir Pouzanov 52c90519d9 Fixed missing #includes and restricted linuxradiodrv compilation to linux 2015-09-28 12:48:00 +01:00
Vladimir Pouzanov 43a327df5a Cleaned up and re-formatted source of linuxradiodrv 2015-09-28 12:47:12 +01:00
Vladimir Pouzanov 113d9761f7 Better failure handling in linuxradiodrv 2015-09-28 12:47:12 +01:00
Vladimir Pouzanov 5fed4a3f1c Using MAX_PACKET_SIZE where appropriate in linuxradiodrv 2015-09-28 12:47:12 +01:00
Vladimir Pouzanov beef4f5d5d Added better error handling to linuxradiodrv transmit() 2015-09-28 12:47:12 +01:00
Vladimir Pouzanov 8a068f8512 Cleaned up linuxradiodrv code 2015-09-28 12:47:12 +01:00
Vladimir Pouzanov 867368b929 Basic NETSTACK_CONF_RADIO based on kernel 802.15.4 2015-09-28 12:47:11 +01:00
Laurent Deru a58fa16cc6 Merge pull request #1252 from tadodotcom/cpu-native-ldflags-fix
Don't override LDFLAGS on Linux for the native CPU
2015-09-23 09:44:22 +02:00
Cristiano De Alti e51783a1d5 Most of the rules in the avr makefile are not used anymore
and should be removed. In the meantime we change those needed
to upload flash and eeprom to depend on the default contiki rule
to make the .$(TARGET) executable."
2015-09-22 23:32:17 +02:00