Commit graph

9250 commits

Author SHA1 Message Date
George Oikonomou eed1352282 Fix CC2538 random_init lockup
Contiki sometimes fails to boot correctly and locks up in
random_init()

This problem only manifests itself for specific versions
of the arm-gcc toolchain and then again only for specific
levels of optimisation (-Os vs -O2, depending on the
value of the SMALL make variable)

The lockup is caused when we write an RFCORE XREG before
the RF clock ungating has taken effect, which in turn
only occurs depending on the assembly generated for those
two instructions:

  REG(SYS_CTRL_RCGCRFC) = 1;

  REG(RFCORE_XREG_FRMCTRL0) = 0x00000008;

This commit makes the RNG wait for the ungating to take
effect before attempting to write the register
2014-04-13 14:38:00 +01:00
George Oikonomou 33abe26ec8 Merge pull request #411 from ADVANSEE/cc2538-adc
cc2538: Add adc driver and example
2014-04-13 03:05:12 +01:00
George Oikonomou 22554e6d72 Merge pull request #596 from hexluthor/cc2538-uart-baudrate
cc2538: Support any UART baudrate.
2014-04-13 02:51:58 +01:00
Fredrik Österlind dbb8f3ec13 Merge pull request #626 from ejoerns/pull-req/cooja-vis-advanced
[Cooja] plugins/Visualizer: Multi-mote selection functionality
2014-04-11 09:57:37 +02:00
Enrico Joerns ad0e192d84 [cooja] plugins/Visualizer: Replaced multiple if-string with switch over
strings
2014-04-11 09:23:30 +02:00
Enrico Joerns cef3c4079d [cooja] Reformatted Visualizer and skins code 2014-04-11 09:23:28 +02:00
Enrico Joerns ea979fa027 [cooja] plugins/Visualizer: Use more specific catches and multi-catches
if possible
2014-04-11 09:20:53 +02:00
Enrico Joerns 84b687efeb [cooja] Automated code updates that do not make any functional changes
- made loggers final
- added some diamond interface cosmetic
- shortened if-return statements
- replaced size == 0 check with .isEmpty()
2014-04-11 09:20:52 +02:00
Enrico Joerns 6e9b0e1497 [cooja] Added @Override annotations for Visualizer and skins 2014-04-11 09:20:52 +02:00
Enrico Joerns 8e648bcece [cooja] apps/mrm: Adapted MRM visualizer skin to show adequate
information for multi-selections
2014-04-11 09:20:52 +02:00
Enrico Joerns e69b08f5fd [cooja] plugins/skins: Adapted DGRM and UDGM visualizer skins to show
adequate information for multi-selections
2014-04-11 09:20:46 +02:00
Enrico Joerns ac61c45950 [cooja] plugins/Visualizer: Updated quick help to match new control
capabilities
2014-04-11 09:05:53 +02:00
Enrico Joerns 22ac769781 [cooja] plugins/Visualizer: Multi-mote selection functionality
This adds multi-mote selection capabilities to the visualizer plugin:

- [Ctrl + Mouse Drag]: Rectangular selection of multiple motes
- [Ctrl + Mouse Click]: Add/Remove motes from current selection
- Mouse Drag on any selected Mote: Move all currently selected motes

Note: This changes previous behaviour of using Ctrl key.
2014-04-11 09:05:38 +02:00
Oliver Schmidt ea2c407aeb Merge pull request #627 from ejoerns/pull-req/git-relstr-fix
Makefile.include: Fix git version string generation for external projects
2014-04-09 22:20:47 +02:00
Nicolas Tsiftes 3829860c3c Merge pull request #620 from adamdunkels/push/socket-api
New TCP and UDP socket APIs
2014-04-09 22:12:59 +02:00
Adam Dunkels 1075effa22 Include udp-socket.h and tcp-socket.h by default in all applications that include contiki-net.h 2014-04-09 22:01:18 +02:00
Adam Dunkels 367eed96f4 Add a compile test for the tcp-socket example 2014-04-09 22:01:18 +02:00
Adam Dunkels ca5652d981 TCP socket server example 2014-04-09 21:57:05 +02:00
Nicolas Tsiftes 1b49b68c3b Merge pull request #606 from atiselsts/master
Fix MCU clock calibration in msp430f2xxx based platforms (e.g. Zolertia Z1)
2014-04-09 21:52:08 +02:00
Enrico Joerns 29894bbdfa Makefile.include: Setting RELSTR based on git tags requires to be in
the contiki directory
2014-04-09 19:11:35 +02:00
Nicolas Tsiftes a7dbf46b8e Merge pull request #608 from nvt/rpl-fixes
Minor RPL improvements
2014-04-07 11:13:38 +02:00
George Oikonomou 1d690995f6 Merge pull request #576 from nkigen/patch-2
New MACRO for creating jsontree_array
2014-04-04 09:13:31 +01:00
Fredrik Österlind d387f27a65 Merge pull request #610 from nfi/mspsim-auto-compile
Autocompile MSPSim and warn if submodule is not initialized.
2014-04-02 16:06:25 +02:00
Nicolas Tsiftes 429024f0a1 Merge pull request #609 from adamdunkels/push/csma-fix
CSMA bugfix: count transmissions correctly
2014-03-28 17:27:30 +01:00
Nicolas Tsiftes 0a202d3952 Cleaned up some of the comments and output strings. 2014-03-28 13:38:52 +01:00
Nicolas Tsiftes afbb82030e Ensure that the objective function's reset function is called at least once. This will enable the objective function to initialize itself during run-time. 2014-03-28 13:38:52 +01:00
Niclas Finne 279b7fd040 Added rule to autocompile mspsim if needed and show warning if submodule MSPSim has not been initialized 2014-03-28 11:11:51 +01:00
Oliver Schmidt c2db3a1a14 Merge pull request #607 from oliverschmidt/master
Removed unused variable.
2014-03-27 22:24:57 +02:00
Oliver Schmidt a630fbd5da Removed unused variable. 2014-03-27 19:24:23 +01:00
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