Commit graph

8976 commits

Author SHA1 Message Date
Nicolas Tsiftes
db4cada4e7 Merge pull request #462 from adamdunkels/push/no-reserved-double-inclusion-defines
Remove all leading double underscore inclusion #defines
2013-11-26 14:26:37 -08:00
Benoît Thébaudeau
1a696eb123 cc2538: gpio: Clear the power-up interrupts in the port ISRs
The pending GPIO power-up interrupts have to be cleared in the ISRs in order not
to re-trigger the interrupts and the wake-up events.

The power-up interrupts of all pins are cleared for each port in the
corresponding port ISR. This is done after calling the registered callbacks so
that the callbacks can know which pin woke up the SoC. This is done after
clearing the regular interrupt in order to avoid getting a new wake-up interrupt
without the regular interrupt in the case of a new wake-up edge occurring
between the two clears.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-26 22:20:05 +01:00
Benoît Thébaudeau
44a5c76884 cc2538: gpio: Add macros to use GPIO power-up interrupts
The GPIO power-up interrupts have to be configured and enabled in order to be
able to wake-up the SoC from PM1+ upon a signal edge occurring on a GPIO input
pin.

This set of macros allows to:
 - configure the signal edge triggering a power-up interrupt,
 - enable and disable a power-up interrupt,
 - clear a power-up interrupt flag.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-26 22:10:47 +01:00
Eugen Berlin
a415c2bb1b Fix: preserving blank characters (tabulator and space) in Cooja serial output 2013-11-26 16:43:31 +01:00
Fredrik Österlind
ec5039b9eb Merge pull request #465 from cetic/cooja-pcap
Cooja Pcap export: Reverts PR #284 to fix #420
2013-11-25 23:53:26 -08:00
Benoît Thébaudeau
436b585d7e cc2538dk: Make it possible to override SLIP_ARCH_CONF_ENABLED
As the comment in contiki-conf.h says, the automatic definition of
SLIP_ARCH_CONF_ENABLED works only if UIP_FALLBACK_INTERFACE is tied to SLIP. If
UIP_FALLBACK_INTERFACE is set to another interface, SLIP_ARCH_CONF_ENABLED is
still automatically set to 1, leading to unwanted SLIP_END characters from
dbg.c:putchar() being printed on the UART.

This change makes it possible to force the definition of SLIP_ARCH_CONF_ENABLED
(e.g. from project-conf.h), so that it can be disabled if UIP_FALLBACK_INTERFACE
is used with something else than SLIP.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 20:48:52 +01:00
Sébastien Dawans
700994ec1c Cooja Pcap export: Reverts PR #284 to fix #420 2013-11-25 16:36:49 +01:00
Adam Dunkels
b133e387bd Merge pull request #414 from ADVANSEE/duplicate-packets
mac: Fix false duplicate packets detections
2013-11-25 07:16:58 -08:00
Benoît Thébaudeau
621f4f7339 cc2538: lpm: Give access to the SRAM non-retention area for PM2
If PM2 is enabled with LPM_CONF_MAX_PM, but not active, the non-retention area
of the SRAM can be useful to place temporary data that does not fit in the
low-leakage SRAM, typically after having called lpm_set_max_pm(LPM_PM1). Hence,
give access to this non-retention area thanks to .nrdata* sections.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 15:43:37 +01:00
Benoît Thébaudeau
270ed237fd cc2538: usb: Make the GPIO driving the pull-up optional
The data sheet recommends that the USB pull-up resistor be driven by a GPIO so
that it can be controlled by software, but this is not mandatory. Hence, leave
the choice so that CC253-based boards not using this option can build and work
fine.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 15:15:35 +01:00
Benoît Thébaudeau
d2f3795a30 cc2538: Clean up port and pin definitions
Homogenize port and pin definitions naming:
 - PERIPHERAL_FUNCTION_PORT for the port ID,
 - PERIPHERAL_FUNCTION_PIN for the pin ID,
 - PERIPHERAL_FUNCTION_PORT_BASE for the port base,
 - PERIPHERAL_FUNCTION_PIN_MASK for the pin mask.

