Commit graph

266 commits

Author SHA1 Message Date
Ralf Schlatterbeck b17934c491 Allow compilation of c++ files (extension .cpp) 2014-11-19 13:47:51 +01:00
Ralf Schlatterbeck cfec3c6e2d Initial implementation of avr hardware timer
Mainly for PWM use for now.
With example to set the LED to different brightness via COAP.
We switch the LED with 50 kHz (20µs) in this example.
2014-11-19 13:47:37 +01:00
Ralf Schlatterbeck 4ceffb090d Make HW timer for contiki rtimer configurable
... and configure osd platform to use timer 5. With the new
configuration we can use timer 3 for generating hardware PWM.
2014-11-19 13:44:55 +01:00
Harald Pichler 34d64b4eb0 bugfix blockmode, 8 Hz dutycyle as standard 2014-11-19 13:34:07 +01:00
kkrentz fb00a217f5 packetbuf: Use packetbuf_holds_broadcast() all-over 2014-11-13 09:58:08 -08:00
Fredrik Österlind 03a923b6b9 Merge pull request #782 from ejoerns/pull-req/avr-mcucsrfix
[avr] Removed usage of deprecated MCUSR
2014-11-13 10:25:30 +01:00
Enrico Joerns 0b8769e576 [doc] Various fixes for doxygen grouping etc. 2014-11-10 23:53:32 +01:00
Joakim Gebart f943eb9a27 rf230bb: Handle all IRQ flags in one ISR call.
Modified the if/elseif/elseif/.../else block in ISR into multiple if
blocks in order to handle multiple interrupts happening simultaneously.

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
2014-10-28 14:53:40 +01:00
Enrico Joerns 8cc0bb8a1e [avr] Removed usage of deprecated MCUSR
Since avr-libc 1.8.0 MCUSR is marked as poison as it was replaced by the
correct name MCUCSR.
Thus code still using the old MCUSR name does not compile anymore.

This commit replaces usages of former MCUSR by its new name MCUCSR and
modifies the alias fallback accordingly.
2014-08-30 01:58:18 +02:00
Enrico Joerns 351e4e9fba [avr] added missing mcu parameter to ASFLAGS in order to enable assembler compilation 2014-07-10 11:31:41 +02:00
Adam Dunkels def57199b9 Merge pull request #511 from ADVANSEE/leds
leds: Fixes and enhancements
2014-06-11 22:37:34 +02:00
Adam Dunkels 64f65b4e45 Merge pull request #617 from nfi/extended-radio-api
Extended radio API with support for setting channel, pan id, addressing modes, etc
2014-06-03 21:32:53 +02:00
Rémy Léone 25c8b0835d Closing doxygen groups 2014-05-30 11:01:20 +02:00
Niclas Finne cb3e053232 Added stub for extended radio API for rf230 2014-04-03 13:38:20 +02:00
Adam Dunkels 45265249fc Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
Adam Dunkels 0b805e4763 Moved the cc2420 driver into a separate dev/cc2420 module 2014-01-26 23:20:27 +01:00
Benoît Thébaudeau 7f48057b9e leds: Fix the API
The leds API did not work in some cases. E.g. with the following sequence:
  leds_off(LEDS_ALL);
  leds_toggle(LEDS_GREEN);
  leds_off(LEDS_ALL);
the green LED was remaining on after the last call.

This was caused by the toggle feature made synonymous with the invert feature,
although it is unrelated. leds_toggle() is indeed supposed to toggle an LED,
while leds_invert() is supposed to change the active level of an LED. However,
all users of leds_invert() actually meant leds_toggle(), and the invert feature
does not make sense in this module because it is not handy due to successive
calls to leds_invert() changing the intended behavior, and hardware active
levels should be managed in leds_arch_set() (e.g. by XORing the passed value
with a hardware-specific constant before setting the output levels of the pins).

Consequently, this change:
 - removes the leds_invert() function,
 - makes leds_toggle() behave as expected relatively to leds_off() / leds_on(),
 - sanitizes the code in the leds module.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2014-01-07 13:02:41 +01: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
Adam Dunkels 30c0c5eaf6 Removed old unused timetable code 2013-11-19 08:29:23 +01:00
Werner Almesberger be0a296049 cpu/avr/radio/rf230bb/rf230bb.c (rf230_transmit): extend comment on tx sequence
Explain that the transmission is intentionally started before copying the
frame to the buffer.
2013-07-28 18:43:29 -03:00
Peter A. Bigot 5fc0575e99 Makefile.include: support make clean all
Historically $(OBJECTDIR) was created when Makefile.include is read.  A
consequence is that combining "clean" with "all" (or any other build
target) results in an error because the clean removes the object
directory that is required to exist when building dependencies.
Creating $(OBJECTDIR) on-demand ensures it is present when needed.

Removed creation of $(OBJECTDIR) on initial read, and added an order-only
dependency forcing its creation all Makefile* rules where the target is
explicitly or implicitly in $(OBJECTDIR).
2013-06-20 17:45:41 -05:00
Nicolas Tsiftes a445c4020d Merge pull request #153 from darconeous/pull-requests/cpu-avr-bootloader
avr/bootloader.c: Now compatible with bootloaders which always run first
2013-05-20 05:49:13 -07:00
Robert Quattlebaum 674f70b6c3 cpu/avr: Added "AVRDUDE_MCU" configuration parameter. 2013-05-19 14:23:31 -07:00
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