Commit graph

13038 commits

Author SHA1 Message Date
Fredrik Österlind 9effff6526 Merge pull request #1370 from g-oikonomou/contrib/cc13xx/prop-mode
Improve the CC13xx sub-ghz driver
2015-11-20 16:30:34 +01:00
Harald Pichler 9b9958fb43 initial upload 2015-11-20 14:08:43 +01:00
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 cbcf1262d6 cc2538: upload: Support .bin not starting at beginning of flash
Depending on the linker script, the generated .bin file may start beyond
the beginning of the flash memory. However, no target address was passed
to cc2538-bsl.py by the upload make target, so it used the beginning of
the flash memory in all cases.

The load address of the lowest loadable output section is now passed to
cc2538-bsl.py. The start address of the .text output section or the
address of the _text symbol could have been used too, but this would not
have been compatible with all the possible custom linker scripts.

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
George Oikonomou 513d8bc9d5 Merge pull request #1382 from simonduq/pr/compile-test-fix
Compile-test: show make variables in log output
2015-11-18 17:41:47 +00:00
Nicolas Tsiftes 500a74a057 Merge pull request #1378 from simonduq/pr/rpl-dao-delay-naming
RPL: clearer naming and documentation of DAO delay constants
2015-11-18 17:56:35 +01:00
Simon Duquennoy b9281e2faa Compile-test: show make variables in log output 2015-11-18 17:39:42 +01:00
Simon Duquennoy 33f8db0dd3 RPL: clearer naming and documentation of DAO delay constants 2015-11-18 14:06:18 +01:00
Tommy Sparber 8792ba16b3 doxygen: Tried to fix documentation (sicslowpan-doc.txt, uip6-doc.txt)
This commit tries to also fix the documentations of sicslowpan and
uip6 to reflect the current code state. I’m not sure if everything
makes sense.

sicslowpan: There are still some references to HC01, can this be
replaced by HC06?

uip6: Section about timers has changed, is this correct?

Doxyfile: The documentations reference static functions, to link to 
them correctly EXTRACT_STATIC = YES is needed.



Congratulations you fixed 134 of doxygen's warnings (old: 134 new: 0).
2015-11-18 11:49:25 +11:00
Tommy Sparber 938a425949 Cleanup trailing spaces and convert tabs to spaces
This commit removes trailing spaces and converts
tabs to spaces in all files affected by fix-doxygen PR.
2015-11-18 11:09:43 +11:00
Tommy Sparber 938d17576b doxygen: Fix many warnings
This commit fixes nearly all of the reported doxygen warnings.

I tried to not clutter the log with removed trailing spaces.
Removed whitespace and converted tab/spaces for all files affected by this commit
are in a separate branch.
2015-11-18 11:07:58 +11:00
Tommy Sparber d0e9cd18c7 doxygen regression test: Tolerate only warning-free builds
This commit simplifies the regression test for the doxygen build to
allow only 0 warnings.

Clean doxygen.runlog and doxygen.runerr for clean target 
and ignore them in .gitignore.
2015-11-18 11:07:58 +11:00
Oliver Schmidt 9bb3a3a235 Merge pull request #1377 from oliverschmidt/master
Build the webserver as done in tools/6502/Makefile.
2015-11-17 21:49:17 +01:00
Oliver Schmidt 9dac1edae9 Build the webserver as done in tools/6502/Makefile. 2015-11-17 21:08:25 +01:00
Nicolas Tsiftes e642dfc671 Merge pull request #1311 from arurke/dis-config
Add configuration of DIS start delay and interval in RPL conf.
2015-11-17 17:48:18 +01:00
Nicolas Tsiftes b3b22756b7 Merge pull request #1327 from nfi/compile-test-with-make-variables
Add option to specify make variables for regression compile tests
2015-11-17 17:25:51 +01:00
suman_panchal 8d139222f6 Wismote : Direct memory access using UART. 2015-11-17 20:26:43 +05:30
Niclas Finne 43d26d9d83 Moved STM32W_CPUREV to the relevant compile regression test 2015-11-17 15:07:47 +01:00
Niclas Finne 2dd75d8384 Added option to specify make variables in the compile regression test 2015-11-17 15:07:04 +01:00
myrfy001 5a440dd003 off_t changed to signed to stay the same as POSIX
On many other tool chains, like TI's new MSG430-GCC, the typedef will be conflict.
2015-11-17 14:30:04 +08:00
Simon Duquennoy 79c436ac03 rpl_verify_header: sanity-check 'sender' before updating rank 2015-11-16 11:15:36 +01:00
George Oikonomou 571cf9364a Improve CC13xx/CC26xx LPM logic
This commit applies a number of improvements to the logic used when trying to drop to a CC13xx/CC26xx low-power mode:

* We identify whether there are any pending etimers by using `etimer_pending()` instead of `etimer_next_expiration_time()`. This subsequently allows us to also identify whether an etimer is set to fire at time 0.
* We run a larger portion of the code with the global interrupt disabled. This prevents a number of messy conditions that can occur if an interrupt fires after we have started the low-power sequence.
* We check whether there are pending events earlier in the sequence.
* We make sure to schedule a next wakeup event even when an LPM module prohibits deep sleep and forces sleep instead.

This fixes some of the issues discussed in #1236
2015-11-14 02:48:46 +01:00
George Oikonomou 08fddb6598 Always set a valid time for the next AON RTC CH1 compare event
The AON RTC CH1 event handler aims to schedule the next compare event on the next 512 RTC counter boundary. However, the current calculation of "now" takes place too early within the interrupt handler. In some cases, this results in the next event getting scheduled too soon in the future or on some extreme cases even in the past.

AON RTC compare events cannot happen within 2 SCLK_LF cycles after a clearance (4 RTC ticks in the 16.16 format). Thus, if the next 512 boundary is too soon (5 ticks for margin), we skip it altogether. When this happens, etimers that would have expired on the skipped tick will expire 1 tick later instead. Skipping a tick has no negative impact on our s/w clock counter, since this is always derived directly from the hardware counter.
2015-11-14 02:44:04 +01:00
George Oikonomou b4393e861f Only set CC13xx prop mode channel if a new channel is being requested 2015-11-14 01:38:24 +01:00
George Oikonomou 320a753666 Turn CC13xx RF back off after prop TX if it was off to start with 2015-11-14 01:38:24 +01:00
George Oikonomou e0e20aa3fd Turn off ENERGEST_TYPE_LISTEN in CC13xx prop mode off() 2015-11-14 01:38:24 +01:00
Marco Grella 7e7c201c40 Updated radio parameters (in the submodule repo), to have more radio range. 2015-11-11 18:50:38 +01:00
Marco Grella 267d51acee Modified radio parameters to increase communication range. 2015-11-11 13:53:58 +01:00
Marco Grella 527903ee10 Added default BOARD value to let regression tests compile for any platform. 2015-11-11 13:48:38 +01:00
Marco Grella 41f9ca08e2 Merge with updated master. 2015-11-11 13:42:35 +01:00
Nicolas Tsiftes a161dc2959 Merge pull request #1365 from simonduq/pr/warning-free-no-frag
sicslowpan.c: warning-free compilation even with fragmentation disabled
2015-11-11 13:24:14 +01:00
Simon Duquennoy 586f4a4ae3 sicslowpan.c: warning-free compilation even with fragmentation disabled 2015-11-11 11:46:18 +01:00
Simon Duquennoy 729c4f9cf1 Merge pull request #1364 from simonduq/pr/last-warnings
Last compiler warnings
2015-11-10 15:50:11 +01:00
Simon Duquennoy b5141f165c www.c: Explicitly declare itoa as it is non-standard and not necessarily in stdlib.h 2015-11-10 14:38:22 +01:00
Simon Duquennoy 4c52b87ac1 Ported jn516x slip-bridge to new uip_fallback_interface 2015-11-10 09:30:36 +01:00
Simon Duquennoy dacef46b03 wget.c: replace deprecated gets with safe fgets 2015-11-10 09:09:31 +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 59fc38543e Merge pull request #1362 from JelmerT/bugfix/cc26xx_readme
Small correction to cc26xx readme
2015-11-09 09:10:51 +00:00
Jelmer Tiete 7b4a9c8410 Small correction to cc26xx readme, code block in list was not propperly indented 2015-11-09 01:01:21 -08: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
Oliver Schmidt 70dce80932 Merge pull request #1355 from oliverschmidt/master
Several minor adjustments.
2015-11-04 20:31:59 +01: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
Oliver Schmidt 8e9da827c0 Several minor adjustments. 2015-11-03 22:09:24 +01:00
Tommy Sparber 0e0bf33d31 uIP Stats: Count sent ICMP6 packets
The sent ICMP6 packets (for example from RPL) are currently
not counted towards the sum of sent ip and icmp packets.

Is there any reason behind this or is it just a bug?
Looking at the code I found no side effects of adding these two lines.

Debug output:
```
uip_stat.ip .recv 10 .sent 23 .forwared 0 .drop 0
uip_stat.icmp .recv 10 .sent 11 .drop 0
uip_stat.udp .recv 0 .sent 12 .drop 0
```
(Sum of ip.sent matches icmp.sent and udp.sent)
2015-11-03 15:10:22 +11:00
Nicolas Tsiftes 139f427458 Merge pull request #1337 from tsparber/pr-ccittcrc-crlf
CCITT_CRC.java Change line endings from CRLF to LF
2015-11-02 14:00:51 +01:00