Commit graph

1657 commits

Author SHA1 Message Date
Niclas Finne 4834816306 Added radio parameter RADIO_PARAM_CCA_THRESHOLD for STM32W 2014-04-08 16:42:18 +02:00
Niclas Finne 441beb8f74 Added stub for extended radio API for rl78 2014-04-03 13:38:28 +02:00
Niclas Finne 2dc4d06078 Added stub for extended radio API for mc1322x 2014-04-03 13:38:26 +02:00
Niclas Finne 14ffa35b3f Added stub for extended radio API for cc253x 2014-04-03 13:38:25 +02:00
Niclas Finne a98e153e23 Added stub for extended radio API for cc2538 2014-04-03 13:38:23 +02:00
Niclas Finne 1fdb04e10c Added stub for extended radio API for cc2430 2014-04-03 13:38:21 +02:00
Niclas Finne cb3e053232 Added stub for extended radio API for rf230 2014-04-03 13:38:20 +02:00
Niclas Finne fa908dcaff Added extended radio API implementation for STM32W 2014-04-03 13:38:09 +02:00
Ian Martin 56d0dfdc7a CC2538: Add a Makefile rule to generate a final assembly listing. 2014-04-02 18:17:49 -04:00
Niclas Finne 767a9aeef1 Use platform configuration for CC2420/CC2520 SFD on MSP430 based platforms 2014-03-28 11:54:10 +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 a630fbd5da Removed unused variable. 2014-03-27 19:24:23 +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
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 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
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
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
Oliver Schmidt b6c9950b94 Adjust shadow register to full 8kB RX buffer. 2014-02-27 20:23:41 +01:00
Oliver Schmidt 3e5e054f2a Adjusted base address to final product. 2014-02-26 20:23:09 +01:00
LudovicW d979e5b096 CC2538: add support for UART baudrate 9600, 38400 and 57600 2014-02-11 16:01:36 +01:00
Oliver Schmidt 9a44bafb16 Merge pull request #553 from oliverschmidt/master
Some fine tuning after the recent general modularization.
2014-02-02 11:14:17 -08:00
Oliver Schmidt ee3050897a Some fine tuning after the recent general modularization. 2014-02-02 17:59:06 +01:00
Oliver Schmidt 4db675e259 Some fine tuning after the recent general modularization. 2014-02-02 17:47:17 +01:00
Oliver Schmidt e16521e5c1 Merge pull request #550 from oliverschmidt/master
Avoid compiler warnings.
2014-01-31 16:22:53 -08:00
Oliver Schmidt a94e7e63e2 Avoid compiler warnings. 2014-02-01 00:46:57 +01:00
George Oikonomou 332d56ac11 Make some CC2538 CFLAGS and LDFLAGS common
Some CFLAGS and LDFLAGS previously only enabled with SMALL=1 have
now been enabled for all builds, regardless of the value of SMALL.

Therefore, from now on, SMALL only chooses between -Os and -O2
2014-01-31 20:02:43 +00:00
George Oikonomou a63376f8be Use -Os for CC2538 builds
As discussed in #503, -Os was broken with one of the toolchains
recommended in the platform's README and for that reason we were
using -O2 by default.

This commit sets the default to -Os and updates the README to no
longer recommend the toolchain in question
2014-01-31 20:02:43 +00:00
George Oikonomou c8fbf8ca6e Merge pull request #503 from ADVANSEE/cc2538-nrdata-noload
cc2538: Clean up link stage
2014-01-30 07:58:55 -08:00
Nicolas Tsiftes 4e6bed24f9 Merge pull request #547 from adamdunkels/push/rimeaddr-linkaddr
Rename the rimeaddr module to linkaddr
2014-01-29 12:57:44 -08:00
Adam Dunkels 45265249fc Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
George Oikonomou 345532c559 Merge pull request #546 from ADVANSEE/cc2538-fix-disabled-lpm
cc2538: lpm: Fix build for LPM_CONF_ENABLE == 0
2014-01-29 08:40:56 -08:00
Adam Dunkels 765e9acded Merge pull request #499 from adamdunkels/bold/modularize-everything
A bold move: modularize everything
2014-01-29 08:17:10 -08:00
Benoît Thébaudeau 42c287f363 cc2538: lpm: Fix build for LPM_CONF_ENABLE == 0
lpm.c needs to #include lpm.h in order to get the definition of
lpm_periph_permit_pm1_func_t, which made the replacement macros conflict with
the function definitions for the LPM_CONF_ENABLE == 0 case. This change fixes
this issue by #if-ing out the code in lpm.c in that case. Also, the replacement
macro for lpm_register_peripheral() was missing in that case, which is fixed
here.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2014-01-28 20:21:06 +01:00
Benoît Thébaudeau a562acb160 cc2538: Fix library linkage
If a project needs to use some libraries at link stage, then the corresponding
linker options (e.g. '-lm') have to be passed after any .o file depending on
these libraries. Hence, LDFLAGS cannot be used to add such options when invoking
$(LD) in Makefile.cc2538, or it should be moved to the correct location.
Instead, this change adds TARGET_LIBFILES to the correct location, like most
other Contiki targets.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2014-01-28 14:32:30 +01:00
Adam Dunkels 824d2047da Add the explicit list of modules, since we cannot do auto-dependency management of them 2014-01-26 23:20:47 +01:00
Adam Dunkels a40a73db9a Made a module out of the core/ctk code 2014-01-26 23:20:44 +01:00
Adam Dunkels dee654cfe5 Put the cc253x custom makerules in its own customrules file 2014-01-26 23:20:41 +01:00
Adam Dunkels 7846eb2e2f Split the cc2430 custom rules into its own file 2014-01-26 23:20:40 +01:00
Adam Dunkels 36a5aadc9e Moved the 6502 custom rules into its own Makefile.customrules-6502 file 2014-01-26 23:20:40 +01:00
Adam Dunkels 0fe08205e1 Moved the rimeaddr.[ch] code from the core/net/rime module to the core/net module, as it is used not only by rime code 2014-01-26 23:20:36 +01:00
Adam Dunkels c9efe3c3c4 Moved the cc2520 driver into its own dev/cc2520 module 2014-01-26 23:20:31 +01:00
Adam Dunkels 0b805e4763 Moved the cc2420 driver into a separate dev/cc2420 module 2014-01-26 23:20:27 +01:00
Adam Dunkels 5f3fe7f7c7 Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
Ian Martin 935322665e rl78: Attempt to locate the IAR installation automatically and instruct the user how to specify IAR_PATH if it cannot be found. 2014-01-24 12:50:43 -05:00
Ian Martin ffa0147920 rl78: Rename CORE to RL78_CORE to avoid a conflict with Contiki's CORE variable. 2014-01-24 11:49:47 -05:00
Oliver Schmidt 8baf2d7b42 Merge pull request #536 from oliverschmidt/master
Copied 'contiki_arg[c|v]' from 'native' to the other desktop targets.
2014-01-24 03:41:42 -08:00
Oliver Schmidt fc983e2e79 Copied 'contiki_arg[c|v]' from 'native' to the other desktop targets.
- On the retro targets support for 'contiki_arg[c|v]' is optional as accesing arg[c|v] is rather expensive.
2014-01-24 11:56:40 +01:00
Ian Martin 1b61f1bb7b Add cpu/rl78/dev/uart1.h because some examples rely on it. 2014-01-22 18:42:24 -05:00
Ian Martin a897426410 Increase the default baudrate to 38400 bps for RL78. 2014-01-22 18:42:18 -05:00
Ian Martin 00468a3f53 Fix buggy UART baudrate calculation in the RL78 UART driver. 2014-01-22 18:41:55 -05:00
Oliver Schmidt 510678bed0 Added mouse support for the Atari. 2014-01-20 22:51:40 +01:00
Oliver Schmidt a24865de72 Add somewhat more support to use different mouse drivers.
- The default mouse driver is now always named 'contiki.mou'.
- Alternative mouse drivers are present in the disk images.
- Users can select their mouse driver by renaming the files.
2014-01-17 23:45:59 +01:00
Oliver Schmidt fb20cf5ee6 Added UIP_CONF_LLH_LEN. 2014-01-17 22:07:03 +01:00
Ian Martin 7d3053bbc5 Remove hyphen from preprocessor symbol to fix compiler warning. 2014-01-10 16:31:05 -05: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
Ian Martin 174d4dd80c Adds support for ADF7023 sub-GHz radio from Analog Devices and RL78 series MCU from Renesas.
This example platform for this port is the EVAL-ADF7XXXMB4Z w/ radio
daughter cards:

    http://www.analog.com/en/evaluation/eval-adf7023/eb.html

See the platform readme for usage and platform information:

    https://github.com/contiki-os/contiki/tree/master/platform/eval-adf7xxxmb4z/readme.md

All files provided by Analog Devices for this port are released under
the same license as Contiki and copyright Analog Devices Inc. per
agreement between Redwire Consulting, LLC and Analog Devices Inc. (SOW 08122013)
2014-01-04 18:56:51 -05:00
Ian Martin e90af44ca7 Merge ADF7023 driver from https://github.com/analogdevicesinc/no-OS 2014-01-04 17:38:26 -05:00
Ian Martin 6d36c83513 Merge SPI driver from https://github.com/analogdevicesinc/no-OS 2014-01-04 17:38:26 -05:00
Ian Martin 6a88905f9d Merge UART driver from https://github.com/msalov/rl78-samples-R5F100SLAFB 2014-01-04 17:38:26 -05:00
Ian Martin d0abf415e7 Merge RL78 files from https://sourceware.org/git/?p=newlib.git 2014-01-04 17:38:26 -05:00
Dragos Bogdan cfd554dc24 Move files. 2014-01-04 17:27:52 -05:00
Dragos Bogdan 94d5d384e0 Move files. 2014-01-04 17:27:29 -05:00
Maxim Salov 2668b17f52 Move files. 2014-01-04 17:27:24 -05:00
DJ Delorie 5115554247 Move/rename files. 2014-01-04 17:27:23 -05:00
Benoît Thébaudeau fe4eb545c0 cc2538: Remove the unused vtable section
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-23 15:50:05 +01:00
Benoît Thébaudeau 37e73894f1 cc2538: Move SoC data to a dedicated section to save space
Some SoC data requires huge alignments. E.g., the µDMA channel control table has
to be 1024-byte aligned. This table was simply aligned to 1024 bytes in the C
code, which had the following consequences, wasting a lot of RAM:
 - As this table could be placed anywhere in .bss, there could be an alignment
   gap of up to 1023 bytes between the preceding data and this table.
 - The size of this table was also aligned to 1024 bytes, regardless of
   UDMA_CONF_MAX_CHANNEL, making this configuration option supposed to save RAM
   just useless.
 - .bss was also aligned to at least 1024 bytes, creating a huge alignment gap
   between .data and .bss.

Instead of relying on the compiler to force this alignment, and on the linker to
automatically place data, this change places carefully such SoC data in RAM
using the linker script. A dedicated section is created to place such SoC data
requiring huge alignments, and it is put at the beginning of the SRAM in order
to ensure a maximal alignment without any gap. In this way, the alignment of
.bss also remains normal, and the size of this table is not constrained by its
alignment, but only by its contents (i.e. by UDMA_CONF_MAX_CHANNEL).

In the case of the µDMA channel control table, the data is still zeroed by
udma_init() (instead of also being zeroed as part of .bss).

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-23 15:06:13 +01:00
Benoît Thébaudeau ab4b955f17 cc2538: Sort link input sections by alignment to optimize size
Normally, the linker does not sort files and sections matched by wildcards, so
they are placed in the order in which they are seen during link. If numerous
objects with different alignments are mixed, or if objects with unusually large
alignments are present, this very likely leads to a lot of space being wasted
because of accumulated alignment gaps.

This commit forces input sections to be sorted by alignment (unless this is
overridden by the linker script), which decreases the number and the size of
alignment gaps, thus saving space.

For a typical Contiki project, this change saves nearly 1 kiB, mainly in .bss.

