Commit Graph

9274 Commits

Author SHA1 Message Date
Fredrik Österlind
b613d05685 Merge pull request #575 from lecneri/patch-1
typo in event resource handler comment
2014-03-27 16:32:46 +01:00
Nicolas Tsiftes
7f4d3e3d7b Avoid calling rpl_lock_parent for uninitialized memory. Renamed p to parent to make reading easier. 2014-03-27 15:55:38 +01:00
Nicolas Tsiftes
1c560fb9db The check should be whether RPL_DIS_SEND is non-zero, not whether it is defined. 2014-03-27 15:44:18 +01:00
Nicolas Tsiftes
5aca90e73d Use the same scale for ETX calculation as for rank calculations to avoid conversion errors between the two. 2014-03-27 15:44:15 +01:00
Atis Elsts
68b65e6c47 Fix CPU clock calibration in msp430f2xxx based platforms (e.g. Zolertia Z1).
The following problems were present in the existing DCO calibration algorithm:

Problem #1. In function msp430_quick_synch_dco(), the "for(i=0; i < 1000; i++) { .. }" loop is optimized away by the compiler, as i is not volatile. Making i volatile would improve the results, but would not be sufficient: see the next point.

Problem #2. According to MSP430F2617 Device Erratasheet, bug BCL12 precludes a naive implementations of "fast" calibration altogether. The bug is present on all MCU revisions up to date.

The description of the bug:
"After switching RSELx bits (located in register BCSCTL1) from a value of >13 to a value of <12 OR from a value of <12 to a value of >13, the resulting clock delivered by the DCO can stop before the new clock frequency is applied. This dead time is approximately 20 us. In some instances, the DCO may completely stop, requiring a power cycle.

Furthermore, if all of the RSELx bits in the BSCTL1 register are set, modifying the DCOCTL register to change the DCOx or the MODx bits could also result in DCO dead time or DCO hang up."

In Contiki code for msp430f2xxx @ 8MHz, the RSEL search currently typically goes from 15 down to 11, thus violating the rules.

Step-by-step RSEL change is proposed as the best possible workaround:
"[..] more reliable method can be implemented by changing the RSEL bits step by step in order to guarantee safe function without any dead time of the DCO."

Problem #3. The old Contiki code started from the highest possible calibration values: RSEL=15, DCOx=7. According to MSP430F2617
datasheet, this means that the DCO frequency is set to 26 MHz. For one, Vcc under 3V is not supported for this frequency, so this means that battery-powered nodes have a big problem. The minimal operating voltages are:
- 1.8V for RSEL <= 13
- 2.2V for RSEL = 14
- 3.0V for RSEL = 15
So the correct way is to always start calibration from RSEL <= 13, unless explicityly pre-calibred values are present.

Problem #4. Timer B should be turned off after the calibration, following the "Principles for Low-Power Applications" in MSP430 user's Guide.

The patch fixes these issues by performing step-by-step calibration and turning off Timer B afterwards. As opposed to MSP430F1xxx calibration, this algorithm does not change the ACLK divider beforehand; attempts to make calibration more precise would lead to looping in some cases, as the calibration step granularity at larger frequencies is quite big.