Define only PERIPHERAL_FUNCTION_PORT and PERIPHERAL_FUNCTION_PIN in board.h, and
deduce PERIPHERAL_FUNCTION_PORT_BASE and PERIPHERAL_FUNCTION_PIN_MASK in the
driver from the former definitions.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 15:00:41 +01:00
Benoît Thébaudeau
4deba89f81 rdc: duplicate packets: Keep only the last sequence number for each address
According to IEEE 802.15.4e (§6.4.3.9), in order to detect duplicate received
MAC-layer frames, only the most recently received frame's sequence number needs
to be stored for each unique device address. Doing so limits the possible false
duplicate packet detections to a single sequence number. This also allows to
keep the last sequence number of more device addresses for the same value of
MAX_SEQNOS.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Benoît Thébaudeau
477a4a7178 rdc: duplicate packets: Factor out detection code
The code detecting duplicate packets in the RDC layer had been copied into most
RDC implementations. Factor it out into a new mac-sequence module in order to
have a single instance of this code.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Benoît Thébaudeau
14db3382af csma: Initialize sequence number with random value
According to IEEE 802.15.4 (§5.1.6.1, §6.4.2), the MAC sequence numbers should
be initialized to random values. This was already the case in
framer-802154.c:create(), but not in csma.c:send_packet(), sometimes causing
false detections of duplicate MAC-layer packets in other devices when a device
was restarted too quickly. This patch decreases the probability of such an
event.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Nicolas Tsiftes
acee82abbb Merge pull request #456 from adamdunkels/push/6lowpan-changes
6lowpan changes
2013-11-24 15:37:12 -08:00
Adam Dunkels
bb2dcaa057 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
Nicolas Tsiftes
7283e48f09 Merge pull request #454 from adamdunkels/push/dao-updates-rebased
RPL feather mode
2013-11-24 07:49:49 -08:00
Adam Dunkels
d05a9e2e39 Disabling the fragmentation test for the sky, as it is a little too small to reliably run this firmware 2013-11-24 16:24:13 +01:00
Adam Dunkels
9f2e233770 The RPL_PARENT_COUNT() macro doesn't exist anymore - use the uip_ds6_nbr_num() function instead 2013-11-24 15:17:53 +01:00
Adam Dunkels
b0460317b8 Moved variable declaration to the start of the function block 2013-11-24 15:17:52 +01:00
Adam Dunkels
faff1c2a7e Preliminary support for RPL node types. This change allows a node to be in any of three given types:
* Mesh: this is the normal case. Nodes route data on behalf of others and the node can be reached via a DAO route.
* Leaf: the node does not route data on behalf of others, but others can route data to the node (it has a RPL DAO route).
* Feather: this is a new type of node. A feather node routes data on behalf of others, but does not install DAO routes in the network. Feather nodes allow having a larger number of nodes than the RPL network can sustain in terms of routing tables.