Note that this behavior is only enabled if the SMALL make variable is set to 1,
because this makes more sense for a size optimization.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-19 21:45:27 +01:00
Benoît Thébaudeau e1147ec787 cc2538: Set the type of the .nrdata output section to NOLOAD
The .nrdata section is volatile, so its initialization must be controlled by the
application, and not be automatically done by the startup code. It should
neither be zeroed like .bss, nor be initialized from data in flash memory like
.data. This was already supposed to be the case, but the output section type of
.nrdata was not set to NOLOAD, causing the generated ELF .nrdata section header
to be of type PROGBITS instead of NOBITS, i.e. load data was generated to be
programmed in RAM, thus producing huge unprogrammable .bin files.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-13 17:45:57 +01:00
Oliver Schmidt 63725eff36 Merge remote-tracking branch 'upstream/master' 2013-12-12 20:46:43 +01:00
Oliver Schmidt 3b2173e01f Have CBM DOS filetype of imported files match the one used by cc65.
CFS_WRITE implies O_TRUNC which is implemented on CBM DOS by deleting an
exsisting file. Hoewever this succeeds only if the CBM DOS filetype matches.

We need a working O_TRUNC in order to be able to overwrite the contiki.cfg
configuration file.

Note: Now it has be clarified why overwriting the configuration file started to
fail the CBM PFS (platform file system) can be activated for the recently added
ethconfig program.
2013-12-12 18:57:40 +01:00
Benoît Thébaudeau dbba311270 cc2538: Add adc driver and example
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-06 22:07:45 +01:00
Benoît Thébaudeau d86b8275ec cc2538: clock: Fix time drift occurring with PM1/2
The clock adjustments made when waking up from PM1/2 were very inaccurate. If
relying on ContikiMAC's rtimer to sleep, this led to Contiki's software clock
time, seconds and etimers to be 2.5 s slower after each min, i.e. 1 hour slower
after each day, which is a show stopper issue for most real-life applications.

This was caused by a lack of accuracy in several pieces of code during sleep
entry and wake-up:
 - It was difficult to synchronize the calls to RTIMER_NOW() before and after
   sleep with the deactivation and activation of the SysTick peripheral caused
   by PM1/2. This caused an inaccuracy in the corrective number of ticks passed
   to clock_adjust().
 - The value passed to clock_adjust() was truncated from an rtimer_clock_t
   value, but the accumulated error caused by these truncated bits was ignored.
 - The SysTick peripheral had to be stopped during the call to clock_adjust().

Rather than creating even more complicated clock adjustment mechanisms that
would probably still have mixed results as to accuracy, this change simply uses
the Sleep Timer counter as a base value for Contiki's clock and seconds
counters. The tick from the Systick peripheral is still used as the interrupt
source to update Contiki's clocks and timers. When running, the SysTick
peripheral and the Sleep Timer are synchronized, so combining both is not an
issue, and this allows not to alter the rtimer interrupt mechanism using the
Sleep Timer. The purpose of the Sleep Timer is to be an RTC, so it is the
perfect fit for the clock module, all the more it can not be disturbed by PM1/2.
If the 32-kHz XOSC is used, the Sleep Timer is also very accurate. If the
32-kHZ RCOSC is used, it is calibrated from the 32-MHz XOSC, so it is also
accurate, and the 32753-Hz vs. 32768-Hz systematic error in that case is
negligible, all the more one would use the 32-kHz XOSC for better accuracy.

Besides fixing this time drift issue, this change has several benefits:
 - clock_time(), clock_seconds() and RTIMER_NOW() start synchronized, and they
   change at the same source pace.
 - If clock_set_seconds() is called, then clock_seconds() indicates one more
   second almost exactly one second later, then exactly each second. Before this
   change, clock_seconds() was not synchronized with clock_set_seconds(), so the
   value returned by the former could be incremented immediately after the call
   to the latter in some cases.
 - The code tied to the clock module is simpler and more robust.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-06 13:04:30 +01:00
Benoît Thébaudeau b7515004da cc2538: clock: Fix secs update in clock_adjust()
Whole elapsed seconds are added to secs first, so only the remaining subsecond
ticks should then be subtracted from second_countdown in order to decide whether
secs should be incremented again.

Otherwise, secs is not correctly updated in some cases, typically if the bit 7
of ticks is 1. E.g., with ticks = 128 (i.e. exactly 1 s elapsed) and
second_countdown = 128, secs was first incremented as expected, then 128 was
subtracted from second_countdown, giving 0 and triggering an unwanted second
increment of secs. Or with ticks = 129 (i.e. 1 s + 1 tick) and
second_countdown = 1, secs was first incremented as expected, then 129 was
subtracted from second_countdown, giving 128 and missing a second increment of
secs that should have occurred because second_countdown wrapped around.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-06 13:02:37 +01:00
Benoît Thébaudeau 28a563a24b cc2538: clock: Request an etimer poll in clock_adjust()
During PM1+, the hardware timer used to implement the Contiki clock is frozen,
so clock_adjust() needs to be called when exiting those modes in order to
compensate for the clock ticks missed while the timer was frozen. Doing so
changes the Contiki clock time, so etimer_request_poll() needs to be called in
order to inform the etimer library that an etimer might have expired.

Note that waiting for the next clock ISR to call etimer_request_poll() is
unreliable because the system might go back to sleep beforehand.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-06 13:02:37 +01:00
Benoît Thébaudeau 5261bb861d cc2538: lpm: Fix RTIMER_NOW() upon wake-up
When returning from PM1/2, the sleep timer value (used by RTIMER_NOW()) is not
up-to-date until a positive edge on the 32-kHz clock has been detected after the
system clock restarted. To ensure an updated value is read, wait for a positive
transition on the 32-kHz clock by polling the SYS_CTRL_CLOCK_STA.SYNC_32K bit,
before reading the sleep timer value.

Because of this RTIMER_NOW() fixup, lpm_exit() has to be called at the very
beginning of ISRs waking up the SoC. This also ensures that all clocks and
timers are enabled at the correct frequency and updated before using them
following wake-up.

Without this fix, etimers could sometimes (randomly, depending on timings)
become ultra slow (observed from 10x to 40x slower than normal) if the system
exited PM1/2 very often. This issue occurred more often with PM1.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-05 20:23:29 +01:00
Benoît Thébaudeau f149197aa8 cc2538: lpm: Speed up the transition to the 32-MHz XOSC after wake-up
As recommended by the CC2538 User's Guide, set SYS_CTRL_CLOCK_CTRL.OSC_PD to 0
before asserting WFI, and set it to 1 after the system clock is sourced from the
32-MHz XOSC following wake-up. This allows to automatically start both
oscillators upon wake-up in order to partially hide the 32-MHz XOSC startup time
by the 16-MHz RCOSC startup time.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-05 20:23:29 +01:00
Benoît Thébaudeau 13006e1c73 cc2538: lpm: Let system clock transitions complete before further changes
As a matter of precaution, always make sure that pending system clock
transitions are complete before requesting a new change of the system clock
source.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-05 20:23:29 +01:00
Benoît Thébaudeau 8514a91ea9 cc2538: lpm: Fix energest context when aborting lpm_enter()
In one of the abort cases in lpm_enter(), the energest context has previously
been set to LPM, so the abort code needs to set it back to CPU.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-05 20:23:29 +01:00
George Oikonomou f2c552bb55 Merge pull request #478 from ADVANSEE/cc2538-startup-cleanup
cc2538: Startup cleanup
2013-12-05 11:07:19 -08:00
George Oikonomou 17b2150081 Merge pull request #463 from ADVANSEE/cc2538-ports-pins
cc2538: Clean up and improve port and pin definitions
2013-12-05 10:31:29 -08:00
Benoît Thébaudeau a2686e581e cc2538: Add header file for flash CCA page and use it
Create a dedicated header file with all the definitions for the flash lock bit
page and customer configuration area. This avoids duplicating those definitions
in the startup-gcc.c files of all CC2538-based platforms, and this also allows
to easily manipulate the CCA from outside startup-gcc.c (e.g. for on-the-air
firmware update).

The definitions are now complete contrary to what was in startup-gcc.c:
 - Definitions have been added to select the bootloader backdoor pin and active
   level if enabled.
 - Definitions have been added to access the page and debug lock bits. The debug
   lock bit can be used to prevent someone from reading back a programmed
   firmware through JTAG if the firmware binary image has to be confidential,
   which should be combined with a disabled bootloader backdoor.
 - The application entry point is now tied to the beginning of the .text section
   instead of to the beginning of the flash. This allows projects using custom
   linker scripts to place the application entry point anywhere in the flash,
   which can be useful e.g. for on-the-air firmware update.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-12-05 18:45:51 +01:00
George Oikonomou 8b003c30c7 Merge pull request #471 from ADVANSEE/cc2538-gpio-power-up
cc2538: gpio: Add support for power up
2013-12-05 09:25:05 -08:00
George Oikonomou 97cdf39b95 Merge pull request #464 from ADVANSEE/cc2538-pm2-sram
cc2538: lpm: Give access to the SRAM non-retention area for PM2
2013-12-05 09:19:22 -08:00
Oliver Schmidt 9a48bcf941 Merge pull request #488 from oliverschmidt/master
Avoid access to the address register during auto-increment.
2013-12-03 12:59:45 -08:00
Oliver Schmidt 8386be428c Merge remote-tracking branch 'upstream/master' 2013-12-03 21:41:16 +01:00
Oliver Schmidt 9cdc6da040 Avoid access to the address register during auto-increment.
It cannot be ruled out that access to the address register triggers
an address auto-increment. Therefore a temporary address register
shadow is introduced to replace the access to the address regsiter.

Additionally there are several minor beautifications.
2013-12-03 21:31:43 +01:00
Ian Martin 0dafba4f6d Add a rule for generating assembly listings on mc1322x targets, for example: "make webserver6.lst". 2013-12-01 16:22:37 -05:00
Mariano Alvira 5fbefbd87b Merge pull request #459 from adamdunkels/push/mc1322x-stuff
MC1322x additions
2013-11-29 11:59:04 -08:00
Benoît Thébaudeau 1a696eb123 cc2538: gpio: Clear the power-up interrupts in the port ISRs
The pending GPIO power-up interrupts have to be cleared in the ISRs in order not
to re-trigger the interrupts and the wake-up events.

The power-up interrupts of all pins are cleared for each port in the
corresponding port ISR. This is done after calling the registered callbacks so
that the callbacks can know which pin woke up the SoC. This is done after
clearing the regular interrupt in order to avoid getting a new wake-up interrupt
without the regular interrupt in the case of a new wake-up edge occurring
between the two clears.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-26 22:20:05 +01:00
Benoît Thébaudeau 44a5c76884 cc2538: gpio: Add macros to use GPIO power-up interrupts
The GPIO power-up interrupts have to be configured and enabled in order to be
able to wake-up the SoC from PM1+ upon a signal edge occurring on a GPIO input
pin.

This set of macros allows to:
 - configure the signal edge triggering a power-up interrupt,
 - enable and disable a power-up interrupt,
 - clear a power-up interrupt flag.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-26 22:10:47 +01:00
Benoît Thébaudeau 621f4f7339 cc2538: lpm: Give access to the SRAM non-retention area for PM2
If PM2 is enabled with LPM_CONF_MAX_PM, but not active, the non-retention area
of the SRAM can be useful to place temporary data that does not fit in the
low-leakage SRAM, typically after having called lpm_set_max_pm(LPM_PM1). Hence,
give access to this non-retention area thanks to .nrdata* sections.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 15:43:37 +01:00
Benoît Thébaudeau 270ed237fd cc2538: usb: Make the GPIO driving the pull-up optional
The data sheet recommends that the USB pull-up resistor be driven by a GPIO so
that it can be controlled by software, but this is not mandatory. Hence, leave
the choice so that CC253-based boards not using this option can build and work
fine.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 15:15:35 +01:00
Benoît Thébaudeau d2f3795a30 cc2538: Clean up port and pin definitions
Homogenize port and pin definitions naming:
 - PERIPHERAL_FUNCTION_PORT for the port ID,
 - PERIPHERAL_FUNCTION_PIN for the pin ID,
 - PERIPHERAL_FUNCTION_PORT_BASE for the port base,
 - PERIPHERAL_FUNCTION_PIN_MASK for the pin mask.

