Commit graph

208 commits

Author SHA1 Message Date
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
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
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
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
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
nifi 7110afdad5 added missing include 2010-11-27 15:27:20 +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
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
nifi 5de83c9085 Only include code for stack printouts when needed 2010-11-12 15:54:41 +00:00
adamdunkels 34f6a60a4a By default, don't print stack on reboot, since there are cases where this may hang the CPU (when the CPU is in LPM when the watchdog triggers). Must fix the code to set the UART and CU into correct modes before enabling stack printout on reboot. 2010-10-24 21:10:25 +00:00
adamdunkels 5585d72c86 A simple but substantial change: uIP used the htons()/HTONS() macro
functions for converting between host and network byte order. These
names are the de facto standard names for this functionality because
of the original BSD TCP/IP implementation. But they cause problems for
uIP/Contiki: some platforms define these names themselves (Mac OS,
most notably), causing compilation problems for Contiki on those
platforms.

This commit changes all htons to uip_htons instead. Same goes for
htonl, ntohs, and ntohl. All-caps versions as well.
2010-10-19 18:29:03 +00:00
adamdunkels 7c14899eeb Made stack printout on reboot configurable.
Added the ability to turn on watchdog multiple times - the watchdog
registers are touched only when the watchdog goes from off to on state
to avoid retriggering the watchdog when it shouldn't.
2010-09-22 22:12:37 +00:00
nifi f5ea831445 Added function rtimer_arch_now that makes sure that the timer value does not change between readouts to avoid reading while the timer is being updated. 2010-09-13 20:51:09 +00:00
joxe c0549cad3d added some files for MSP430X I/O 2010-08-24 16:23:20 +00:00
joxe 705f8cc451 fixed naming of SPI and CC2420 related code 2010-06-23 10:19:15 +00:00
nifi 20c8b4f9c6 removed obsolete comments 2010-06-15 13:30:42 +00:00
nifi 808116ff56 Made SFD timestamps configurable via external definition 2010-05-10 11:32:44 +00:00
nifi 9638789d9d Added rule to use MSPSim to show the maptable from the last compilation on MSP430 targets 2010-04-20 15:38:09 +00:00
adamdunkels 5eb22ad289 Print out stack pointer when rebooting node 2010-04-04 12:30:10 +00:00
adamdunkels 0ed236e774 Bugfix: the clock interrupt now flushes the energy estimator to avoid overflow of the LPM mode 2010-04-04 12:29:50 +00:00
adamdunkels 52ad0008dc Bugfix 2010-03-31 11:55:04 +00:00
adamdunkels 4447782ab4 Print out a stack trace when a node reboots because of the watchdog 2010-03-30 23:02:23 +00:00
adamdunkels ac172a5575 Turn off LPM mode for clock interrupts to avoid rtimer wrapping during extended LPM 2010-03-29 21:53:32 +00:00
nifi ebfa6c5ef1 only include memcpy/set workaround when needed 2010-03-21 10:40:15 +00:00
joxe e99c906caf activated the new workaround... 2010-03-19 14:50:07 +00:00
joxe 7e6919cc8c fixed workaround for memcpy/set to be memory efficient but slower 2010-03-19 14:39:45 +00:00
adamdunkels 04cdae05c3 Increased the rtimer granularity: needed to make contikimac work 2010-03-19 13:25:52 +00:00
fros4943 db777ce3d0 reverted previous patch: appears to create problems on hardware 2010-03-05 12:06:03 +00:00
nvt-se 7543d53603 Ensure that the UART port is available before writing 2010-03-03 23:18:58 +00:00
adamdunkels 465125c5e7 Added support for 32-bit clock ticks: when reading the 32-bit value, make sure that it does not change between readouts to avoid reading right in the middle of it being updated 2010-02-23 18:41:20 +00:00
adamdunkels 953a8c2015 Turn off timer before updating - needed to avoid bugs in ContikiMAC - not 100% sure why 2010-02-18 22:15:54 +00:00
adamdunkels 4ff6b5460a Removed safeguards around the update code for the timer; turns out they weren't needed (but instead triggered a bug in MSPsim) 2010-01-30 14:03:35 +00:00
adamdunkels dbacf3e781 Values altered in interrupt handlers should be volatile 2010-01-26 10:20:16 +00:00
adamdunkels 5a03e4e6ad Bugfix: changed #ifdef to #if, otherwise the SFD code would be enabled anyway 2010-01-19 20:35:41 +00:00
adamdunkels 9d751da8e5 Disable SFD interrupt by default 2010-01-19 13:11:23 +00:00
adamdunkels acea0afb35 Enable a flag when packet SFD seen 2010-01-19 13:11:01 +00:00
adamdunkels 2772d31ae6 Turn off Timer A before modifying its control registers to avoid problems when timer is updated frequently 2010-01-18 21:17:11 +00:00
nifi a364213180 IRQ_PORTx is no longer used. Instead returning port number. 2010-01-14 20:05:58 +00:00
nifi a937f8626c removed files no longer used with new sensor APIs 2010-01-14 18:10:31 +00:00
adamdunkels 9ac4109bad Increased the clock speed to 32768/4 from 32768/8 to provide better accuracy for power profiling of radio CCA checks 2009-12-09 12:55:35 +00:00
adamdunkels f9260c4fae Enable interrupts during the periodic clock processing to allow rtimers to execute on top of the clock 2009-12-08 23:40:14 +00:00
adamdunkels a4df6e0fbf Remove the read from TAIV - this should not be done for TIMERA0 interrupts (in fact, doing so messes up the other timer a interrupts, like the clock tick...) 2009-12-08 23:39:45 +00:00
adamdunkels 873f4d0222 Need to clear the interrupt flag register for Timer A 2009-12-07 14:32:16 +00:00
adamdunkels e3fed27f4a Broke out the CC2420 SFD interrupt into a separate file to allow easier overloading with project-specific files 2009-12-05 19:42:56 +00:00
nifi efdbbf9fe3 minor cleanup: random.c is already included in Makefile.include 2009-11-19 17:33:05 +00:00
nifi 4f2318152e Added support for CPU speed 2.4576MHz and configuration to enable/disable interrupt driven TX 2009-11-18 15:45:32 +00:00
nifi 2640f9bf26 Must check error flag before reading. Removed leds debug. 2009-11-18 13:24:12 +00:00
adamdunkels 790f2f632a Moved putchar into separate file to make it easier to override its implementation 2009-10-30 15:06:26 +00:00
fros4943 53d03aa924 uart correction values for 3.9Mhz (default sky freq.) 2009-10-27 16:25:28 +00:00
fros4943 b0291ca5a8 bug fix: wake up MSP430 when leaving rtimer interrupt if the rtimer polled a process.
thanks to Marco Vedovati for finding the bug
2009-10-06 09:21:46 +00:00
nifi c6f7ef84fe Initialize the transmit ringbuffer before enabling TX interrupt 2009-09-08 10:39:49 +00:00
adamdunkels 18486d4e3d Patch by Gideon Ernst: use explicit $(CONTIKI) path instead of implicit ../../ path to the mknmlist script 2009-09-03 17:41:58 +00:00
nvt-se 172ffb74c7 fix compiler warnings. patch from Jesper Karlsson. 2009-04-08 14:56:00 +00:00
nifi c1d490b6a7 added workaround for memcpy/memset bug in mspgcc 2009-04-06 13:07:37 +00:00
joxe 4f41b30b2b fixed variable names 2009-04-02 22:39:29 +00:00
joxe 7d2a08b29c added initial set-up code SFD capture interrupts usable for exact packet timestamping 2009-04-02 22:23:06 +00:00
adamdunkels 0076bfe8a5 Changed the name of the 'serial' module to 'serial-line' to signify that the module is about lines of data from the serial port, not individual bytes, and to make sdcc happy 2009-03-17 15:56:32 +00:00
adamdunkels 62ef4002a5 Always prod the watchdog on output to avoid spurious resets during long serial outputs 2009-03-02 22:01:26 +00:00
adamdunkels 6ab7ac0598 Added optional interrupt-based transmission, based on the ringbuf library 2009-03-01 20:40:30 +00:00
adamdunkels e34e97cd6f Minor code style fixes 2009-02-24 21:30:20 +00:00
nvt-se bff9841fbf Removed obsolete definitions. 2009-02-20 23:16:08 +00:00
joxe 80848e4106 added DCO-resync function and default config 2009-02-04 18:28:44 +00:00
joxe 5a8dc2df28 added handling function for checkin if uart is transmitting or receiving - patch by Klaus Stengel 2009-01-31 12:46:57 +00:00
nifi 9bf0dff605 Compile using . instead of separate make rules for .firmware 2008-12-16 13:54:25 +00:00
joxe 23b7db88d5 moved rtimer from TimerB to TimerA so that TimerB subsystem is free for other uses 2008-12-02 12:44:48 +00:00
nifi 2013c4fece Simulator for MSP430-based platforms 2008-11-24 11:09:36 +00:00
fros4943 1fbcfde0d6 implemented support for data argument when starting threads:
given function is called from a wrapper instead of immediately returned to via the stack
2008-11-21 10:28:32 +00:00
nifi 49f57b7848 changed to use unsigned long for seconds counter 2008-10-10 12:36:58 +00:00
joxe 8748230ead changed usart code to handle LPM3 2008-09-18 17:59:27 +00:00
fros4943 b90075ea0a bug fix, msp430 hw bug (undocumented):
when in continuous/compare mode the interrupt handler may get called before CCR==TR.