This commit introduces the RPL node types and the feather mode, but does not add support for the leaf node type.
2013-11-24 15:17:52 +01:00
Adam Dunkels
af24d07848 Forward no-path DAOs up the tree to allow the root to repair the network if needed 2013-11-24 15:17:52 +01:00
Adam Dunkels
9039b0ecd8 Remove references to the now unused dag->parents list 2013-11-24 15:17:52 +01:00
Adam Dunkels
4e6fe7dda6 Add a neighbor table entry if a DAO is received from a node where we don't yet have a neighbor table entry. 2013-11-24 15:17:52 +01:00
Adam Dunkels
490791eaa4 Add a check for the case when the parent neighbor may have gone away to avoid using a NULL pointer 2013-11-24 15:17:52 +01:00
Adam Dunkels
0ed7db0f9b Slight improvements in debug messages 2013-11-24 15:17:52 +01:00
Adam Dunkels
fc1adec1b8 Made it a bit more clear what function that gets called when a neighbor is removed 2013-11-24 15:17:51 +01:00
Adam Dunkels
61ea7fbb1c RPL DAO timers and management:
* Added a DAO lifetime timer that sends out a new DAO after half the lifetime of the DAO. This allows implementing DAO route soft state that avoids routing tables in the network keeping stale routes for ever.
* Added ways to schedule a new DAO transmission as well as cancelling an active DAO transmit timer, which makes it possible to do nodes that don't send DAOs.
2013-11-24 15:17:51 +01:00
Nicolas Tsiftes
42cae1c6c9 Merge pull request #461 from adamdunkels/push/cleanup-net
Cleanup: Removal of old unused core/net/ modules
2013-11-24 05:57:40 -08:00
Adam Dunkels
454088c117 Removed old, unused rawpacket code 2013-11-24 11:02:35 +01:00
Adam Dunkels
19b32c54c0 Removed the old unused hc.[ch] code 2013-11-24 11:02:35 +01:00
Adam Dunkels
e09ff3ff1e Merge pull request #438 from adamdunkels/push/cleanup-platforms
Massive platform cleanup
2013-11-24 01:59:53 -08:00
Fredrik Österlind
2133c1d777 Merge pull request #449 from darki2002/cooja_default.config
Start DGRMConfigurator and DGRMVisualizerSkin in cooja_default.config
2013-11-24 01:09:26 -08:00
George Oikonomou
f3f1b8c90d Merge pull request #458 from adamdunkels/push/cc2538-rf
CC2538 RF core additions
2013-11-23 07:13:06 -08:00
Adam Dunkels
1ab28e4668 Added missing argument declaration 2013-11-23 15:05:16 +01:00
Adam Dunkels
e95236b642 Added header declarations for cc2538_rf_read_rssi() and cc2538_rf_set_promiscous_mode() 2013-11-23 15:05:16 +01:00
Adam Dunkels
76f2a10c9a Added a function for setting promiscous mode on the CC2538 RF core 2013-11-23 15:05:15 +01:00
Adam Dunkels
473d519926 Added a way to obtain the RSSI from the CC2538 RF core 2013-11-23 15:05:15 +01:00
Adam Dunkels
9819c5b5b8 Rewrote the IPv6 route management so that all routes are maintained on a list that is ordered by the time at which the route was accessed. If a new route is added to the system, the oldest route is dropped. 2013-11-22 18:00:47 +01:00
Sebastian Schinabeck
1ef80859ea start DGRMVisualizerSkin in cooja_default.config now
instead of starting in DirectedGraphMedium
2013-11-22 17:01:44 +01:00
Sebastian Schinabeck
123a7081f2 start DGRM plugin with cooja_default.config
start the DGRMconfigurator within the cooja_default.config instead of starting in DirectedGraphMedium.java
2013-11-22 17:01:44 +01:00
Adam Dunkels
27433244a9 The pc-6001 platform was the last z80 platform in the tree, so we'll remove the cpu/z80 directory too 2013-11-22 16:33:46 +01:00
Adam Dunkels
52a0b4594f Removed the old esb regression tests 2013-11-22 16:33:46 +01:00
Adam Dunkels
cb8fc35e25 Removed the redbee platforms 2013-11-22 16:33:06 +01:00
Adam Dunkels
eb99534c43 Removed the stk500/stk501 platforms 2013-11-22 16:33:06 +01:00
Adam Dunkels
d68ce09fd5 Removed the stepper-robot platform 2013-11-22 16:33:06 +01:00
Adam Dunkels
13117203e0 Removed pc-6001 platform 2013-11-22 16:33:05 +01:00
Adam Dunkels
44370be06f Removed old, unused msp430-based platforms 2013-11-22 16:33:05 +01:00
Adam Dunkels
5f7b75d660 Merge pull request #452 from AriZuu/uip6-udp-stats-twice-fix
Received UDP packet was counted twice in statistics, first in udp_input ...
2013-11-22 07:18:47 -08:00
Adam Dunkels
7a310935d8 An implementation of the mc1322x watchdog 2013-11-22 15:54:06 +01:00