Robert Quattlebaum
9c17a542a7
avr/bootloader.c: Now compatible with bootloaders which always run first.
...
The boot loader now knows when to go into bootstrap mode by
looking for a specific EEPROM value. Also updated code style
to match Contiki code style guidelines.
2013-05-19 08:21:16 -07:00
Robert Quattlebaum
28a1e40ebd
core/lib/settings: Generalized Settings Manager to work on any platform
...
This commit moves the Settings Manager from the AVR codebase
into the Contiki core library. Any platform that implements
the Contiki EEPROM API can now use the Settings Manager's
key-value store for storing their persistent configuration info.
The Settings Manager is a EEPROM-based key-value store. Keys
are 16-bit integers and values may be up to 16,383 bytes long.
It is intended to be used to store configuration-related information,
like network settings, radio channels, etc.
* Robust data format which requires no initialization.
* Supports multiple values with the same key.
* Data can be appended without erasing EEPROM.
* Max size of settings data can be easily increased in the future,
as long as it doesn't overlap with application data.
The format was inspired by the [OLPC manufacturing data format][].
Since the beginning of EEPROM often contains application-specific
information, the best place to store settings is at the end of EEPROM
(the "top"). Because we are starting at the end of EEPROM, it makes
sense to grow the list of key-value pairs downward, toward the start of
EEPROM.
Each key-value pair is stored in memory in the following format:
Order | Size | Name | Description
--------:|---------:|--------------|-------------------------------
0 | 2 | `key` | 16-bit key
-2 | 1 | `size_check` | One's-complement of next byte
-3 | 1 or 2 | `size` | The size of `value`, in bytes
-4 or -5 | variable | `value` | Value associated with `key`
The end of the key-value pairs is denoted by the first invalid entry.
An invalid entry has any of the following attributes:
* The `size_check` byte doesn't match the one's compliment of the
`size` byte (or `size_low` byte).
* The key has a value of 0x0000.
[OLPC manufacturing data format]: http://wiki.laptop.org/go/Manufacturing_data
2013-03-20 11:57:13 -07:00
Robert Quattlebaum
67a39618eb
cpu/avr: Make sure that GCC removes all unused symbols.
...
This magic comes from the `--gc-sections` linker flag, which turns on garbage collection for unused input sections. The compiler flags `-ffunction-sections` and `-fdata-sections` make sure that each function and each static data definition have their own section. The result is that GCC can prune away all unused symbols, reducing the size of the resulting executable.
These optimizations may be disabled by setting the Makefile variable
`SMALL` to zero.
2013-02-28 21:59:19 -08:00
Nicolas Tsiftes
42e4b2b02a
Merge pull request #143 from idelamer/master
...
Bug fix for Issue #88
2013-02-24 15:26:38 -08:00
Ivan Delamer
c22838b9d3
Enable Timer1 on Raven so that interrupts coming from radio, which are
...
connected to input capture, fire again.
2013-02-15 16:08:37 -07:00
Adam Dunkels
1af22fa4fe
Removed old unused RTL8019 code that had license issues
2012-10-29 16:08:09 +01:00
Adam Dunkels
944537fccf
Removed all old RCS tags in the Contiki source tree. Those RCS tags are not used any more, as we are now using git to manage the Contiki source tree
2012-10-26 15:54:49 +02:00
Ivan Delamer
b43dad00b0
Cleaned up RF230BB, and refactored FRAME_RETRIES and CSMA_RETRIES
...
#defines.
2012-09-04 11:12:18 -06:00
Ivan Delamer
2e72ec3594
Place ATmega1281 define in correct section (it does have compare C
...
unit, avoid duplicate define and compiler warning).
2012-09-01 15:22:13 -06:00
Ivan Delamer
5636357243
Fix RF230 transition: RX_AACK_ON -> TX_ARET_ON (go through PLL_ON,
...
as per datasheet). Tested on RF230 and 128RFA1 (RF231).
2012-09-01 15:20:00 -06:00
Ivan Delamer
17a62a649c
ATmega128RFA1 bug fix: no interrupt pin used (embedded radio).
...
Enabling interrupt caused MCU reset if using pin as GPIO.
2012-07-10 14:36:47 -06:00
David Kopf
e9a55cc222
Enable check on received length to prevent buffer overflow. Thank you Cooja!
2012-05-28 13:02:23 -04:00
David Kopf
d6dc216e02
Reorder includes to prefer platform routines. Remove redundant RPL define.
2012-04-27 16:54:09 -04:00
David Kopf
cac4e9a222
Add clock_delay_us and clock_set_seconds to clock.h. Modify clock_wait to use clock_time_t.
...
Remove the troublesome avr/dev/delay.* files.
Add PLATFORM_NAME and combine the confusing *_REVISION defines into a single PLATFORM_TYPE
2012-04-09 15:49:53 -04:00
David Kopf
40bd020394
Fix wrong register addresses.
2012-04-09 09:58:12 -04:00
David Kopf
2b7ecefce7
Remove unused SPI initializer flag from AVR. Comment out in the msp-430 template.
2012-02-27 17:05:22 -05:00
Ilya Dmitrichenko
9c99d46e24
Simplified host OS platform detection in Makefiles
2012-02-25 10:09:33 -05:00
David Kopf
deb75d3d97
Several bugfixes
2012-02-21 11:14:52 -05:00
David Kopf
59e459e0e9
Add missing mtarch_stop function
2012-02-21 11:11:53 -05:00
David Kopf
6e45dfe5ff
PROGMEM changes needed for newer avr-gcc compiler
2012-02-21 11:10:57 -05:00
Nicholas J Humfrey
1cda3da17e
Converted u8_t to uint8_t and u16_t to uint16_t in the cpu directory.
2012-02-21 08:33:24 -05:00
David Kopf
987906be97
rf230bb updates: involves setting the 801.15.4 pending bit,
...
0x800000 cpu clock, and a jtag reset bugfix
2012-02-01 14:16:39 -07:00
Ivan Delamer
57e686179c
Improved rf230bb.c synchronization/locking. Removed unnecessary locks
...
during Tx (single-threaded environment). Added protection to Rx thread
from buffer access by ISR.
2012-02-01 13:37:45 -07:00
David Kopf
7ca141b457
Access uart registers directly instead of through intermediate addresses in a RAM struct.
...
Add a platform define to reduce the number of ports supported by the cpu.
2012-01-21 13:49:58 -05:00
David Kopf
58298f59db
Add F_CPU=0x800000 option with phase lock to external 32768 Hz crystal
...
Add MCU_CONF_LOW_WEAR option to avoid eeprom writes during development.
2012-01-10 12:42:27 -05:00
David Kopf
81af871db9
Bugfix: use 16 bit tick count to adjust clock after sleep
2011-12-01 09:58:55 -05:00
David Kopf
fb977cb9ef
Better fix for hardware FCS error on JTAG reset
...
Correct silly error introduced by trying to save two bytes.
2011-11-15 13:24:58 -05:00
David Kopf
31ba84eb75
Improve rf23x cca procesing
...
Fix delay_loop timing bug by using long long calculation.
128rfa1 and rf230 both working with contikimac RDC
2011-11-14 11:49:58 -05:00
David Kopf
d1cd3f213c
Add general unsupported interrupt vector suggested by Daniel Willmann
2011-11-14 11:36:18 -05:00
David Kopf
6eba721af1
Add rtimer_arch_sleep function, enabled with RDC_CONF_MCU_SLEEP
2011-11-14 11:10:35 -05:00
David Kopf
c2364897f8
atmega128rfa1 cca fixes, energest and rimestat macros.
...
Add option to return ACK to RDC layer when in extended mode, based on Georg von Zengen code.
2011-11-08 12:20:22 -05:00
David Kopf
f721f646fa
Adjust sleep time by ticks instead of seconds, proposed by Ivan Delamer
2011-09-10 12:44:49 -04:00
David Kopf
dfdae5b02b
This fixes commit 9a1ce7 for spaces instead of ....
2011-08-31 12:08:01 -04:00
David Kopf
470887eddd
Print elf size if ELF_SIZE is defined
2011-08-31 11:50:14 -04:00
David Kopf
9a1ce7cf75
Use enumerated tx return values
2011-08-31 11:40:23 -04:00
David Kopf
5f2b2074f0
Implement WITH_RPL option in makefile
2011-08-28 16:11:48 -04:00
David Kopf
bdec65b889
Fix typos and file endings
2011-08-28 16:04:36 -04:00
David Kopf
94fc40f736
Move LEDONPORTE1 define to contiki-conf.h, fixing typo.
2011-08-24 11:35:58 -04:00
David Kopf
09db159876
128rfa1 cca fix, NETSTACK_RADIO.off now returns 0/1 if radio off/on
2011-08-18 14:36:04 -04:00
David Kopf
53737d9a38
Use correct prescale factor
2011-08-18 13:58:20 -04:00
David Kopf
3ea102050b
Apply patch of Ivan Delamer for atmega1281 @ 4 MHz
2011-08-17 13:16:46 -04:00
David Kopf
36fa735323
Calculate best prescaler based on F_CPU and CLOCK_CONF_SECONDS. Inspired by patch from Ivan Delamer.
2011-08-17 13:15:26 -04:00
maniacbug
0990896f54
Added an .eu target to upload only the eeprom for AVR cpu.
2011-08-16 14:10:48 -04:00
maniacbug
8f0bb86c02
No strict aliasing for AVR
...
AVR build generates numerous aliasing errors. This -f switch silences them.
2011-08-16 14:07:06 -04:00
David Kopf
577215deca
Use 128rfa1 interrupts instead of timing.
...
Generalize DEBUGFLOW macro for use in multiple routines.
2011-08-15 15:06:38 -04:00
David Kopf
50d1086553
Add changes needed for contikimac
2011-08-13 11:38:38 -04:00
David Kopf
03ab525652
Option for nested rtimer interrupts
2011-08-13 11:35:03 -04:00
David Kopf
cdcb2c4744
CCA measurement was always returning busy
2011-08-06 13:48:52 -04:00
David Kopf
b70d2b3163
Remove duplicate code block
2011-08-05 17:34:38 -04:00
David Kopf
c9b19ce655
Change timer setups for arbitrary CLOCK_CONF_SECOND
...
Change raven to 128 ticks and enable 32KHz crystal as default.
2011-08-05 15:14:35 -04:00
David Kopf
e2ad2acde4
Add stk500 platform and changes suggested by Daniel Willmann
2011-08-03 11:18:55 -04:00
David Kopf
6ec85fe079
Add Iris port of Shinta Hatatani
2011-08-03 10:17:59 -04:00
David Kopf
0bb585fd60
Replace WEBSERVER by AVR_WEBSERVER
2011-07-24 11:43:17 -04:00
HATATANI Shinta
f4740a062a
IRIS port is working with uIPv6
2011-07-15 16:36:25 +09:00
David Kopf
6b434a553f
Implement SRAM routine of Georg von Zengen
2011-06-21 13:03:58 -04:00
dak664
581d081ffe
Don't use RF230_CONF_CCA_THRES if it is not defined.
2011-04-07 17:44:10 -04:00
Oliver Schmidt
f83fb3704b
Replaced make-empty-symbols with empty-symbols.[c|h]
...
The symbol generation shell scripts cause CRLF issues on Windows/Cygwin again and again. Instead of fixing this yet again I opted to remove the symbol generation script at least for the "no symbols" scenario with two C source files to be copied.
2011-04-03 13:24:58 +02:00
dak664
a9cbbb4570
Add sneezer mode and tx power change
2011-03-23 18:08:07 -04:00
dak664
5dd7500d0b
Add configurable auto cca threshold and implement driver cca call.
...
Show smallest rssi in jackdaw menu.
2011-03-21 11:10:30 -04:00
dak664
d9b5bac953
Refactor with WATCHDOG_CONF_TIMEOUT
2011-03-14 16:14:47 -04:00
dak664
59109b9893
Fix type, diagnostic interrupt code on conditional
2011-03-13 14:08:02 -04:00
dak664
a210e14d78
Add defines for watchdog configuration.
2011-03-13 13:45:12 -04:00
dak664
0b2d3d1615
Refactor clock code with optional interrupt optimizing.
...
Put periodic radio calibration on conditional.
2011-03-13 13:07:32 -04:00
dak664
6a5c8ff1c4
Include file needed for slip rpl-border-router build
2011-03-11 14:10:30 -05:00
dak664
de7bcda99f
avrdude and makefile changes suggested by Georg von Zengen
2011-03-08 13:07:00 -05:00
dak664
46297de770
Allocate variable only when mass storage is enabled
2011-02-23 14:06:06 -05:00
dak664
5c098993df
Add initial file
2011-02-07 20:30:47 -05:00
dak664
b41e8f384e
Add initial atmega128rfa1 file
2011-02-07 20:28:17 -05:00
dak664
f1f32c8e6a
Add combined MCU and radio ATmega128rfa1
2011-02-07 13:46:34 -05:00
dak664
90a6d768ea
Keep track of sleeptime and display on status web page.
2010-12-23 19:41:07 +00:00
dak664
662b0e064c
Revert Larsson patch, setting this to 0x3f truncated jackdaw Tx packets to 64 bytes.
2010-12-22 22:49:16 +00:00
dak664
95982b40ba
$make will show avr-size once and only once whether or not a build needs to occur.
2010-12-22 21:13:09 +00:00
dak664
5b8e62ef4f
Patches from R Larsson
2010-12-22 20:10:00 +00:00
dak664
013c3ac2f8
Remove contitional on clock updating, it should always be done after a sleep!
2010-12-22 17:09:03 +00:00
dak664
44a2e34005
Resolve TIMER2 conflict between sleep and possible clock usage.
2010-12-22 16:50:30 +00:00
dak664
e3e1e04948
Add FCS comments and text2pcap dump routines of Roger Larsson.
...
Don't send last two byte to xmit buffer since they will be overwritten by the checksum anyway.
2010-12-21 04:25:15 +00:00
dak664
e4b0b3dc8c
Disable watchdog software counter. Nested watchdog stop/starts will not work, but the low power protocols will.
2010-12-18 20:51:11 +00:00
dak664
5623ad827b
Enable radio off and sleep modes.
2010-12-18 20:49:00 +00:00
dak664
570f6e705f
Move conditional needed by previous commit.
2010-12-15 19:32:49 +00:00
dak664
aa7ad8c807
Add rf230_listen_channel routine to force RX_ON state for sniffing and to read rssi for energy scan.
2010-12-15 16:50:44 +00:00
dak664
1cc336f188
Conditional code to use hardware multiply by default.
2010-12-15 14:11:06 +00:00
dak664
c784e8bc46
Enable RX_START interrupt and read rssi at end of preamble when not using energy detect register
2010-12-14 22:34:18 +00:00
dak664
9c9d7ec5e9
Return TRAC_STATUS register when tx autoretry is enabled.
2010-12-05 17:28:29 +00:00
dak664
35b2ce0cdb
Add status page link, show correct rssi, fix indexing off array in ipv4 builds
2010-12-04 21:32:35 +00:00
dak664
58b7a19803
Hardware/software radio HAL patch from Roger Larsson.
...
Use CHANNEL_802_15_4 define for RF channel on all AVR platforms, default 26.
Remove hopefully unnecessary interrupt disable wrapper on eeprom reads and writes.
2010-12-03 20:42:01 +00:00
dak664
21b10e8021
Convert obsolete MCU_MHZ to F_CPU and add 14745600MHz case using patch from Tobias Schäfer
2010-12-03 18:16:56 +00:00
dak664
0ba9846abd
Add macros by Roger Larsson to select between hardware or software SPI transactions.
...
Minor speed optimizations.
2010-11-30 19:47:40 +00:00
dak664
dc028b3f85
Get rssi correctly in either rx mode, clean up radio driver debugging
2010-11-26 20:39:15 +00:00
dak664
880233a451
RSSI read fix (use ED register in AACK mode), add reduced power configuration for miniature mesh testing.
2010-11-24 18:46:57 +00:00
dak664
69ef9d57eb
sizeof(*) is sizeof first array element
2010-11-12 17:24:36 +00:00
dak664
9e94ba9803
Allow non-ipv6 build, e.g. Hello World
2010-11-12 17:15:00 +00:00
dak664
eb0d5c7f45
Add missing includes
2010-11-03 16:55:40 +00:00
dak664
9194b3ac69
Fix error when RS232 not enabled
2010-10-28 19:31:28 +00:00
dak664
ad6712736b
Fix Windows XP RNDIS+CDC serial port enumeration
2010-10-28 19:30:14 +00:00
dak664
258e3cc93a
Allow simultaneous use of RS232 and USB serial ports
2010-10-27 14:51:20 +00:00
dak664
123e3cae41
Fix compiler warnings
2010-10-23 15:26:46 +00:00
dak664
7be7a34bbb
Fix windows COM port enumeration
2010-10-22 19:15:43 +00:00
dak664
774474b7aa
Fix compiler warning
2010-10-20 18:57:33 +00:00
adamdunkels
5585d72c86
A simple but substantial change: uIP used the htons()/HTONS() macro
...
functions for converting between host and network byte order. These
names are the de facto standard names for this functionality because
of the original BSD TCP/IP implementation. But they cause problems for
uIP/Contiki: some platforms define these names themselves (Mac OS,
most notably), causing compilation problems for Contiki on those
platforms.
This commit changes all htons to uip_htons instead. Same goes for
htonl, ntohs, and ntohl. All-caps versions as well.
2010-10-19 18:29:03 +00:00
dak664
110bc0242e
Merge CDC-ECM, RNG, DFU bootloader, watchdog, settings manager, energy scan routines of Robert Quattlebaum
2010-09-17 21:59:09 +00:00