Define only PERIPHERAL_FUNCTION_PORT and PERIPHERAL_FUNCTION_PIN in board.h, and
deduce PERIPHERAL_FUNCTION_PORT_BASE and PERIPHERAL_FUNCTION_PIN_MASK in the
driver from the former definitions.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 15:00: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 e09ff3ff1e Merge pull request #438 from adamdunkels/push/cleanup-platforms
Massive platform cleanup
2013-11-24 01:59:53 -08:00
Adam Dunkels 1ab28e4668 Added missing argument declaration 2013-11-23 15:05:16 +01:00
Adam Dunkels e95236b642 Added header declarations for cc2538_rf_read_rssi() and cc2538_rf_set_promiscous_mode() 2013-11-23 15:05:16 +01:00
Adam Dunkels 76f2a10c9a Added a function for setting promiscous mode on the CC2538 RF core 2013-11-23 15:05:15 +01:00
Adam Dunkels 473d519926 Added a way to obtain the RSSI from the CC2538 RF core 2013-11-23 15:05:15 +01:00
Adam Dunkels 27433244a9 The pc-6001 platform was the last z80 platform in the tree, so we'll remove the cpu/z80 directory too 2013-11-22 16:33:46 +01:00
Adam Dunkels 7a310935d8 An implementation of the mc1322x watchdog 2013-11-22 15:54:06 +01:00
Adam Dunkels 88f9d79053 Enable the silent compilation mode from the latest Contiki 2013-11-22 15:53:30 +01:00
Oliver Schmidt 737d5fd6dc Replaced web configurator with target-based ethconfig. 2013-11-21 21:57:42 +01:00
Oliver Schmidt 3abd5d3d8d Show current IP config on startup. 2013-11-20 22:33:11 +01:00
George Oikonomou f13af20f12 Merge pull request #409 from ADVANSEE/cc2538-spi
cc2538: spi: Bug fix and various improvements
2013-11-20 06:51:26 -08:00
Benoît Thébaudeau e8a8870d1d cc2538: spi: Add enable and disable functions
This makes it possible to reduce the power consumption when the SPI is unused.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-20 14:20:50 +01:00
Benoît Thébaudeau b134e35450 cc2538: spi: Add format configuration options
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-20 14:20:43 +01:00
Nicolas Tsiftes 263e212427 Merge pull request #431 from adamdunkels/push/ipv6-const
Make IP addresses const
2013-11-20 04:26:05 -08:00
Nicolas Tsiftes d183b87f4b Merge pull request #434 from adamdunkels/push/cleanup-sys
Remove old unused code from the core/sys/ directory
2013-11-19 09:53:57 -08:00
George Oikonomou dc05eea3f5 Merge pull request #426 from ADVANSEE/cc2538-rom
cc2538: Add driver for the rom utility function library
2013-11-19 03:09:16 -08:00
Adam Dunkels 30c0c5eaf6 Removed old unused timetable code 2013-11-19 08:29:23 +01:00
Adam Dunkels 469884171a Added the const keyword to functions that use the tcpip_set_outputfunc(), which now takes a const argument 2013-11-18 23:26:37 +01:00
Benoît Thébaudeau 1f1b940cb9 cc2538: Add driver for the rom utility function library
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-18 12:38:06 +01:00
Benoît Thébaudeau 035a30602b cc2538: lpm: Make periph_permit_pm1_funcs static
periph_permit_pm1_funcs[] is a private member of lpm.c, so define it as static.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-18 11:57:59 +01:00
George Oikonomou b10c78f854 Merge pull request #425 from ADVANSEE/cc2538-gpio
cc2538: gpio: Bug fix and various improvements
2013-11-15 13:04:09 -08:00
George Oikonomou 98a1f2dfa9 Merge pull request #408 from ADVANSEE/cc2538-uart
cc2538: lpm: Add registration mechanism for peripherals and use it
2013-11-15 12:57:03 -08:00
Benoît Thébaudeau 680050861c cc2538: gpio: Use accessor macros
Use the GPIO accessor macros instead of copying raw register access code all
over the place. This is cleaner and less error prone.

This fixes the setting of the USB pull-up resistor that worked only by chance on
the CC2538DK because it is controlled by the pin 0 of the used GPIO port.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 19:57:44 +01:00
Benoît Thébaudeau 923f161b7b cc2538: gpio: Add pin read / write and interrupt clear macros
Introduce new useful GPIO macros to:
 - read the levels of some port pins,
 - write the levels of some port pins (pass bit-field value to be set),
 - clear the interrupt flags for some port pins.

These macros are cleaner and less error prone than raw register access code
copied all over the place.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 19:48:24 +01:00
Benoît Thébaudeau 300d2d79ae cc2538: gpio: Fix usage of parameters in macros
The parameters in the GPIO macros were used without being parenthesized. This
could generate wrong values for register assignments in the case of expressions
passed as arguments to these macros.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 19:43:06 +01:00
Benoît Thébaudeau b8b54a033c cc2538: uart: Fix crippled output occurring upon lpm_enter()
lpm_enter() must not enter PM1+ if the UART TX FIFO is not empty. Otherwise, the
UART clock gets disabled, and its TX is broken.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 17:24:26 +01:00
Benoît Thébaudeau 0692ee251d cc2538: usb: Use the new LPM peripheral registration
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 17:14:45 +01:00
Benoît Thébaudeau d35732505b cc2538: lpm: Add registration mechanism for peripherals
Some peripherals have their clocks automatically gated in PM1+ modes, so they
cannot operate. This new mechanism gives peripherals a way to prohibit PM1+
modes so that they can properly complete their current operations before
entering PM1+.

This mechanism is implemented with peripheral functions registered to the LPM
module. These functions return whether the associated peripheral permits or not
PM1+ modes. They are called by the LPM module each time PM1+ might be possible.
If any of the peripherals wants to block PM1+, then the system is only dropped
to PM0.

Partly from: George Oikonomou
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 17:09:22 +01:00
George Oikonomou d08a87880c Merge pull request #410 from ADVANSEE/cc2538-sys_ctrl
cc2538: sys_ctrl: Make it possible to use the 32-kHz crystal
2013-11-15 07:42:45 -08:00
Benoît Thébaudeau f1ca1b742c cc2538: spi: Include spi-arch.h before dev/spi.h
spi-arch.h configures dev/spi.h, so it must be #included first. Luckily, this
mistake did not have any consequence here, but fix it in order to avoid possible
future issues.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 15:56:40 +01:00
Benoît Thébaudeau f34731c1a9 cc2538: spi: Do not call SPI_WAITFOREORx() at end of init
If the SSI has never been used and spi_init() is called, then the SSI receive
FIFO is empty and remains so, so calling SPI_WAITFOREORx() at the end of
spi_init() waits endlessly for SSI_SR.RNE to be set. Hence, this call must be
removed in order to avoid a deadlock.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 15:56:40 +01:00
Benoît Thébaudeau 47d570343e cc2538: sys_ctrl: Make it possible to use the 32-kHz crystal
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 15:52:10 +01:00
Benoît Thébaudeau a7d10ce2ad cc2538: Make it possible to use a custom linker script
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 15:41:58 +01:00
Benoît Thébaudeau 974850cdf2 cc2538: Generate .hex output
ELF files generated by GCC make SmartRF Flash Programmer 2 crash (only the TI
format is supported by this tool for ELFs), and binary files are not very
appropriate because they are gapless, so generate Intel HEX files since these
are very well supported by most programming tools while still flexible.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-15 15:41:58 +01:00
Mariano Alvira 6b9b457a60 Merge pull request #385 from ismb-pert/better-error-message
Better error message in case of wrong CPUREV value
2013-11-14 07:14:33 -08:00
Oliver Schmidt 59c28bc32b Merge pull request #419 from oliverschmidt/master
Saved six more bytes ;-)
2013-11-13 14:43:06 -08:00
Oliver Schmidt 1bf5b4380d Saved six more bytes ;-) 2013-11-13 23:32:49 +01:00
Oliver Schmidt 497e7fbbac Merge pull request #416 from oliverschmidt/master
Added missing fixup & removed wait loop from poll.
2013-11-11 12:06:38 -08:00
Oliver Schmidt ae1a875881 Added missing fixup & removed wait loop from poll. 2013-11-11 21:03:39 +01:00
Oliver Schmidt dd30454c80 Merge pull request #415 from oliverschmidt/master
Added 6502 driver for WIZnet W5100 in MACRAW mode.
2013-11-09 14:17:07 -08:00
Oliver Schmidt 2d7d1b123d Added 6502 driver for WIZnet W5100 in MACRAW mode. 2013-11-09 23:15:20 +01:00
George Oikonomou ce0b2cacac Merge pull request #365 from g-oikonomou/cc2538-uart-init-fix
Set peripheral mode for the correct CC2538 UART TX/RX pins
2013-10-23 07:10:41 -07:00
Gianfranco Costamagna ddd6b900cd Better error message in case of wrong CPUREV value 2013-10-17 12:33:36 +02:00
Oliver Schmidt 57d9c43a33 Removed support for 'atari' now that 'atarixl' is part of the cc65 master. 2013-10-03 22:55:32 +02:00
Oliver Schmidt 7c2f3b3911 Saved another byte ;-) 2013-10-03 22:32:12 +02:00
George Oikonomou e4a454b284 Set peripheral mode for the correct UART TX/RX pins 2013-09-30 14:50:39 +01:00
George Oikonomou 2957d44ff8 Merge pull request #352 from lab11/cc2538-spi-driver
Added SPI driver for CC2538
2013-09-28 13:25:17 -07:00
Brad Campbell e2af903d05 Added SPI driver for CC2538
This uses the core/dev/spi.h header and implements the spi_init()
function and the various macros for SPI operation. ssi.h contains all of
the register locations and information.

This implementation is not very versatile, mostly because I don't how to
make it flexible in the contiki system. It supports pin muxing for the
four spi pins, but other than that picks sensible defaults.

The SPI macros (like SPI_READ()) are defined in
cpu/cc2538/spi-arch.h. In order to use the SPI driver, add the following
includes to your project:

    #include "spi-arch.h
    #include "dev/spi.h"
2013-09-27 17:46:15 -04:00
Oliver Schmidt 2263c1aa55 - Optimized LAN91C96 driver for speed and size.
- Speed: The primary byte copy loops are reduzed to the bare minimum by adjusting the base pointer 'ptr' and loop register 'y' in such a way that the 'y' overflow matches the low byte of the loop size.

- Introduced a loop for setting the MAC address.

Additional minor fix:

- Properly start self modification with first location.
2013-09-12 23:32:26 +02:00
Oliver Schmidt ea08635ca4 Optimized CS8900A driver for speed and size.
- Speed: The primary byte copy loops are reduzed to the bare minimum by adjusting the base pointer 'ptr' and loop register 'y' in such a way that the 'y' overflow matches the low byte of the loop size.

- Size: Factored out all repeated code into subroutines. Introduced a loop for setting the MAC address.

Additional minor changes:

- Activate frame reception as last step of initialization after CS8900A configuration.

- Properly set internal address bits used by the CS8900A.
2013-09-12 23:32:25 +02:00
Brad Campbell 982ca0fb46 Updates CC2538 GPIO
1. Fixes two of the comments to GPIO macros. They were copied but not
updated.
2. Adds SET and CLR macros for controlling GPIO pins.
2013-09-11 21:39:56 -04:00
Nicolas Tsiftes 7987a6dac7 Merge pull request #328 from g-oikonomou/cc2538-uart-config
Make the CC2538 UART driver more configurable
2013-08-09 10:20:36 -07:00
George Oikonomou 460d5bcb5d Fix cc2530 UART1 init bug
Fixes #286
2013-08-09 16:09:12 +01:00
George Oikonomou cb075dec65 Disable SDCC warnings 110 and 126
Those two warnings are optimisation-related
* 110 warns that an always-false if branch has been optimised out
* 126 warns about unreachable code which also gets optimised out

In disabling those warnings, we make the build less cluttered
2013-08-09 15:57:49 +01:00
George Oikonomou 20f06e3271 Support verbosity control for 8051-based platforms 2013-08-09 15:57:21 +01:00
George Oikonomou c89450a233 Change to sdar from the now deprecated sdcclib 2013-08-09 15:56:16 +01:00
George Oikonomou b025759665 Don't redirect sdld output to dev/null
This was used in the past because sdld was
very verbose when linking banked hex files. New
sdld versions do not exhibit this level of
verbosity and therefore the redirect can be
stopped
2013-08-09 15:56:15 +01:00
George Oikonomou 1b0470687b Change the cc2531 usb stick descriptor
The CC2531 USB stick now identifies itself as a
'Texas Instruments CC2531 USB Dongle' and uses a
TI-assigmed VID:PID. The VID:PID is now configurable
in contiki- or project-conf.h
2013-08-09 15:51:58 +01:00
George Oikonomou 0a7094bc39 Remove leftover make targets
The sensinode platform does not support .upload and .serialdump
Their presence in the makefile has confused in the past confused
some users. This commit removes them

