adamdunkels
e34eb54960
A work-in-progress rework of the Contiki MAC and radio layers. The
...
main ideas are:
* Separates the Contiki low-layer network stack into four layers:
network (e.g. sicslowpan / rime), Medium Access Control MAC
(e.g. CSMA), Radio Duty Cycling RDC (e.g. ContikiMAC, X-MAC), and
radio (e.g. cc2420).
* Introduces a new way to configure the network stack. Four #defines
that specify what mechanism/protocol/driver to use at the four
layers: NETSTACK_CONF_NETWORK, NETSTACK_CONF_MAC, NETSTACK_CONF_RDC,
NETSTACK_CONF_RADIO.
* Adds a callback mechanism to inform the MAC and network layers about
the fate of a transmitted packet: if the packet was not possible to
transmit, the cause of the failure is reported, and if the packets
was successfully transmitted, the number of tries before it was
finally transmitted is reported.
* NULL-protocols at both the MAC and RDC layers: nullmac and nullrdc,
which can be used when MAC and RDC functionality is not needed.
* Extends the radio API with three new functions that enable more
efficient radio duty cycling protocols: channel check, pending
packet, and receiving packet.
* New initialization mechanism, which takes advantage of the NETSTACK
#defines.
2010-02-18 21:48:39 +00:00
joxe
3a2eec2b1a
fixed ext-sensor for jcreate
2010-02-13 11:20:48 +00:00
adamdunkels
6414bf3a55
Enabled sicslowpan fragmentation and reassembly by default on the sky platform
2010-02-08 22:12:29 +00:00
nifi
978d383395
Corrected include path
2010-02-08 00:02:39 +00:00
joxe
1da7c3eccd
convert registers upto 9 instead of upto 4
2010-02-06 18:28:26 +00:00
adamdunkels
3717c39431
Updated the ext-sensor to use the new sensor API; patch by Jesper Karlsson
2010-02-06 14:41:24 +00:00
adamdunkels
aaab082f27
Correctly print out the aaaa: address, if enabled
2010-02-06 10:00:49 +00:00
adamdunkels
37f7770bd8
Made it possible to override the SICSLOWPAN_CONF_FRAG option. Increased the default uIP buffer size on IPv6 to provide some room for fragmented packets
2010-02-06 10:00:25 +00:00
nifi
18f5ef71f0
added missing include
2010-02-03 20:30:07 +00:00
adamdunkels
a9c742402c
Use cxmac for IP, xmac for non-IP. Increased uIP buffer size for IPv6 to accomodate ICMP packets
2010-02-03 16:48:04 +00:00
adamdunkels
f9e991c0dd
Turning of the MAC protocol in the IPv4-over-mesh actually made performance worse due to broadcasts being received multiple times, which interfered with SLIP I/O
2010-02-03 01:20:47 +00:00
joxe
09c3ba2753
minor cleanup
2010-02-02 21:17:44 +00:00
joxe
fd4aebdf7f
refactored some ADC code into sky-sensors and made it possible to turn off sensors to save energy
2010-02-02 20:59:45 +00:00
adamdunkels
88fb1c80c9
Do not activate the sensors by default: sensors should be activated by the applications that need them
2010-02-02 16:25:30 +00:00
adamdunkels
d0d52638b8
Disable (debugging-) initialiation of aaaa:: address; add CSMA MAC for IPv6/6lowpan
2010-02-01 11:55:04 +00:00
adamdunkels
f63f6a7a88
Added default configuration options for the cxmac driver
2010-01-31 18:48:41 +00:00
adamdunkels
ba2c445676
Reduce the TCP MSS so that it runs nicely over IPv6/802.15.4
2010-01-28 13:38:40 +00:00
adamdunkels
5922402b3e
Added the CSMA MAC mechanism on top of the default duty cycling
...
mechanism X-MAC. The CSMA is configurable with a MAC_CSMA define, just
like the MAC protocol is configurable with the MAC_DRIVER define.
2010-01-25 11:48:16 +00:00
adamdunkels
11362d0489
Remove the default list of sensors from the main() file to save space - those apps that need them can use them directly in any case
2010-01-21 11:17:08 +00:00
nifi
c9a48aa752
Updated to match the new sensors API
2010-01-15 21:37:15 +00:00
nifi
467df8ad4c
reverted accidental commit
2010-01-14 22:26:38 +00:00
nvt-se
d2655eac7a
make watchdog management slightly more abstract to simplify porting
2010-01-14 21:16:58 +00:00
adamdunkels
46753473fa
Added constants for light sensor values
2010-01-14 20:23:02 +00:00
adamdunkels
9ae29c3be5
Added light, sht11, battery sensors; restored light and battery activation since rtimers don't work without them (at present)
2010-01-14 20:18:23 +00:00
adamdunkels
bb63085f60
Added SHT11 sensor API for Tmote Sky
2010-01-14 20:16:52 +00:00
nifi
dbe56e4666
Updated to match the new sensors API
2010-01-14 20:01:18 +00:00
joxe
3c0dcb45c7
fixed for updated sensors API
2010-01-14 15:50:13 +00:00
joxe
31ea888b75
fixed Sky platform for new sensor APIs
2010-01-14 14:00:38 +00:00
joxe
4a3953204f
changed sky sensors to new api
2010-01-14 13:53:06 +00:00
adamdunkels
e3fed27f4a
Broke out the CC2420 SFD interrupt into a separate file to allow easier overloading with project-specific files
2009-12-05 19:42:56 +00:00
nifi
bb0ffe0478
moved rime initialization into rime router so it is easier to switch IPv6 routing module
2009-11-18 13:51:55 +00:00
adamdunkels
d3131e1811
Print link-local IPv6 address when booting the node
2009-10-29 22:10:59 +00:00
adamdunkels
f03caa357e
Allow reprogramming invidual nodes with 'make file.upload MOTE=x' where x is the mote number just like with make login
2009-10-29 22:10:21 +00:00
fros4943
99a540fd0d
macro renamed to SPI_IS_ENABLED() to avoid confusions
2009-10-27 15:33:24 +00:00
fros4943
6b36cd9de9
added macro for checking whether SPI is ENABLED
2009-10-27 15:25:02 +00:00
adamdunkels
29e8dae88c
Added X-MAC support for IPv6/SICSlowpan nodes, added 802.15.4 default framing to X-MAC
2009-10-19 20:55:52 +00:00
adamdunkels
79d7c366a3
Rime polite announcements should be used when IPv6 is enabled, and not used otherwise
2009-10-18 07:15:33 +00:00
nifi
d4b619bcc5
Renamed SPI_WAITFOREOTxBUF to SPI_WAITFORTxREADY for clarity and generalized SPI transmission status checks to work with both AVR and MSP430
2009-09-07 11:31:26 +00:00
nifi
3a8ee769cb
Changed to monitor the UART transmitter buffer ready flag instead of the UART transmitter empty flag. This almost doubles the speed of transmitting data to CC2420. Patch by James Brown.
2009-08-31 12:06:34 +00:00
nvt-se
ebd91b9f9d
Removed deprecated dir cache macro.
2009-08-30 20:36:32 +00:00
adamdunkels
b71faae330
ext-sensor: new driver for external sensors (e.g. Phidgets) on the Sentilla JCreate, developed by Marcus Lunden
2009-08-25 16:24:49 +00:00
nvt-se
b0431cc688
removed obsolete offset type definitions.
2009-07-13 20:02:16 +00:00
nvt-se
1e0ca9ceac
Made the use of micro logs configurable to make file modifications
...
more efficient on storage types that support inline updates.
The sky platform uses logs, and the native platform uses no logs.
2009-06-29 13:30:16 +00:00
nifi
05d4bc4532
allow UIP_CONF_ROUTER to be set as compilation flag
2009-06-29 09:54:39 +00:00
joxe
1cc33ac451
configured routing to off for sky-IPv6
2009-06-26 12:01:23 +00:00
joxe
e16d4b0f06
fixed IPV6 flags for sky
2009-06-26 12:00:49 +00:00
nvt-se
b912a41ea3
use polite announcements when running Rime over UDP.
2009-06-24 16:44:26 +00:00
nifi
912aba7280
added init function in MAC driver for easier configuration
2009-06-22 11:14:11 +00:00
fros4943
d54176205c
decreased default elfloader memory usage for sky platform
2009-05-18 10:32:56 +00:00
adamdunkels
bc6c9410cc
Print out the gateway's IP address more prominently
2009-05-12 17:32:49 +00:00
nvt-se
74e9bc8789
Added flash reads and writes to energest.
2009-05-11 15:26:24 +00:00
adamdunkels
900480959b
Increased the default number of queue buffers: there usually is plenty of RAM left, so we should be able to afford it
2009-05-10 21:15:16 +00:00
joxe
6a7bc4c3a5
added mcu-chip temperature to accelerometer sensor - value 3
2009-05-08 16:03:50 +00:00
adamdunkels
e6215712ca
When a node is configured as an IP gateway, we switch off the power-saving MAC protocolto improve performance and to avoid problems with the serial communication that X-MACs use of rtimers can cause
2009-04-29 11:46:20 +00:00
adamdunkels
064f4488d4
Increase default CPU speed from 2.4576 MHz to 3.9 MHz. Communication works better, at a low power cost
2009-04-29 11:43:48 +00:00
adamdunkels
bbab7ba55c
When the tmote-bsl binary is found, program only one mote at once (parallel programming with tmote-bsl doesn't seem to work)
2009-04-29 11:42:56 +00:00
fros4943
bc6704079c
cc2420 checksums temporarily disabled, due to timing problems with the x-mac unicast optimization
2009-04-16 14:34:51 +00:00
adamdunkels
2e37fca49f
Check for tmote-bsl-linux binary under linux, and use it is available
2009-04-10 07:43:29 +00:00
adamdunkels
2545fd9069
Hack to make DS2411 ID useable as an Ethernet MAC address (remove multicast bit)
2009-04-10 00:40:08 +00:00
adamdunkels
3415ff26bd
Added CC2420 checksums to non-ipv6 packets. Set a conservative TCP MSS
2009-04-10 00:39:19 +00:00
nifi
b41b79e3a9
Disable timestamp when using 802.15.4 frames (CC2420_CONF_TIMESTAMPS adds timestamp to radio packets).
2009-04-06 17:18:20 +00:00
nifi
900d8d8e17
changed to use HC01 compression for uip6
2009-04-06 16:01:11 +00:00
nifi
8b41f3a6a8
set rime addr size to 8 for uip6, restored clock resolution
2009-04-06 14:59:49 +00:00
nifi
76b7bf43d0
added setup for uip6 with 802.15.4 frames and routing using Rime
2009-04-06 14:12:58 +00:00
nifi
a36e529df1
added configuration for panid
2009-04-06 13:31:00 +00:00
nvt-se
f53560f6a5
enabled multihop routing, increased uip buffer size.
2009-04-06 13:23:14 +00:00
nifi
c1d490b6a7
added workaround for memcpy/memset bug in mspgcc
2009-04-06 13:07:37 +00:00
adamdunkels
58331e6802
Made tick resultion more fine-grained to support a shorter LPP listen time
2009-04-03 11:46:48 +00:00
fros4943
b730fb329d
changed upload rules due to problems on linux platforms
2009-04-02 11:15:30 +00:00
nifi
c6b15c289e
* show radio channel at startup
...
* only initialize timesynch when timesynch is enabled
2009-03-31 13:25:50 +00:00
fros4943
ac22ad5081
changed the Makefile rules for uploading to sky-nodes.
...
the earlier approach caused problems sometimes, resulting in command succeeding without all nodes being reprogrammed
2009-03-26 13:29:44 +00:00
adamdunkels
0076bfe8a5
Changed the name of the 'serial' module to 'serial-line' to signify that the module is about lines of data from the serial port, not individual bytes, and to make sdcc happy
2009-03-17 15:56:32 +00:00
adamdunkels
65eb5fd4e8
Renamed the rimebuf module to packetbuf to signal that the module is used outside of a pure Rime context (e.g., the sicslowpan code uses it).
2009-03-12 21:58:20 +00:00
julienabeille
0395ff5f39
sicslowpan Typo
2009-03-09 08:19:07 +00:00
adamdunkels
e3043b1be2
Enable communication power accounting for xmac by default
2009-03-01 20:43:37 +00:00
adamdunkels
ac9ab9c582
#include lib/random.h
2009-03-01 20:42:10 +00:00
nvt-se
47d70f2ae3
Switched name to CFS_CONF_OFFSET_TYPE to emphasize that it is a configurable option.
2009-03-01 12:00:00 +00:00
nvt-se
b47221672a
switched cfs offset type to signed long to allow backward movements with cfs_seek.
2009-02-28 13:41:16 +00:00
nvt-se
9f8f773b43
use unsigned long as cfs offset type.
2009-02-27 14:53:15 +00:00
adamdunkels
d761dfebd1
Bugfix: reduced the size of the uIP buffer to account for MAC header space
2009-02-25 10:23:03 +00:00
adamdunkels
7781bbea58
Enabled X-MAC announcements by default, disabled polite broadcast announcements by default
2009-02-14 22:52:24 +00:00
adamdunkels
585620c102
Reverted the recent change from random_rand() to rand(). It turned out that
...
since libc rand() returns a signed int, there were frequently problems with
timer values wrapping. By reverting to random_rand(), we can provide a
random generator that returns an unsigned and the timer problems are solved.
2009-02-11 11:08:53 +00:00
fros4943
f1fc4c879f
cfs_coffee_get_fd_set() was renamed
2009-02-09 10:09:13 +00:00
nvt-se
d0a546b049
A long refactoring session yielded the following.
...
Technical changes:
* Factored out file specific information from the file descriptor
structure into a new file structure.
- Useful file metadata can be stored after the file is closed.
- File descriptors become much smaller.
- Significantly reduces the need to scan for the file end.
* Use correct types in all function signatures.
* Removed the directory cache.
Results:
* Enormous speed increase when opening cached files (10x-20x.)
* Multiple fd:s pointing to the same file have the correct semantics.
* About 100 bytes smaller ROM size.
* Slightly smaller static RAM size.
2009-02-08 17:08:13 +00:00
adamdunkels
440899e4cb
Seed rand() with the node ID + MAC address
2009-02-07 16:49:36 +00:00
adamdunkels
5cf0c25ca6
A few more minor fixes
2009-02-04 20:58:05 +00:00
adamdunkels
96882c402a
Fixed conformance to Contiki code style :)
2009-02-04 20:55:41 +00:00
joxe
9689a579be
added DCO/CPU speed re-synch each 30 seconds
2009-02-04 19:32:20 +00:00
fros4943
c16921f108
checkpointing library implemented for the sky platform (cfs interface is currently not optimized)
2009-02-04 17:51:49 +00:00
joxe
e5f0d786a8
fixed sky platform to use the new uart1_active api to avoid messing up last chars transmitted
2009-01-31 12:45:03 +00:00
fros4943
603740b13b
removed compiler warning by returning 0 at undefined value
2009-01-23 17:08:17 +00:00
fros4943
ebcaf8eec8
removed compilation warning due to unused is_gateway variable (outside uIP mode)
2009-01-19 13:44:04 +00:00
adamdunkels
e70b45c102
Updated to make use of the tmote-bsl instead of msp430-bsl (needed for the Sentilla JCreate) if it exists
2009-01-15 22:12:46 +00:00
adamdunkels
29fe3d8741
Added acc-sensor.c, dDriver for the acceleromenter sensors on the Sentilla JCreate board
2009-01-15 21:07:03 +00:00
adamdunkels
9f0006fde0
Driver for the acceleromenter sensors on the JCreate board
2009-01-15 21:06:02 +00:00
fros4943
5f3c1a0e12
elfloader executing loaded programs from ram (not rom) by default on msp430 platforms.
2009-01-15 09:04:04 +00:00
joxe
55280131fc
added printout of MAC protocol name
2008-11-24 14:31:08 +00:00
fros4943
720357bc60
added log_message() implementation
2008-11-21 10:35:46 +00:00
adamdunkels
83155d48f9
Moved the network gateway logic to the uip-over-mesh module.
2008-11-09 12:22:04 +00:00
nvt-se
0c4f7bed8f
temporary fix to get sicslowpan.c working on the Sky platform:
...
conventional MAC implementations require a call to the MAC driver's
read function.
2008-11-06 20:45:06 +00:00
nvt-se
21e4b4be80
map rime address to mac address for ipv6
2008-11-06 15:14:24 +00:00
nvt-se
c5d9795f92
added initialization for uip6
2008-11-05 15:34:04 +00:00
nvt-se
d1d09ea1fd
added IPV6 configuration.
2008-11-05 14:31:06 +00:00
nvt-se
aff141f56e
reduced default sizes
2008-10-09 14:56:53 +00:00
nvt-se
10639bc982
use abstract types for offsets and pages so that we can easily port it to
...
very large or small memories.
2008-10-03 19:27:28 +00:00
joxe
1a1ddd0bd5
removed energest-arch from sky and esb platforms
2008-09-29 12:38:18 +00:00
joxe
5b1c229754
fixed battery sensor for sky platform
2008-09-18 21:29:06 +00:00
joxe
5d860b1df2
changed sleep to go into LPM3
2008-09-18 17:58:21 +00:00
joxe
8aa8e26c54
removed redundant sensor initialization, added comment
2008-09-14 20:47:30 +00:00
nvt-se
2b68f88e77
moved platform independent definitions
2008-07-11 21:39:26 +00:00
nvt-se
e8a85b3726
moved platform independent code to the right place
2008-07-11 21:35:10 +00:00
adamdunkels
8e5d255b5b
Moved initialization of the SHT11 until after other initialization: this seems to fix a bug where the SHT11 temperature and humidity values started varying wildly.
2008-07-08 08:23:24 +00:00
adamdunkels
84e4bf7a15
Changed order of initialization to make light sensors work again: a previous change to irq.c seems to have conflicted with light sensor initialization
2008-07-07 23:44:58 +00:00
adamdunkels
64b6663b11
moved energest from lib/ to sys/
2008-07-03 23:59:20 +00:00
adamdunkels
51f4ab8b2c
Changed type from off_t (that potentially conflicts with existing types.h typedefs) to unsigned long
2008-07-03 23:12:10 +00:00
adamdunkels
28331191b3
Changed name of simple-cc2420 to cc2420
2008-07-02 09:38:06 +00:00
adamdunkels
66876625d4
Changed name of the simple-cc2420 module to cc2420: changed all function names and variable names from simple_cc2420_* to cc2420_*.
2008-07-02 09:05:40 +00:00
adamdunkels
dafa1d89a2
Added cc2420-aes.c (functions for interfacing the build-in AES support of the CC2420)
2008-07-02 08:47:05 +00:00
adamdunkels
1586d8f36f
Changed filename of the CC2420 driver from simple-cc2420 to cc2420.
2008-07-01 21:02:51 +00:00
adamdunkels
d134a1fcb1
Moved sky-specific make targets from the tools/sky/Makefile to the more natural platform/sky/Makefile.sky. Added a number of convenient targets for accessing the serial port.
2008-05-29 20:15:49 +00:00
adamdunkels
1263eb8455
Moved old unused files to backyard
2008-05-27 13:16:34 +00:00
adamdunkels
8b4179cf45
Moved ctimer_init() so that MAC protocols can use ctimers in their initialization code
2008-05-19 12:07:49 +00:00
adamdunkels
31ea41d8db
Changed the name of UIP_CONF_TCP_FORWARD to UIP_CONF_IP_FORWARD since forwarding is done at the IP level
2008-05-14 19:19:28 +00:00
nvt-se
776f377a69
Configuration for the Sky platform.
2008-04-28 10:34:33 +00:00
adamdunkels
c38d43c387
Change order of initialization so that Rime is initialized before uIP-over-Rime. Send out a new gateway command if a spurious (erroneous) gateway command is received. (Note for the future: this will cause a ping-pong problem with two correct gateways in the network; need to come up with a better solution for this.)
2008-03-03 20:23:53 +00:00
fros4943
3b5fa2d8e5
added 5 second delay before actually burning the node id (may otherwise cause problems with the .upload script)
2008-02-25 16:34:56 +00:00
adamdunkels
412facb831
This is an initial commit of an implementation of the Chameleon
...
architecture for the Rime stack for Contiki. The Chameleon
architecture separates the header processing from the Rime protocol
logic. Instead of having each protocol create its own part of the
packet header, protocols use packet attributes. Before sending a
packet, a special Chameleon header processing module creates a packet
header from the packet attributes. The same Chameleon module parses
incoming packets and creates packet attributes from the header.
The details are in our SenSys 2007 paper:
Adam Dunkels, Fredrik Osterlind, Zhitao He. An Adaptive Communication
Architecture for Wireless Sensor Networks. In Proceedings of the Fifth
ACM Conference on Networked Embedded Sensor Systems (SenSys 2007),
Sydney, Australia, November 2007.
http://www.sics.se/~adam/dunkels07adaptive.pdf
This is a rewrite of the code that was developed for the paper.
2008-02-25 02:14:34 +00:00
adamdunkels
9c57e5e272
Moved old Makefile (non-working) from platform/sky to backyard/platform/sky
2008-02-24 22:22:17 +00:00
adamdunkels
307fc41646
Detect if node is attached to a SLIP line to set node to become the network's gateway
2008-02-24 21:13:03 +00:00
adamdunkels
5bcd0ab60b
Reduced uIP buffer size to allow for TCP data over Rime mesh routing protocol
2008-02-24 21:11:35 +00:00
adamdunkels
6740d95bfa
Initialize serial line with 115200 bps for SLIP
2008-02-11 10:44:12 +00:00
adamdunkels
fbcf9b6fcf
Disable watchdog while burning node ID
2008-02-11 10:43:47 +00:00
adamdunkels
8058a49d21
Code style fix
2008-02-11 10:43:31 +00:00
adamdunkels
cb6bc45350
Added code for routing IP packets over low-power radios using the Rime mesh module
2008-02-03 21:03:19 +00:00
adamdunkels
dc43a9713d
Added uIP destimation unreachable message, removed defailt XMAC timer definitions (for now), turned profiling off(for now), added process event number configuration, reduced data memory size for the ELF loader
2008-02-03 21:01:36 +00:00
adamdunkels
68523814c5
Moved from examples/sky into generic platform/sky/apps so that all examples can use it
2008-01-23 20:34:37 +00:00
adamdunkels
c2ef303c24
Updated for the new simple_cc2420 API
2008-01-23 14:58:01 +00:00
nvt-se
6005437b27
Disable the watchdog during the whole erase operation.
2008-01-21 10:40:26 +00:00
nvt-se
bed0963769
Call watchdog_periodic before erasing each sector, because this operation
...
takes approximately 1s.
2008-01-21 10:28:44 +00:00
adamdunkels
685de41feb
Fixed buggy build
2008-01-19 06:57:44 +00:00
adamdunkels
34bd11905c
Rewrote the timesynch code to use the Rime sniffer interface instead of the kludge of running timesynch as a MAC layer
2008-01-14 14:50:01 +00:00
adamdunkels
02ee418313
Moving timesynch.[ch] from sys/ to core/net/rime as they have more to do with Rime than with the kernel
2008-01-14 14:22:16 +00:00
adamdunkels
f935be10c9
Added initalization of the serial library. Changed LPM3 to LPM2 since the current serial driver does not work with LPM3 yet (we need to add start edge detection interrupt support to fix that).
2008-01-08 08:21:03 +00:00
adamdunkels
690805ebe7
Added configuration for upcoming shell improvements, removed PROCESS_CONF_FASTPOLL
2008-01-08 08:19:56 +00:00
adamdunkels
959c4f3ee2
Removed ENERGEST_CONF_ON which is present in contiki-conf.h anyway
2008-01-08 08:18:00 +00:00
oliverschmidt
00d75c8d16
Made use of uip_ipaddr_to_quad().
2008-01-04 23:28:33 +00:00
nvt-se
692da8fd47
swapped the currents for lpm and cpu.
2007-12-17 18:47:17 +00:00
adamdunkels
381f5dc4cc
Initialize Rime address from hardware MAC address if no node ID has been configured. Be more explicit on how Rime address is assigned from node ID. Set time synch authority level from Rime address rather than node ID. Fix bug that put CPU in LPM2 instead of LPM3.
2007-12-17 12:35:23 +00:00
adamdunkels
2b4f33a4dd
Enabled support for CC2420 timestamps
2007-12-16 15:05:04 +00:00
adamdunkels
d13648292e
Added initialization of the time synchronization module
2007-12-16 15:03:35 +00:00