behavior observed when the timer is toggled between STOP/CONT in an external interrupt handler (serial input).

possibly this problem may also affect watchdog timer/timer B
2008-09-16 12:00:48 +00:00
fros4943 3ec170cdf5 added empty mtarch_stop() 2008-08-27 13:10:29 +00:00
adamdunkels fc6d059d24 Added a clock_seconds() function prototype to core/sys/clock.h, that returns seconds in 32 bit format. On platforms like the MSP430, which has a 16 bit native datatype, this cannot be implemented with an interrupt tick that increments a 32 bit value because access is not atomic. Instead, the MSP430 code increments 16 bit seconds value and converts this into a 32 bit value through an offset calculation. If the new value is smaller than the last check, the offset is incremented by 65536. This change also means that CLOCK_CONF_SECOND must be a power of two because a modulo operation is used inside the periodic tick interrupt handler. 2008-07-07 23:38:09 +00:00
adamdunkels 62b7ef5173 Moved energest from lib/ to sys/ 2008-07-04 00:02:21 +00:00
adamdunkels 64b6663b11 moved energest from lib/ to sys/ 2008-07-03 23:59:20 +00:00
adamdunkels 7c459c849d The .ihex file use the intermediate Contiki-wide .$(TARGET) target instead of the MSP430-specific .firmware 2008-07-02 14:11:34 +00:00
adamdunkels 66876625d4 Changed name of the simple-cc2420 module to cc2420: changed all function names and variable names from simple_cc2420_* to cc2420_*. 2008-07-02 09:05:40 +00:00
adamdunkels 1586d8f36f Changed filename of the CC2420 driver from simple-cc2420 to cc2420. 2008-07-01 21:02:51 +00:00
adamdunkels 2569a8fc69 Removed unused file 2008-07-01 20:59:44 +00:00
joxe 57dedee38f enabled ADC IRQs if ADC sensors active 2008-04-25 15:53:55 +00:00
adamdunkels da49b950d4 Count the number of times the watchdog has been stopped to avoid starting it when someone else has stopped it 2008-02-11 10:45:19 +00:00
adamdunkels 660b7f9a78 Initialize watchdog instead of stopping and starting it 2008-02-11 10:44:49 +00:00
adamdunkels cf5ff2bbb2 Made SLIP code coexist with ordinary serial code. If WITH_UIP=1, the SLIP code is used instead. 2008-02-03 20:59:35 +00:00
adamdunkels e68d669265 Added improvements suggested by Hardy Greich: define CPU speed in one place only (contiki-conf.h), added nop to XTAL settlement delay 2008-02-03 20:58:11 +00:00
adamdunkels a4d5ca833c Update the periodic watchdog only if it is not stopped 2008-01-21 10:39:23 +00:00
adamdunkels e16b7ffcf0 Changed the return value of the inpt handler function to int so that it can wake up the CPU from LPM 2008-01-08 08:04:09 +00:00
adamdunkels 7f05b8a5ef Added a reboot function 2008-01-08 08:03:02 +00:00
adamdunkels b50d2b02ee Reformatting to comply with code style 2008-01-08 08:01:41 +00:00
adamdunkels 345d0a8a79 Added a WERROR definition that can be used to turn -Werror on 2008-01-08 08:01:01 +00:00
adamdunkels 6e0e6e1279 Removed -Werror since LPM*_EXIT; and friends trigger an internal mspgcc compiler error 2007-11-26 23:23:20 +00:00
joxe a4985fd1f7 removed offset in rtimer_arch 2007-11-19 22:38:57 +00:00
adamdunkels 2132462716 Updated to use the watchdog API 2007-11-17 10:28:04 +00:00
adamdunkels 19b7bd9217 Fixed watchdog support for the MSP430. It now works as intended 2007-11-17 10:16:48 +00:00
adamdunkels 22cb35e9f6 Added -Werror to turn compiler warnings into errors to ensure that code always compile without warnings 2007-11-17 10:11:58 +00:00
adamdunkels f192211444 Added a hack function called clock_counter() to make the current prototype profiling code run on the MSP430 platform 2007-11-12 21:07:39 +00:00
adamdunkels 585f00a804 Removed old codeprop-tmp.c 2007-11-06 20:35:42 +00:00
joxe 7fe87db86a fixed some timer interrupt bugs and reimplemented clock_fine to avoid disabling interrupts 2007-10-04 20:45:29 +00:00
fros4943 5f63995265 support for delayed interrupts
earlier TACCR1 could be set to already passed time if timer A interrupts was delayed
2007-10-04 14:14:58 +00:00