Additionally, the patch improves DCOSYNCH_CONF_ENABLED behavior, allowing the resynchronization to correct for more than one step.
2014-03-25 11:47:13 +01:00
Adam Dunkels
d53ba5aa3c The TCP socket API code 2014-03-24 08:42:28 +01:00
Adam Dunkels
d1d82eb179 The UDP socket API code 2014-03-24 08:42:13 +01:00
Adam Dunkels
5b1a9f5bc2 Bugfix: when a packet is sent by the RDC layer, we should count the number of transmissions made because a single callback can pertain to multiple transmissions at the RDC layer. 2014-03-24 08:36:18 +01:00
Ian Martin
336224633a Eliminate UART_CONF_IBRD and UART_CONF_FBRD. 2014-03-22 10:26:03 -04:00
Ian Martin
ee45fc7533 Change uart_set_baudrate() to a do-while statement. 2014-03-22 10:22:11 -04:00
Ian Martin
1ceb8ae358 Fix rounding error in baudrate calculation. 2014-03-22 10:21:54 -04:00
Oliver Schmidt
77ef1f08b2 Merge pull request #603 from mmuman/native-platform-ctk-module
native: Add CTK to the module list
2014-03-22 10:37:12 +01:00
François Revol
726bdd699a native: Add CTK to the module list
It is needed for apps compiled WITH_GUI.
2014-03-21 23:01:02 +01:00
Fredrik Österlind
d8f76a346d Merge pull request #600 from cmorty/pull/cooja-also-remove-uninitialized-mote
Cooja: Also remove uninitialized motes
2014-03-21 08:33:44 +01:00
Moritz 'Morty' Strübe
50fe1e7046 Also remove uninitialized motes 2014-03-20 14:51:05 +01:00
Nicolas Tsiftes
b78eb96a54 Merge pull request #590 from g-oikonomou/native-rpl-module
Include the RPL module for the native platform
2014-03-18 12:32:56 +01:00
Adam Dunkels
ce4bb5360b Merge pull request #364 from g-oikonomou/multicast-push
Add Support for IPv6 Multicast
2014-03-18 10:11:11 +01:00
Oliver Schmidt
f5700868cd Merge pull request #597 from oliverschmidt/master
Updated cc65 URL and added info on W5100 driver.
2014-03-15 17:49:10 +01:00
Oliver Schmidt
d1d6278f42 Added info on W5100 driver. 2014-03-15 16:56:08 +01:00
Oliver Schmidt
370650baa3 Updated cc65 URL. 2014-03-15 16:55:39 +01:00
Ian Martin
e3c19714d4 cc2538: Support any UART baudrate. 2014-03-14 16:06:24 -04:00
Nicolas Tsiftes
0a229a260d Merge pull request #589 from g-oikonomou/nuke-indent
Nuke indent
2014-03-13 19:30:05 +01:00
Fredrik Österlind
69e16a4c79 Merge pull request #588 from ejoerns/pull-req/cooja-conf-doublesky
[Cooja/mspsim] Remove duplicate sky mote from cooja.config
2014-03-10 10:27:04 +01:00
George Oikonomou
4704eeb919 Include the RPL module for the native platform 2014-03-09 03:29:43 +00:00
George Oikonomou
6dc9dfa6c2 Merge pull request #551 from JelmerT/feature-cc2538-bsl
CC2538 serial boot loader python script
2014-03-09 02:11:36 +00:00
George Oikonomou
5675e688a8 Merge pull request #562 from Noolitic/CC2538_UART
CC2538: add support for UART baudrate 9600, 38400 and 57600
2014-03-08 23:41:52 +00:00
George Oikonomou
7318f3fe3d Fix a typo 2014-03-08 23:25:08 +00:00
George Oikonomou
cbdd7f2f09 Remove GNU indent tools 2014-03-08 23:25:08 +00:00
George Oikonomou
24c503c726 Merge pull request #584 from lab11/cc2538-ieee-addr
CC2538: add secondary location to ieee address
2014-03-08 23:15:23 +00:00
Enrico Joerns
418c51a7d5 [cooja/mspsim] a single sky mote in cooja.config should be sufficient 2014-03-08 01:18:07 +01:00
Nicolas Tsiftes
9ce285f8c0 Merge pull request #582 from nvt/coffee-file-end-fix
Make sure that Coffee updates the file end after a micro log write.
2014-03-07 23:36:17 +01:00
Jelmer Tiete
8e69f65e1a Added the cc2538-bsl submodule to the tools dir 2014-03-07 15:44:29 +01:00
Jelmer Tiete
34e48f4233 Added bootloader backdoor configuration for cc2538DK in contiki-conf.h and selector in startup-gcc.c. Updated Makefile.cc2538dk to support direct uploading. Also updated the platform readme to include the workflow with cc2538-bsl. 2014-03-07 15:44:08 +01:00
Brad Campbell
d14f0d5eed CC2538: add secondary location to ieee address
The CC2538 currently has two addressing options: a hardcoded address set
at compile time or the address stored in primary address section of the
info page. This commit adds the option to choose the secondary location
of the ieee address from the info page, or any memory address.

To use, define `IEEE_ADDR_CONF_USE_SECONDARY_LOCATION` in `project-conf.h`
or similar.

For example:

    #define IEEE_ADDR_CONF_USE_SECONDARY_LOCATION 1
2014-03-06 10:31:30 -05:00
George Oikonomou
e044fa5cab Factor out multicast stats 2014-03-05 21:04:50 +00:00
George Oikonomou
cc41efaadd Update regression sims to org.contikios 2014-03-05 20:31:19 +00:00
George Oikonomou
54b55e96c4 Check Tactive irrespective of suppression 2014-03-05 20:31:19 +00:00
George Oikonomou
9f4cdab1fb Don't advertise datagrams older than Tactive 2014-03-05 20:31:19 +00:00
George Oikonomou
775928fa3f Improve sliding window inclusion in ICMPv6 messages
Don't include a sliding window in the ICMPv6 datagram
unless the window has at least one active datagram
associated with it
2014-03-05 20:31:19 +00:00
George Oikonomou
7fb99ed7c2 Point to the correct trickle param 2014-03-05 20:31:18 +00:00
Adam Dunkels
38a0c867f2 Don't wait for a specific packet (which may not arrive) - instead, wait for any packet to arrive. 2014-03-05 20:31:18 +00:00
Adam Dunkels
925f98728f Simple regression test for the IPv6 multicast code with 32 nodes (31 hops) in a line configuration 2014-03-05 20:31:18 +00:00
Adam Dunkels
a05d68a0fa Simple regression test for the IPv6 multicast code with 12 nodes (11 hops) in a line configuration 2014-03-05 20:31:18 +00:00
Adam Dunkels
d397e97e74 Minor code style fixes 2014-03-05 20:31:18 +00:00
George Oikonomou
55f1f01a98 Multicast compile regression tests 2014-03-05 20:31:17 +00:00
George Oikonomou
0bbb574689 IPv6 Multicast Example 2014-03-05 20:31:17 +00:00
George Oikonomou
230881df44 Multicast README 2014-03-05 20:31:17 +00:00
George Oikonomou
226701b098 Implement multicast engine hooks in the uIPv6 core
- init()
  - process incoming multicast datagram
  - Pass ICMPv6 trickle messages to the engine
2014-03-05 20:31:16 +00:00
George Oikonomou
151533b9bc Implementation of the Trickle multicast engine 2014-03-05 20:31:16 +00:00
George Oikonomou
6f3a1eb032 Implementation of the SMRF multicast engine 2014-03-05 20:31:16 +00:00