The commit also removes the $(OBJECTDIR)/%.rel: %.cS recipe which
is not used by either 8051 platform and is probably broken anyway,
since it has been unmaintained for years
2013-08-09 15:48:05 +01:00
George Oikonomou 6c6013b898 Make the CC2538 UART driver more configurable
* We can now very easily switch between UART0 and UART1 through a define
* We can also configure the UART RX and TX port/pin through defines
2013-08-09 12:20:25 +01:00
George Oikonomou c3b5d4f5e3 Add support for verbosity control 2013-08-07 15:26:22 +01:00
Nicolas Tsiftes a9f0907640 Merge pull request #304 from frtos-wpan/rf230bb-merged
cpu/avr/radio/rf230bb/rf230bb.c (rf230_transmit): extend comment on tx s...
2013-08-05 00:24:35 -07:00
Oliver Schmidt 6ab336f55f Several minor consistency improvements. 2013-07-31 00:55:31 +02:00
Oliver Schmidt 3c6c7381d8 Suppress some usual warnings. 2013-07-31 00:29:52 +02:00
Oliver Schmidt 8d23d1b0bb Support the recently added verbosity control. 2013-07-31 00:15:38 +02:00
Oliver Schmidt 116c3f119b unistd.h doesn't seem to be necessary but breaks the MS VC build. 2013-07-31 00:02:29 +02: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
Mariano Alvira 5d19de3dbf Merge pull request #266 from ismb-pert/fix-mbxxx
mb851 platform is now the more generic mbxxx. STM32W_CPUREV environment variable is used to select the variant of STM32W to use.
2013-07-26 07:38:11 -07:00
stefano pascali 36e7db42de Some little refactor 2013-07-19 16:15:55 +02:00
stefano pascali b43ce0f677 Travis-ci tweaks, added CPUREV to 01 regression test, needed by mbxxx platform 2013-07-12 17:07:04 +02:00
stefano pascali fcb09d5d30 Fixed mbxxx platform 2013-07-11 17:56:17 +02:00
Mariano Alvira 6307f3ff95 mc1322x: make uart buffer sizes configurable from contiki-conf.h 2013-07-04 14:09:40 -04:00
Oliver Schmidt ad34b714cd Merge pull request #287 from oliverschmidt/master
The current cc65 build doesn't require this workaround anymore.
2013-06-27 15:38:48 -07:00
Oliver Schmidt fb1de74dc4 The current cc65 build doesn't require this workaround anymore. 2013-06-28 00:36:33 +02: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
Oliver Schmidt 79bb5ea73f Removed some more old RCS tags from the Contiki source tree. 2013-06-13 15:54:26 +02:00
Oliver Schmidt cbce31cb59 Another small addition for platform 'Atari XL'. 2013-06-02 23:36:28 +02:00
Robert Quattlebaum 36fbbe48aa Merge pull request #244 from darconeous/pull-requests/cpu-native-tapdev-ipv6-fix
native/net/tapdev: Fix for new `UIP_CONF_IPV6` handling.
2013-05-21 17:42:44 -07: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 09eec82d08 Merge pull request #134 from darconeous/pull-requests/cpu-avr-avrdude-mcu
cpu/avr: Added "AVRDUDE_MCU" configuration parameter.
2013-05-19 17:35:26 -07:00
Robert Quattlebaum 9c70e0e5cc native/net/tapdev: Fix for new UIP_CONF_IPV6 handling. 2013-05-19 17:27:30 -07:00
Robert Quattlebaum 674f70b6c3 cpu/avr: Added "AVRDUDE_MCU" configuration parameter. 2013-05-19 14:23:31 -07:00
Adam Dunkels aaac20a950 Merge pull request #225 from tecip-nes/pic32_minor_reorganization
Pic32 minor reorganization
2013-05-19 14:22:14 -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 535e90343c Merge pull request #144 from darconeous/pull-requests/settings-for-all-targets
core/lib/settings: Generalized settings manager to work on any platform
2013-05-18 12:03:09 -07:00
Robert Quattlebaum b8c0f2de6c cpu/native: Add file-backed simulated EEPROM to native cpu.
This patch removes a defunct EEPROM implementation from the native
platform and provides a new EEPROM implementation for the native cpu.
The previous implementation appears to be vestigal.

This is useful for testing code which uses the EEPROM without running
the code on the actual hardware.

By default the code will create a new temporary file as the EEPROM
backing, reinitializing each time. If you would like to preserve the
EEPROM contents or specify a specific EEPROM file to use, you can set the
`CONTIKI_EEPROM` environment variable to the name of the EEPROM file you
wish to use instead. If it already exists, its contents will be used.
If it does not already exist, it will be created and initialized by
filling it with `0xFF`---just like a real EEPROM.

A new example is also included, which was used to verify the correctness
of the implementation. It can easily be used to verify the EEPROM
implementations of other targets.
2013-05-18 10:29:41 -07:00
Giovanni evilaliv3 Pellerano c33d51e762 pic32 minor cleanups 2013-05-17 14:32:39 +02:00
Adam Dunkels 59a8df14a8 Merge pull request #189 from sieben/markdown
Update to markdown
2013-05-16 00:24:25 -07:00
François Revol 7967779e6c tapdev: Fix using an uninitialized buffer 2013-04-20 14:42:19 +02:00
George Oikonomou 704309cfd4 Change the InfoPage Location of the IEEE address 2013-04-17 15:44:01 +01:00
George Oikonomou 8b5b2bd4d8 CC2538 Documentation typo and grammar fixes 2013-04-17 15:41:41 +01:00
George Oikonomou 007e113ea9 Improve handling of CDC ACM line state
- For the CC2538, simplify handling of USB_CDC_ACM_LINE_STATE
  events. Ignore the Carrier Control (RTS) bit when receiving
  a SET_CONTROL_LINE _STATE request, we are a full duplex device.
- Improve behaviour of the CC2531 USB stick when there is no
  process on the host to read IN data. Basically, we adopt the
  CC2538 approach and we only send data when a DTE is present
2013-04-16 15:49:05 +01:00
George Oikonomou 40f49948e6 New Platform: TI CC2538 Development Kit
This commit adds cpu, platform and example files,
providing support for running Contiki on TI's cc2538 DK
2013-04-06 21:07:31 +01:00
Rémy Léone e6bd4f1dde Rename to md 2013-03-26 23:15:37 +01:00
Rémy Léone 7b40a568a6 Update to markdown
- Spellchecking
- Update plain text to github markdown
2013-03-26 16:55:19 +01: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
Oliver Schmidt 6ba28bf74f Merge pull request #180 from mmuman/cleanup-and-fixes
Cleanup and fixes
2013-03-20 02:37:24 -07:00
François Revol 22bcb07c61 tapdev: Log to stderr; add tracing
Use stderr for logging to avoid polluting stdout.
Add some DEBUG tracing.
2013-03-19 19:41:20 +01:00
Adam Dunkels a5046e83c7 Cleanup and refactoring of the STM32w port
This is a general cleanup of things like code style issues and code structure of the STM32w port to make it more like the rest of Contiki is structured.
2013-03-18 13:31:26 +01:00
RongHQ 12b3d02ba1 Fix a syntax error in /cpu/cc253x/dev/uart0.c 2013-03-16 19:41:42 +08:00
Oliver Schmidt a0e2120fdb Added configurations of the new resolver. 2013-03-14 23:17:59 +01:00
George Oikonomou cc37a1e46e Fix cc2530 DMA priority define values
Fixes #156
2013-03-12 15:39:59 +00:00
Adam Dunkels 39e5a8c6dc Merge pull request #80 from darconeous/mdns-resolv
Adds IPv6 and MDNS domain name resolution.
2013-03-10 12:58:39 -07:00
Adam Dunkels c7ef7198a8 Merge pull request #85 from darconeous/native-target-osx
Various updates to the minimal-net platform.
2013-03-10 12:48:07 -07:00
Robert Quattlebaum 1d113f52ad core/net/uip: Rename uip_ethaddr to uip_lladdr.
There isn't really a good reason I can think of for these
to be different between IPv4 and IPv6.
2013-03-10 11:39:11 -07:00
Nicolas Tsiftes a8dc74bda8 Merge pull request #133 from darconeous/pull-requests/cpu-avr-gc-sections
cpu/avr: Make sure that GCC removes all unused symbols.
2013-03-07 12:52:24 -08:00
Mariano Alvira ab8fe95864 Revert "Merge pull request #120 from Jeff-Ciesielski/stm32_cl"
This reverts commit 029bc0ee27, reversing
changes made to a7b3e99644.

This uses LGPL libopencm3. While the patch doesn't include the code,
the resulting binary would force the release of all code as LGPL.
2013-03-02 08:11:28 -05: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
Robert Quattlebaum 38b2863831 Update cpu/native/Makefile.native 2013-02-26 11:29:04 -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
Mariano Alvira 029bc0ee27 Merge pull request #120 from Jeff-Ciesielski/stm32_cl
Add initial support for STM32F1x Connectivity Line devices
2013-02-24 15:08:57 -08:00
Oliver Schmidt c6620e47aa Merge pull request #131 from oliverschmidt/master
Two minor retro-specific changes.
2013-02-16 15:12:52 -08:00
Oliver Schmidt 61b90c0126 We actually need PROJECT_OBJECTFILES and PROJECT_LIBRARIES for retro builds too. 2013-02-16 22:57:50 +01:00
Nicolas Tsiftes 2eb3c2a492 Merge pull request #94 from alignan/master
Fixes Issue #93
2013-02-16 13:46:09 -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
Oliver Schmidt 98060c1eab Moved from last cc65 release (2.13.3) to recent cc65 snapshot (2.13.9).
Relevant cc65 changes...

General:
- The compiler generates "extended" dependency info (like gcc) so there's no need for postprocessing whatsoever :-)
- The linker is very pernickety regarding the ordering of cmdline options so a custom linker rule is necessary :-(

Apple2:
- The various memory usage scenarios aren't specified anymore via separate linker configs but via defines overriding default values in the builtin linker config.

Atari:
- The builtin linker config allows to override the start addr so there no more need for a custom linker config.
- The C library comes with POSIX directory access. So there's no more need for for a custom coding.

CBM:
- The C library comes with POSIX directory access. So there's no more need for for a custom coding.
2013-02-14 15:42:43 +01:00
Jeff Ciesielski 6b97fa8382 stm32f1x_cl: Fix stm32f107 linker script
This is a critical fix which adds inclusion of the entire data/bss
section to the output ELF file.  Without it, the BSS section will not
be zeroed out
2013-02-09 23:54:14 -08:00
Oliver Schmidt c7f986faf5 Merge pull request #121 from oliverschmidt/master
Several minor adjustments.
2013-02-08 17:04:04 -08:00
Oliver Schmidt 9938cb6838 Adjusted names. 2013-02-09 01:58:37 +01:00
Jeff Ciesielski 5c6018f0e2 stm32f1x_cl: Add initial support for STM32F1x connectivity line
This currently supports the stm32f107, but support will be added for
the F105 shortly (missing a linker script and I can't properly test
without a devkit).
2013-02-06 15:41:50 -08:00
Mariano Alvira fb8bbf37cf Use the RTC only as the main timer.
This is a major change to how the main tick interrupt is handled on
the mc1322x platforms. Instead of using two timer resources, TMR0 and
RTC, this patch unifies all the timers to use the RTC. This is enabled by
implementing etimers as scheduled rtimers. The main advantage (aside
from freeing TMR0 for general use) is have the Contiki timebase come
from the same source that will be used for sleeping and wakeup.
2013-02-03 15:15:05 -05:00
Mariano Alvira ad55ccdec4 add working routines to turn the mc1322x radio on and off 2013-02-03 14:48:38 -05:00
Oliver Schmidt 69317ad1db Renamed retro 'dhcp-client' to 'ipconfig' as it can as well be used for interactive manual configuration. 2013-02-01 21:20:21 +01:00
Oliver Schmidt 74dfff972f Do not reject frames with a length exactly equal to the uIP bufer size. 2013-01-30 23:39:01 +01:00
Robert Quattlebaum a571b663b0 platform/minimal-net: Better, more seamless support for OS X.
This patch enables automatic route setup and cleanup when
starting and stopping the minimal-net target on OS X.

Both IPv4 and IPv6 are supported.

Using the minimal-net target on OS X was absolute hell
before I came up with this patch. Now it is painless.
2013-01-30 09:17:30 -08:00
Robert Quattlebaum 092b6f3baa platform/minimal-net: Implement better idle behavior.
The minimal-net target, as currently written, wakes up the
CPU every millisecond to check for packets, and will only
react in real-time to input from stdin. If you are running
this on a laptop battery, your battery will quickly drain.

This change allows the CPU to idle when there is literally
nothing to do while still being responsive to input from
stein and/or incoming packets. This fix should significantly
improve performance while significantly improving power
usage. Win-win.

Also added `_xassert()` implementation so that the contiki-
provided `assert()` macro will work properly when used
on this platform.
2013-01-30 09:17:29 -08:00
Oliver Schmidt e88997b71c Minor README updates. 2013-01-29 22:44:37 +01:00
Antonio Lignan 2cf4e30b11 Baudrate now is configured taking into account the MCU frequency, instead of using fixed values for 8MHz freq 2013-01-29 12:23:23 +01:00
Oliver Schmidt 1a5e20bc5f Remove tab chars from retro C sources. 2013-01-28 23:43:08 +01:00
George Oikonomou eea6b9051d Removed a stray leds_toggle 2013-01-09 22:46:20 +00:00
Adam Dunkels 326781ef43 Merge pull request #74 from malvira/maca-dummy-rx
Receive packets in a dummy_rx when the maca packet pool is
2013-01-06 14:10:23 -08:00
Mariano Alvira a53e653bbf Receive packets in a dummy_rx when the maca packet pool is
empty. These packets get dropped.
2013-01-06 15:12:07 -05:00
Mariano Alvira 64ded5aecc run the linker script through CPP so that the stack sizes can be
changed using CONF parameters via DEFINES (e.g. SYS_CONF_STACK_SIZE
4096)
2013-01-05 17:08:59 -05:00
Giovanni `evilaliv3` Pellerano ee556dcf14 minor corrections to adhere contiki code style guidelines 2012-12-21 12:36:29 +01:00
Giovanni `evilaliv3` Pellerano f68df3a81c added support for pic32 (PIC32MX795F512L) 2012-12-17 09:14:23 +01:00
George Oikonomou 380ee3bae9 Code style fixes: cc253x 2012-12-16 19:28:56 +00:00
George Oikonomou 874bec26a5 Code style fixes: cc2430 2012-12-16 19:28:55 +00:00
Arngrimur Bjarnason b533a683c3 Changed makefile. Removed extra slash 2012-12-10 20:41:43 +01:00
Mariano Alvira f60a00b93e the contiki-maca process should wait for a poll event 2012-12-02 14:26:51 -05:00
Mariano Alvira b3bb3ff53d fix very incorrect insert_at_rx_head; the bugged version would make
the rest of the rx list dangling.

this is used to insert the ack packet needed by the upper layers in
the netstack.
2012-12-02 14:25:39 -05:00
Mariano Alvira f7d1d78ac9 disable pad keeper when using ADC pin; otherwise you'll see a 20k input
impedance.
2012-11-30 10:44:26 -05:00
Adam Dunkels db41a51ae6 Make gcc default LD, and allow override with LD_OVERRIDE 2012-11-21 19:46:31 +01:00
Ilya Dmitrichenko d0f18e5d04 Fixed LDFLAGS for cross-compiling of "native" 2012-11-21 18:09:29 +00:00
Ilya Dmitrichenko 092c69639c Enable native target for cross-compiling -
by now it would have worked if you set CC via
command line (e.g. `make CC=clang`, though it
wouldn't work when CC is set in the platform
makefile which includes `Makefile.native`.
2012-11-21 18:09:10 +00:00
Mariano Alvira 03ab3fe317 Newer and cleaner TARGET=econotag as well as robust mc13224v
configuration system.

(also deprecate TARGET=redbee-econotag)

- mc13224v now automatically probes hardware config for buck converter
and 32kHz crystal as well as automatically monitors battery voltage
and manages the buck accordingly.

- new flashed based config system for mc13224v parameters such has
  radio modes (demod, autoack), nvmtype, mac address, channel and
  power.

- considerably cleaned up econotag platform code (suffered from severe
  case of bit-rot)
2012-11-19 19:16:29 -05:00
Mariano Alvira 2c9a538582 Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into bump-libmc1322x
bump libmc1322x to 7bee48243c

Conflicts:
	cpu/mc1322x/board/Makefile.board
	cpu/mc1322x/lib/include/uart.h
	cpu/mc1322x/lib/uart1.c
	cpu/mc1322x/lib/uart2.c
	cpu/mc1322x/src/default_lowlevel.c
2012-11-18 18:27:39 -05:00
Etienne Duble 7905316c54 Fix: stm32w flasher for Ubuntu 12.04 and later 2012-11-09 14:14:57 +01:00
Etienne Duble ecdbbaec9a Fix: handle stm32f-based serial interfaces (/dev/ttyACMx) 2012-11-09 14:00:16 +01:00
George Oikonomou 79cffa030f cc2531: USB CDC-ACM code style fixes
Closes #18
2012-11-01 17:42:04 +00:00
George Oikonomou 1a0f01ccc4 cc253x: Config to swap between UART and USB I/O
See Pull Request #18
2012-11-01 17:41:57 +00:00
Philippe Rétornaz eabaa0c8e4 cc253x: DMA Changes
- Fixed DMA irq flag clearing
- Added a dma_reset helper

See Pull Request #18
2012-11-01 17:41:49 +00:00
Philippe Rétornaz 898bd07810 cc253x: optionally push bits in p2 interrupt
See Pull Request #18
2012-11-01 17:41:46 +00:00
Philippe Rétornaz 0a6e65acdf cc2531: USB changes:
- usb cdc-acm:
  * implement get line coding
  * use printf only when debugging
  * Add events

- usb-core: do not force debugging

See Pull Request #18
2012-11-01 17:41:41 +00:00
George Oikonomou c1d72475d7 cc253x: Renamed P2 interrupt-related files for better consistency
See Pull Request #18
2012-11-01 17:41:38 +00:00
George Oikonomou c60f0b4349 cc253x: P2-related routines are now bankable
We keep the ISR in its own file and move everything else
to a different one, so that we only have to keep the ISR
in HOME

See Pull Request #18
2012-11-01 17:41:32 +00:00
George Oikonomou d9d4fa168d cc253x: Renamed the P2 ISR
This is mainly a naming convention thing, we want to have 'isr'
as part of the name, instead of 'int'. We also want port_2 instead
of p2 because we already had port_1

See Pull Request #18
2012-11-01 17:41:28 +00:00
George Oikonomou fea4970142 cc253x: Configurable linkage for the P2 ISR
See Pull Request #18
2012-11-01 17:41:24 +00:00
Philippe Rétornaz ba96408f37 cc253x: Add USB support to the compilation scripts
See Pull Request #18
2012-11-01 17:41:21 +00:00
Philippe Rétornaz d93fee612d cc2531: Add USB driver
See Pull Request #18
2012-11-01 17:41:17 +00:00
Philippe Rétornaz ddc8120d7c cc253x: Add p2 interrupt handler
The P2 Interrupt is shared across many periferal (I2C, USB, GPIO).
This adds a generic interrupt handler on which the differents drivers
can register a handler.

See Pull Request #18
2012-11-01 17:41:11 +00:00
Philippe Rétornaz dec34c21ef cc2531: change cdc-acm descriptor
Change to have a real usb VID/PID and better fit the capabilities
of the CC2531 hardware (enpoint size, location).

Compile only if the cdc-acm class is requested.

See Pull Request #18
2012-11-01 17:41:07 +00:00
Philippe Rétornaz 0e55eb0947 cc2531: Copy arm usb framework
See Pull Request #18
2012-11-01 17:40:35 +00:00
George Oikonomou 713c2e5974 DOS EOL and indentation fixes (core/ apps/ cpu/)
- Removed some DOS EOLs
- Changed some tabs to spaces
- Removed some trailing whitespaces

Part of Pull Request #6
2012-10-30 13:43:51 +00:00
Adam Dunkels 6c8fbd2dff Merge pull request #11 from adamdunkels/remove-rtl8019
Removed old unused RTL8019 code that had license issues
2012-10-29 08:43:59 -07:00
Adam Dunkels 1af22fa4fe Removed old unused RTL8019 code that had license issues 2012-10-29 16:08:09 +01:00
Mariano Alvira 4087c0785f remove -g
see http://comments.gmane.org/gmane.os.contiki.devel/13869
2012-10-29 10:34:28 -04: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
Niclas Finne f5c8cff5b2 Made MT stack size configurable 2012-10-23 00:52:52 +02:00
George Oikonomou d84a97103f cc2x3x stack debugging macro fix 2012-09-20 15:12:02 +01:00
George Oikonomou fde1510653 Added definitions for cc2530 DMA-related SFR bits 2012-09-20 15:09:15 +01:00
George Oikonomou 3b0e92168b Copied cc2530 stack functions to the cc2430 port 2012-09-20 15:09:15 +01:00
George Oikonomou 95b9d4ee29 Sensinode/cc2430 stack depth optimisation
This replicates the method used by the cc2530 port
2012-09-20 15:09:15 +01:00
George Oikonomou cb168da729 Changed the cc2430 sleep_flag to uint8_t 2012-09-20 15:09:15 +01:00
George Oikonomou fa5a38666b Removed redundant #else blocks 2012-09-20 15:09:15 +01:00
George Oikonomou 88c6689e38 cc2430: Build with --fomit-frame-pointer 2012-09-20 15:09:15 +01:00
Niclas Finne 767e8bb551 Default value for _DATA20_HEAP_SIZE when using the IAR compiler on MSP430 platforms 2012-09-20 14:01:56 +02:00
Niclas Finne 4630945475 Made the stack and heap size configurable when using the IAR compiler on the MSP430 platforms 2012-09-19 22:49:19 +02:00
George Oikonomou ee7af77ca9 Reworked the cc2530 stack debugging facilities:
- Moved to their own file
  (so we can later copy the entire thing over to cc2430)
- Renamed the functions
  (for naming convention reasons)
- The entire thing can be enabled/disabled
- Added a couple more macros
- Hooked into main()
2012-09-07 17:40:17 +01:00
Philippe Rétornaz 9a63e8c027 cc253x: Add stack monitoring helpers 2012-09-07 17:32:54 +01:00
Philippe Rétornaz 48d99f15c8 cc253x: fix dma interrupt enable flag 2012-09-07 17:32:54 +01:00
George Oikonomou c6ec22c4c8 cc2530: Added a method to maximise stack depth
This was oringinally contributed/reported/discussed/patched by
Philippe Retornaz (EPFL) but it's implemented
in a more configurable fashion here.
2012-09-07 17:32:53 +01:00
Philippe Rétornaz 666ff6ca55 cc253x: use a uint8_t for sleep_flag
__bit variables must be located after the 0x20 address
This force the stack to start after 0x20, thus decrease
the stack size by a considerable amount.
2012-09-07 17:32:10 +01:00
Philippe Rétornaz 44bcabe89c cc253x: Change CFLAGS
This add -fomit-frame-pointer by default, it decrease sliglty the
stack usage when several function call are nested.
On some specific case 30 bytes could be saved on the stack.
2012-09-07 17:32:10 +01:00
George Oikonomou 8699f7741d Fixed typos and a stray printf. Adjusted comments 2012-09-07 17:31:25 +01: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
George Oikonomou 26a87ee9cb Improved handling of cc2x3x rf_flags 2012-07-11 10:53:14 +01:00
George Oikonomou 43f2790357 Added channel_get() to the cc2x3x RF drivers 2012-07-11 10:53:14 +01:00
George Oikonomou d66241fd97 Bugfixed the cc2530 LOW_POWER_RX configuration
Report and fix by Tom Xiao
2012-07-11 10:53:14 +01:00
George Oikonomou 62fbd389d8 Renamed a cc253x SFRX to stop namespace conflicts
The TR0 SFRX can not use the name TR0 because it
conflicts with TCON.TR0 on the default 8051.

See SDCC bug 3513300
2012-07-11 10:53:14 +01:00
George Oikonomou 4b73b48f60 Fixed the cc2530 RSSI adjustment 2012-07-11 10:53:14 +01: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
Niclas Finne 418a5772e6 Removed leds debug output 2012-06-07 10:35:22 +02:00
George Oikonomou 47db065034 Bugfixed the cc253x UART0 init (Thanks, Deng Jian)
The flush instruction was resetting the stop bit level to 'low'
2012-06-06 15:25:57 +01:00
David Kopf e9a55cc222 Enable check on received length to prevent buffer overflow. Thank you Cooja! 2012-05-28 13:02:23 -04:00
George Oikonomou 259b497122 Minor Sensinode build cleanup 2012-05-16 15:22:31 +01:00
George Oikonomou 1f7171f943 Adjust cc2x3x ports to the new clock API 2012-05-16 15:22:31 +01:00
George Oikonomou 0d4b90c42b cc2530 watchdog improvements and cleanup 2012-05-16 15:22:31 +01:00
George Oikonomou 274a5ebb9c Fixed a typo which was preventing the cc253x watchdog from starting 2012-05-16 15:22:30 +01:00
Laurent Deru 56914963ef Reactivate flash protection after maca init 2012-05-09 10:24:38 -04:00
Mariano Alvira a4813d815f use --gc-sections instead of -gc-sections 2012-05-06 12:19:20 -04:00
Mariano Alvira 4acad929f0 add gc-sections, roughly 4kB savings. 2012-05-06 09:24:06 -04:00
David Kopf d6dc216e02 Reorder includes to prefer platform routines. Remove redundant RPL define. 2012-04-27 16:54:09 -04:00
George Oikonomou dd26accc07 We can now use SDCC's __nonbanked feature
This allows us to reduce CODE footprint of SDCC projects
built with --model-huge. Use carefully!

* Added a facility which allows us to enable/disable the
  feature from the CPU dir (CC_CONF_NON_BANKED_OPTIMIZATION)
* Added the CC_NON_BANKED keyword to some platform files
  (expands to __nonbanked)
* Started using this for some examples
2012-04-26 15:28:43 +01:00
Adam Dunkels b85bc3379c Bugfix in clock_wait() declaration. Various style fixes. 2012-04-22 20:54:29 +02:00
George Oikonomou e95f94a9a8 Added support for reading MAC from the cc253x flash
We still use the primary location by default (Info Page) but
this is now configurable. This change is useful for users who
wish to specify their own MAC address. Since the Info Page is
read-only, they need to be able to use the secondary location
2012-04-20 16:03:38 +01:00
George Oikonomou 29090a3dda The cc253x Makefile specifies SoC flavor
This will help us slowly add better support for smaller SoCs
instead of just assuming that all cc253x SoCs are F256

- We build for F256 by default but the project Makefile can override this
- We currently ignore this when passing --code-size. This is a ToDo
- The bank allocator always assumes 7 banks. Once we fix --code-size above this will be irrelevant
2012-04-20 16:03:38 +01:00
George Oikonomou 6fb48174ba Fixed a documentation typo 2012-04-20 16:03:37 +01:00
Niclas Finne 1b13b69814 Added support for mspgcc 4.6+ that no longer supports generic MCU identifiers such as msp430x1611 2012-04-10 16:05:10 +02:00
Niclas Finne 57a166c3db Corrected compiler flags for the IAR compiler 2012-04-10 15:27:44 +02: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
George Oikonomou 57969259ce cc2x3x clock_delay(len) now delays for approx. len usecs 2012-04-03 16:26:11 +01:00
George Oikonomou 3cb26adeda Added an ASM(foo) macro for cc243x 2012-04-03 16:26:11 +01:00
George Oikonomou 242e02658f The cc2530 UART driver was sending a 0 down the line on init 2012-04-03 16:26:10 +01:00
George Oikonomou b3de052e01 Ported the stack-friendly clock ISR code over from cc243x to cc253x 2012-04-03 16:26:10 +01:00
George Oikonomou 11a7f644ac Comment rewording and formatting 2012-04-03 16:26:10 +01:00
George Oikonomou ce17fa131c Stack-friendly cc243x clock ISR enabled by default
This new approach (CLOCK_CONF_ACCURATE=0) was not as inaccurate
as originally thought. In fact, it has pretty much the same
accuracy as the old, stack-hungry version.

* Renamed the define from CLOCK_CONF_ACCURATE (1: old) to
  CLOCK_CONF_STACK_FRIENDLY (1: new) to stop implying
  that one is more accurate than the other.
* Using CLOCK_CONF_STACK_FRIENDLY by default.
2012-04-03 16:26:10 +01:00
George Oikonomou 924fe934c1 Deleted obsolete macros. Minor formatting 2012-04-03 16:26:10 +01:00
George Oikonomou ffa3a1c4c3 cc2x3x clock driver cleanup
* Bit-Addressable SFRs are now accessed as such,
  instead of (N)OR-ing the byte
* A routine was declared as CCIF but not defined as such. Fixed
* Deleted a leftover duplicate define
* Formatting
* Comment updates and clarifications
2012-04-03 16:26:10 +01:00
simonduq 930c7c25bc fixes in mb851 and stm32w108: erroneous linking with mpu.o, conf file,
more printouts in main when ipv6 is used, and a target for memory
profiling taking stm's gnu.ld static stack size into account
2012-04-03 11:47:30 +02:00
George Oikonomou 5240519dd9 Renamed a config define to better match contiki's naming philosophy 2012-04-02 11:38:54 +01:00
George Oikonomou bce34e4b9a For cc2x30, moved CLOCK_CONF_SENCOND to the cpu dir.
The value is not really configurable by the platform so having it
in contiki-conf.h didn't make huge sense.
2012-04-02 11:22:19 +01:00
George Oikonomou d958ee3125 Deleted the old Sensinode 'read mac from flash' routine.
Since the introduction of a purpose-written routine, the old
generic one (which was written in asm) was never being used.
There was a configuration directive which allowed us to switch
between the two. All references to this configuration directive
have also been removed.
2012-04-02 11:21:32 +01:00
George Oikonomou 5d8f63a61b We've not been using the cc2430 converter for a while now 2012-04-02 11:03:49 +01:00
George Oikonomou 7854ee499a Wrapped cc2x30 SOFT_RESET() macro inside do {...} while(0) 2012-03-29 13:11:04 +01:00
George Oikonomou 5afdd19403 Adjusted check to determine if we are being built with SDCC
Since rev #7342, SDCC defines __SDCC_mcs51 instead of SDCC_mcs51.
We check for either
2012-03-29 13:10:25 +01:00
George Oikonomou 4f1e251603 Some uN_t had crept back in cc2530dk and sensinode.
Changed to uintN_t plus a bit of code formatting
2012-03-29 13:10:10 +01:00
simonduq 946f00bf7b stm32w: added ability to upload and reset all connected boards, and login using MOTE=x 2012-03-26 23:00:44 +02:00
simonduq 95ae5c5d51 avoid unnecessary symbols.c/h copying 2012-03-26 23:00:43 +02:00
George Oikonomou ad256e5014 New platform: TI cc2530 Development Kit
This commits adds support for TI's SmartRF05 Eval. Board with cc2530 EMs
Some initial support for cc2531 USB dongles
2012-03-23 14:41:07 +00:00
George Oikonomou b7674c3636 Reincarnate the sensinode/cc2430 port 2012-03-23 14:41:07 +00:00
simonduq e4fb360262 stm32w platforms: contikimac support in the Rime case, with EUI-64 2012-03-20 17:30:59 +01:00
simonduq 5da4463236 adding ducy cycling support to the stm32w-based platforms (patch by Chi-Anh La) 2012-03-20 17:29:58 +01:00
Niclas Finne ff7a977dc7 Improved support for the IAR compiler for the MSP430 platforms 2012-03-07 23:09:05 +01:00
Niclas Finne 684c3edfa6 Cross compiler interrupt service routine compatibility definitions for MSP430 based platforms based on isr_compat.h by Steve Underwood. 2012-03-07 23:04:52 +01:00
Niclas Finne 2eee14a1d8 Allow compiler flag SMALL to be set to disable SMALL-build. Patch by Andre Frimberger. 2012-03-06 15:35:20 +01:00
Ilya Dmitrichenko 49cd7878e3 Avoid deprecated error on Darwin. 2012-03-02 15:15:47 -05:00
Ilya Dmitrichenko 499d3052ee Fixed TARGET=native compilation issues on Darwin. 2012-03-02 15:15:42 -05: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
Mariano Alvira 68591919e6 mc1322x: add -MMD to Makefile.mc1322x to correctly create dependencies 2012-02-16 11:17:15 -05:00
Mariano Alvira 43062b6d74 mc1322x: change how board.h works to allow default board.h (defaults
to econotag)
2012-02-13 10:01:36 -05:00
Mariano Alvira ee8f2c669e mc1322x: remove symbols.{c,h} 2012-02-13 10:01:36 -05:00
David Kopf 9d6542d49b Fix minimal-net webserver6, broken after native border router changes. 2012-02-11 15:03:24 -05:00
David Kopf 38267bfd5a Webserver-nano: Add page load times, remove workaround code for bug in arm strformat.c, correct the double count of leading zeros there. 2012-02-11 14:58:35 -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
Niclas Finne f26920ae9b Define the BV macro if not already defined 2012-01-11 08:46:16 +01: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
Niclas Finne f3db12c19d MSP430 setup for f2xxx based on Z1 2012-01-09 14:56:03 +01:00
Niclas Finne 9ffcd53868 Fixed compiler warning (with IAR compiler) 2012-01-09 14:56:00 +01:00
Niclas Finne 3daa822f89 Moved configuration of memcpy workaround to cpu (only needed for an older version of mspgcc) 2012-01-09 14:55:57 +01:00
Niclas Finne fd81a0d393 Minor cleanup (avoid setting some compiler flags twice) 2012-01-09 14:55:54 +01:00
Niclas Finne 8e1e12dfd3 Ignore SMALL when using IAR compiler 2012-01-09 14:55:48 +01:00
Nicolas Tsiftes eba64bdc5e Be more explicit with the relationship between inheritance between MSP430 families. 2012-01-09 14:55:45 +01:00
Niclas Finne cdfa8708e3 * Added f2xxx for two series (for example z1)
* f1xxx is baseline and always included
* Cleaned up the names of uart and spi (no x in names)
* Updated SPI configuration for WiSMote
2012-01-09 14:54:57 +01:00
Niclas Finne f4f84ffca4 Updated SPI config for faster SPI, split msp430/clock/spi into separate versions for MSP430/MSP430X 2012-01-09 14:54:01 +01:00
Niclas Finne 09082f02fe Changed clock_delay to use the nop instruction 2012-01-09 14:49:39 +01:00
Niclas Finne cd4be4927a Fixed quick dco sync to also work with mspgcc 2012-01-09 14:41:42 +01:00
Niclas Finne 708f9d77d2 Corrected timing for higher CPU speed 2012-01-09 14:41:36 +01:00
Niclas Finne 05b10eb9ce Initial WiSMote port based on code from Arago Systems. 2012-01-09 12:25:06 +01:00
Niclas Finne 367c82a5ab added compiler flags and macros for IAR and mspgcc 4.4.5 compilers 2012-01-09 12:24:33 +01:00
David Kopf b251619a2f Add wpcap for cygwin/Windows native border router 2012-01-08 13:37:56 -05:00
Fredrik Osterlind 2644057fb2 using dma by default 2011-12-21 10:53:18 +01:00
David Kopf 81af871db9 Bugfix: use 16 bit tick count to adjust clock after sleep 2011-12-01 09:58:55 -05:00
Oliver Schmidt e38f008b9b The dependency on the ucontext functions has the potential to keep others from successfully using cpu/native for other platforms. As the Contiki multithreading library typically isn't used at all it's not worth the trouble. So we just limit it to Windows and Linux - where it is known to not only build but actually work. If someone needs the Contiki cpu/native multithreading library on another platform he's certainly welcome to add that platform - hopefully by just activating the codepath that we now made exclusive for Linux for his platform. 2011-11-30 23:41:39 +01: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
Niclas Finne bf299b1a07 Fixed splhigh/splx for the IAR compiler 2011-09-27 22:51:28 +02:00
Joakim Eriksson 5b1d9617c4 moved io and signal and IAR-GCC checks from driver files into contiki include file 2011-09-26 10:38:41 +02:00
Joakim Eriksson 95dde73618 fixed Sky platform for IAR compiler 2011-09-11 17:18:02 +02:00
David Kopf f721f646fa Adjust sleep time by ticks instead of seconds, proposed by Ivan Delamer 2011-09-10 12:44:49 -04:00
Adam Dunkels 4fd8133aa3 Removed the obsolete MAC_CONF_CHANNEL_CHECK_RATE (now replaced with NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE) 2011-09-05 20:42:19 +02:00
Mariano Alvira 43910c1be7 don't worry about wraparound in rtimer_arch_schedule 2011-09-02 12:36:10 -04:00
Mariano Alvira 6c0bbc492b change mc1322x rtimers to 32-bit
hardcode a close default value for the RTC
2011-09-02 12:32:47 -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
Mariano Alvira 2b9f4e8fed Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x 2011-08-01 19:50:46 -04:00
David Kopf cf3241c5db Add file needed for rpl border router 2011-07-24 12:07:39 -04:00
David Kopf 0bb585fd60 Replace WEBSERVER by AVR_WEBSERVER 2011-07-24 11:43:17 -04:00
Simon Berg 506eced1bc Bug fix by Jonathan Chung 2011-07-22 15:07:52 +02:00
Mariano Alvira 485d6716e0 Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x
Conflicts:
	cpu/mc1322x/src/default_lowlevel.c
2011-07-18 07:25:19 -04:00
HATATANI Shinta f4740a062a IRIS port is working with uIPv6 2011-07-15 16:36:25 +09:00
Mariano Alvira 758fc37307 mc1322x: flush the rx fifos when full 2011-07-12 07:05:04 -04:00
Mariano Alvira 4cf9514aa9 fix gpio initialization for uart2 2011-07-09 14:33:03 -04:00
Mariano Alvira 6d96721ac4 mc1322x: block in uart putc if the TX buffer is full. Can also be
configured to drop chars instead with UARTx_DROP_CHARS
2011-07-09 12:46:30 -04:00
Mariano Alvira e80f9eb4b5 mc1322x: build fixes for uart2 2011-07-08 19:40:42 -04:00
Mariano Alvira e2d74fa0a5 Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into uart-upstream
Conflicts:
	cpu/mc1322x/lib/include/uart.h
	cpu/mc1322x/src/default_lowlevel.c
2011-07-08 19:21:15 -04:00
David Kopf 6ea7250af7 Change ctimer startup order, add multihop to wpcap and minimal-net platform. 2011-06-30 12:12:07 -04:00
David Kopf c48b7ab78d Add RPL nodes and border router to minimal-net platform (cygwin only) 2011-06-28 08:19:48 -04:00
David Kopf 6b434a553f Implement SRAM routine of Georg von Zengen 2011-06-21 13:03:58 -04:00
Joakim Eriksson af601dfb23 improved support for IAR compiler for z1 2011-06-05 00:21:47 +02:00
Mariano Alvira 33b32c61e9 Only insert an ack packet if the ack request bit is set 2011-06-01 13:47:05 -04:00
Joakim Eriksson 77ec0bfa0f fixed the z1 platform and generic code used by z1 to work with IAR compiler 2011-05-25 17:21:51 +02:00
Mariano Alvira 724bcbd2d3 Merge remote branch 'libmc1322x/master'
Conflicts:
	cpu/mc1322x/src/default_lowlevel.c
2011-05-14 21:19:47 -04:00
Joakim Eriksson fd75050c67 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-05-13 11:53:45 +02:00
Joakim Eriksson 2c16538e6a fixed support for IAR compiler 2011-05-13 11:52:42 +02:00
Salvatore Pitrulli 7a48110067 STM32W flasher utilities for Linux and Windows merged into a single folder. 2011-05-10 19:26:33 +02:00
Mariano Alvira 0a2b86456b add option to insert an ack packet on autoack 2011-05-08 09:50:57 -04:00
Mariano Alvira 65671c66c6 turn on insert ack packet by default 2011-05-08 09:50:57 -04:00
Joakim Eriksson 3fa8da5ddf fixed IAR compilation paths 2011-05-02 15:19:28 +02:00
Salvatore Pitrulli 5eabf33211 Added functions for deep sleep to mbxxx platform. 2011-04-27 18:12:23 +02:00
Mariano Alvira d80449244d Merge remote branch 'libmc1322x/master' 2011-04-20 21:23:47 -04:00
Salvatore Pitrulli 01a7a78a94 Fixed temperature ADC conversion bug on mbxxx.
The conversion was made from an incorrect source when
the GPIO pin was not PB7.
Added functions and macros used to select the correct
ADC channel.
2011-04-20 18:06:20 +02:00
Salvatore Pitrulli aa968309af Merge remote branch 'sf/master' 2011-04-16 16:27:10 +02:00
Niclas Finne 813489633c Added missing include 2011-04-15 15:49:43 +02:00
Salvatore Pitrulli 4ff82b76e5 Removed -fsigned-char GCC compiler options. 2011-04-14 08:12:11 +02:00
Salvatore Pitrulli 0105057c44 Removed unwanted file. 2011-04-14 08:10:58 +02:00
Salvatore Pitrulli 0a0ad39c9b Added weak symbols for STM32W exception handlers and other minor updates for the HAL. 2011-04-14 08:06:13 +02:00
Salvatore Pitrulli 57163c616d Removed some warnings. 2011-04-14 08:05:21 +02:00
Salvatore Pitrulli af8e58e063 Set LED pins to output when MB851 is in sleep mode.
This reduces power consumption.
2011-04-13 18:14:12 +02:00
dak664 2e14df3981 Options to extend mc1322x fifo to RAM buffer, or use hardware flow control with tunslip6. 2011-04-08 15:15:16 -04:00
Salvatore Pitrulli 6655c876f2 Added functions and example for deep sleep on mb851.
The added function let a process to make the system go
into deep sleep for maximum power saving.
The udp-ipv6-example shows how to use these new functions.
2011-04-08 11:53:48 +00:00
dak664 89741bd322 Exit on watchdog reboot call 2011-04-07 17:47:54 -04:00
dak664 581d081ffe Don't use RF230_CONF_CCA_THRES if it is not defined. 2011-04-07 17:44:10 -04:00
Joakim Eriksson f603c965c1 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-04-06 20:15:44 +02:00
Joakim Eriksson 928bf6b6c1 fixed cpu/msp430 for compilation with IAR compiler 2011-04-06 20:08:48 +02:00
Mariano Alvira 4f4e06c71b Merge remote branch 'libmc1322x/master' 2011-04-06 05:56:06 -04:00
Oliver Schmidt 5da4faf71e Allow VC++ to be used as alternative to GCC for building in the WIN32 target.
TODOs:
- Update README
- Add dependency handling
- Add rtimersupport
2011-04-03 22:32:11 +02: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
Mariano Alvira 11f5bca7c4 Merge remote branch 'libmc1322x/master'
Conflicts:
	cpu/mc1322x/board/redbee-econotag.h
2011-03-22 16:28:08 -04:00
Salvatore Pitrulli eb588f1aec New HAL and SimpleMAC for STM32W108. 2011-03-22 19:35:49 +01: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
Mariano Alvira 74517b9df4 Merge remote branch 'libmc1322x/master' 2011-03-13 17:14:32 -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 0573ecd62f Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-03-11 16:51:10 -05:00
dak664 bf5be5056f Testing $OS works with cygwin and DOS command windows 2011-03-11 16:50:35 -05:00
Mariano Alvira f2b92cfa98 mc1322x: remove bad rule from cpu Makfile 2011-03-11 16:32:25 -05:00
Mariano Alvira 59d7fad746 Merge remote branch 'libmc1322x/master' 2011-03-11 16:28:14 -05:00
dak664 6a5c8ff1c4 Include file needed for slip rpl-border-router build 2011-03-11 14:10:30 -05:00
Mariano Alvira a1ae79307b mc1322x: remove auto reception mode as it appears to be the cause of
the periodic autoack checksum errors. removing auto mode doesn't seem
to create any performance issue.
2011-03-11 06:28:47 -05:00
dak664 bb574fd1e2 Don't create an object directory if target does not exist 2011-03-10 14:59:21 -05:00
Mariano Alvira 5208aa14ea mc1322x: remove auto reception mode as it appears to be the cause of
the periodic autoack checksum errors. removing auto mode doesn't seem
to create any performance issue.
2011-03-08 15:36:53 -05:00
dak664 de7bcda99f avrdude and makefile changes suggested by Georg von Zengen 2011-03-08 13:07:00 -05:00
Mariano Alvira fa08b09770 Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into update-lib 2011-03-07 12:37:26 -05:00
Mariano Alvira 2c79ab4962 mc1322x: increase the heap to 4K 2011-03-05 16:52:35 -05:00
Mariano Alvira befbd4a479 mc1322x: handle board file differently if cygwin 2011-03-04 16:54:59 -05:00
Fredrik Osterlind dd7cec737d removed obsolete leds_[color]() functions, replaced by leds_{on,off}()
allow LEDS_[COLOR] to be configured by platform-conf
2011-03-03 17:48:32 +01:00
Mariano Alvira f0c27340c6 mc1322x: increase the HEAP to 2048 bytes: needed for COAP server. 2011-02-25 16:10:08 -05:00
Mariano Alvira bea643bc4a mc1322x: flush the radio rx queue in the receive process 2011-02-23 15:19:45 -08:00
Mariano Alvira c12ab0d484 mc1322x: get the tx status for a packet and return the proper response. 2011-02-23 15:19:44 -08:00
Mariano Alvira 535b9d35d7 mc1322x: disable broken maca calls for now.
maca_on, maca_off, and contiki_maca_init don't work correctly;
they mess up address filtering.

disable them for now and fix them later.
2011-02-23 15:19:44 -08:00
dak664 46297de770 Allocate variable only when mass storage is enabled 2011-02-23 14:06:06 -05:00
Mariano Alvira c857e57d2f msp430: fix "implicit declaration of function" warnings in clock.c, by including watchdog.h 2011-02-21 09:23:52 -08:00
Mariano Alvira 8f9cf50e55 set timestamp packet attribute 2011-02-18 12:46:34 -05:00
Mariano Alvira a86a0fbe0e set lqi packet attribute 2011-02-18 12:46:10 -05:00
Mariano Alvira 07f77b02eb Merge remote branch 'libmc1322x/master' 2011-02-18 12:38:30 -05:00
Mariano Alvira 2e331b51e8 Merge remote branch 'libmc1322x/master' into update-libmc1322x
Conflicts:
	cpu/mc1322x/COPYING
2011-02-17 14:41:47 -05:00
Mariano Alvira 2e33e1694a Merge branch 'libmc13-9f82e068' into update-libmc1322x 2011-02-17 14:39:20 -05:00
Mariano Alvira 7cdfbb0947 remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
Mariano Alvira bfb471c782 add proper arm flags and remove Makefile.src as it's not used. 2011-02-08 09:55:50 -05:00
Mariano Alvira b1dd3fc063 use the CS toolchain by default:
http://www.codesourcery.com/sgpp/lite/arm/portal/release642
2011-02-08 09:55:23 -05:00
Mariano Alvira 81552d1f6d add a tutorial for rest-example 2011-02-08 09:08:05 -05:00
Mariano Alvira 5c3ef556d9 add a dummy io.h for mc13224v 2011-02-08 09:07:54 -05:00
Mariano Alvira f5ba70cd20 add heap and _sbrk to mc13224v 2011-02-08 09:07:23 -05:00
Mariano Alvira 9572baa71b fix mc13224v led driver to only touch gpio used for leds. 2011-02-08 09:07:11 -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
Mariano Alvira 2a75a4a5df this fixes a major problem with the maca_process
Before it didn't do process_poll like it should and would add events
out of turn and mess up the event processor --- that would cause the
button to stop working after the unhandled events exceeded a max
number

this fixes maca_process to do a process_poll as it should. now the
button works fine and so does the radio.
2011-02-03 18:09:51 -05:00
oliverschmidt 8c87f85a1d Made cc65 build compatible with make.exe from GnuWin32 and cmd.exe. We just live without the phony targets when building with cmd.exe - the next cc65 release will make the whole sed thingy obsolete anyway :-) 2011-01-23 16:30:30 +00:00
joxe 801a7e1149 fixed bug with uart DMA 2011-01-19 20:44:20 +00:00
salvopitru 5fcae86be3 Now it is putchar that has to be redefined (instead of __io_putchar), like other platforms. 2011-01-19 09:13:06 +00:00
adamdunkels 8f283b3989 Bugfix 2011-01-19 07:30:31 +00:00
adamdunkels 6f076dbe1a A set of compiler options that reduce the size of the final code size and RAM usage with ~10%. Courtesy of Simon Duquennoy. 2011-01-19 07:24:37 +00:00
maralvira 68180c0574 use network 230 --- 802.15.4 no-FCS 2011-01-18 16:58:18 +00:00
adamdunkels bb2e3b25bd Larger default DMA tx buffer size, to allow SLIP operation. Warn if DMA is enabled, since MSPsim does not yet support it. 2011-01-18 16:07:16 +00:00
maralvira ce92a90e58 new timer setup routines. 2011-01-17 15:51:19 +00:00
maralvira b3c8c14b7d add timer setup routines 2011-01-17 15:51:02 +00:00
maralvira ca098db611 fix a race condition regarding advancement of the softclock. Without
this, the advancment would fail to trigger a tx cycle
occasionally. This would cause the packet to get deferred until the
next expiration of the softclock.
2011-01-17 15:49:17 +00:00
maralvira 40bb4b80dc whitespace fixup to sync with libmc1322x 2011-01-17 15:48:39 +00:00
maralvira 6fb75263f9 fix parsing and pcap generation for packets with multiple output lines
(those that are > 16 bytes).
2011-01-17 15:47:23 +00:00
maralvira d82b004154 fix parsing and pcap generation for packets with multiple output lines
(those that are > 16 bytes).
2011-01-17 15:47:08 +00:00
maralvira d0227afbed cycle channel on keypress. 2011-01-17 15:46:27 +00:00
maralvira c78e1e345e add stdint.h 2011-01-17 15:45:02 +00:00
maralvira 0445a4f78f add cmdline options to set the intercharacter delays. 2011-01-17 15:44:18 +00:00
maralvira fb8c08ca7c only use these stubs with linux toolchains 2011-01-17 15:42:24 +00:00
salvopitru 9aa734936f RANDOM_MAX changed to RANDOM_RAND_MAX. 2011-01-17 10:08:14 +00:00
salvopitru fb75503624 'BTM' can be defined to flash devices already in bootloader mode.
COFFEE_FILES changed to COFFEE.
2011-01-17 09:41:47 +00:00
salvopitru a9b1b37bec Added definition of BAUD2UBR macro. 2011-01-17 09:22:24 +00:00
adamdunkels f002563e60 Tx on interrupts occasionally misses characters on output. Therefore we turn it off by default. 2011-01-09 20:44:14 +00:00
ksb eb24078ffb Converted CRLF line endings to LF 2011-01-05 17:16:42 +00:00
joxe 5b7b3da99c minor fixes of DMA uart code 2011-01-05 13:36:38 +00:00
joxe 565fda47aa added initial uart1 DMA rx support and required LPM requirements api 2011-01-05 12:02:01 +00: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
adamdunkels f370b217a5 Turned up the rtimer resolution to 32678 Hz. 2010-12-16 22:50:21 +00:00
adamdunkels 1d090ea0f5 Made configuration of CC2420 SFD timestamps easier 2010-12-16 22:49:33 +00:00
adamdunkels c0fedd7661 Store timestamps in the cc2420 module instead of the cc2420-arch-sfd module 2010-12-16 22:49:12 +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
salvopitru d0db3fc39a Added a check for Coffee start address. 2010-12-15 15:01:00 +00:00
dak664 1cc336f188 Conditional code to use hardware multiply by default. 2010-12-15 14:11:06 +00:00
salvopitru 5fe80dd99d Added elfloader machine dependent code for STM32W. 2010-12-15 11:10:20 +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 Schfer 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
nifi 7110afdad5 added missing include 2010-11-27 15:27:20 +00:00
dak664 dc028b3f85 Get rssi correctly in either rx mode, clean up radio driver debugging 2010-11-26 20:39:15 +00:00
adamdunkels 149f4e8d21 Enable the watchdog for rtimers too. Removed the disabling of the TACTL - it should not be needed, and interferes with the timing behaviour of stable rtimers 2010-11-25 09:22:56 +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
adamdunkels 4fac3037e0 Fixed a bug found by Moritz Straube - writing to the internal flash would lock up contikimac. The problem was due to the IFG1 being reset to zero before writing to flash. 2010-11-15 21:52:54 +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
nifi 5de83c9085 Only include code for stack printouts when needed 2010-11-12 15:54:41 +00:00
maralvira 3426eae031 fix typos 2010-11-11 20:37:33 +00:00
maralvira 9b2a2bb5e6 fix up stdint include 2010-11-10 22:12:29 +00:00
maralvira 6da84819dd use stdint.h instead of custom types.h
stdint.h is more portable across compilers
2010-11-10 22:06:28 +00:00
maralvira e229022f38 include crm.h 2010-11-10 21:58:12 +00:00
salvopitru 28e1445a0f Added a simple implementation of Coffee for STM32W108. 2010-11-10 11:20:44 +00:00
maralvira dfbc81158b Allow CROSS to be overridden with CROSS or CROSS_COMPILE 2010-11-09 13:13:45 +00:00
maralvira 1aac14f252 add tutorial explaining how to set up an RPL network of econotags 2010-11-09 01:30:01 +00:00
maralvira 3b515587c5 change how prepare and transmit work --- Contiki expects to call
prepare once and then transmit many times to repeat the same packet
over and over. This didn't work like that, but now it does.
2010-11-07 20:07:42 +00:00
maralvira e029fa8da0 fix defines for raw mode 2010-11-07 18:34:52 +00:00
maralvira 4664151419 fix build errors with start.S 2010-11-07 15:19:45 +00:00
maralvira 29333232d5 add section .start and undef _start so that _start is placed by the
linker correctly
2010-11-07 14:57:53 +00:00
maralvira b8ebce0fef add a memory section for RAM so that the linker will warn when you've
made your program too big.
2010-11-07 14:54:05 +00:00
maralvira 8385536c41 fix how start object is linked 2010-11-07 14:52:23 +00:00
maralvira f38598ce9f clear BSS 2010-11-07 14:49:42 +00:00
maralvira 57513948c9 Move stack near BSS so it doesn't take up space in the .bin 2010-11-07 14:48:52 +00:00
maralvira 77cf0f0f5e update ring_osc_on and _off to the new bit structs 2010-11-07 14:42:31 +00:00
maralvira c8056cc4e2 define TCF TCF1 and TCF2 --- the new bit structs don't work here for
some reason.
2010-11-07 14:42:02 +00:00
maralvira dab7faf13c Add gpio_set and gpio_reset
Use them like gpio_set(GPIO_xx) and gpio_reset(GPIO_xx).
These macros efficiently set the DATA_SET and DATA_RESET bits without
reading the registers first, as a direct GPIO->DATA_SET.GPIO_xx would do
2010-11-07 14:29:04 +00:00
maralvira 4a4a39c84a Name the GPIO structure so we can set multiple bits at once 2010-11-07 14:28:30 +00:00
maralvira 4217eb2ebc Provide a function to change timer interrrupt handlers
Function irq_register_timer_handler(int timer, void (*isr)(void))
lets you change the handler at runtime.  This lets us set handlers
without necessarily knowing the name at link-time.  The old way of
having weakly-linked tmr0_isr functions should still work.
2010-11-07 14:27:01 +00:00
maralvira 65d3942c76 Add the disable_int({}) macro
This is similar to safe_irq_enable and disable
2010-11-07 14:26:24 +00:00
maralvira 83e6995af1 Add TMR_ADDR helper 2010-11-07 14:25:07 +00:00
maralvira d930ce0e2b Add some useful timer macros 2010-11-07 14:24:36 +00:00
maralvira 5e00219a9c Register definitions: get rid of some macro magic that doesn't help much
Instead of e.g. GPIO.DATA.GPIO_08, you now use GPIO->DATA.GPIO_08.
2010-11-07 14:24:11 +00:00
maralvira 091e4cd84e Add structure-based ITC access 2010-11-07 14:23:15 +00:00
maralvira 11ac20a361 REF_OSC is a 32-bit number, not 64-bit number 2010-11-07 14:22:51 +00:00
maralvira 745e7b5ac2 Add cal_isr() support 2010-11-07 14:21:59 +00:00
maralvira ab84453401 Add structure-based CRM definitions 2010-11-07 14:21:33 +00:00
maralvira 9d072d5309 Add macro to help compute TMR.ENBL values (useful when using #defined
values to represent timers)
2010-11-07 14:21:06 +00:00
maralvira 85e6b06175 Add pin definitions for each timer, they're fixed 2010-11-07 14:19:17 +00:00
maralvira 8d2f740f7f Fix #ifdefs in board files 2010-11-07 14:18:54 +00:00
maralvira 3726588f02 Add structure-based GPIO register definitions 2010-11-07 14:17:45 +00:00
maralvira 20b477db13 Add structure-based timer register definitions 2010-11-07 14:17:20 +00:00
maralvira c71a0243ff Add missing type for TMR0_COMP2 2010-11-07 14:16:28 +00:00
maralvira 62a45c7ba2 Add script to invoke kermit with a particular port and speed 2010-11-07 14:15:40 +00:00
maralvira 2ac88222f6 Use "rm -f" in clean rules to ignore errors 2010-11-07 14:14:47 +00:00
maralvira 2e87143381 use kermit in open-terms 2010-11-07 14:13:22 +00:00
maralvira c8be3047c3 fix byte ordering in burn-macs 2010-11-07 14:12:55 +00:00
maralvira 0450b3fd90 add script that burns the mac address only --- mac address is Redwire
IAB + tty number.
2010-11-07 14:12:27 +00:00
maralvira f913cf728b modify flasher.c to not create a vaild boot magic number if the length
of the file is zero

modify mc1322x-load.pl to optionally send a zero length file with -z;
extra data on the command line is still written.

This allows you to burn the mac adress without flashing a vaild image.
2010-11-07 14:11:50 +00:00
maralvira 9f7d860e9c add scripts to help load a bunch of econotags 2010-11-07 14:11:18 +00:00
maralvira 8b2ef2675d discard received packets --- this lets you run multiple rftest-tx's at
the same time.
2010-11-07 14:10:16 +00:00
maralvira e00349509d add simple install rule 2010-11-07 14:09:43 +00:00
maralvira ee943c062d add autoreset command and do_exit option 2010-11-07 14:08:50 +00:00
maralvira e886e83908 fix bug in print_packet
Thanks dean and jim.
2010-11-07 14:07:33 +00:00
maralvira f1fede7090 get LQI of received packets 2010-11-07 14:06:57 +00:00
maralvira ae0b7f846f Fix the CNTR defines.
Thanks to Ruslan for finding this.
2010-11-07 14:04:59 +00:00
maralvira 646a37f8b3 use the hardware random number generator 2010-11-07 13:52:12 +00:00
dak664 eb0d5c7f45 Add missing includes 2010-11-03 16:55:40 +00:00
oliverschmidt 1dfe490f9b Use some defined event constant instead of just 0. 2010-10-31 22:51:17 +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
salvopitru d8711d32a3 Added configuration in order to run Rime. 2010-10-27 14:05:23 +00:00
salvopitru db3f1864a0 Increased minimum stack size, because rpl uses it much more. 2010-10-26 11:07:20 +00:00
salvopitru 33ccbbb509 Fixed compile error raised after rand.c removal. 2010-10-26 10:47:23 +00:00