R. Steve McKown [Mon, 18 Aug 2014 14:57:12 +0000 (08:57 -0600)]
deputy-tinyos is no longer a required package
deputy-tinyos does not build as is on Ubuntu Trusty, because OCaml needs
an update that then breaks the tinyos patches for deputy support. For
now, solve this problem by removing deputy-tinyos from Depends.
Document that it is still relevant by adding it to Recommends, even
though at this time there is no way to install this package.
R. Steve McKown [Thu, 3 Nov 2011 23:45:36 +0000 (17:45 -0600)]
Updates for GCC 4.5.3
* Include correct GCC headers depending upon version
* GCC does not stop the watchdog, so do it in PlatformP.nc
* Stopping watchdog in MotePlatformC no longer needed (olimexp16,
tmicore, tmirws)
* tmicore writes TxIV in MoteClockP so needs MSP430REG_NORACE()
R. Steve McKown [Wed, 21 Mar 2012 14:50:47 +0000 (08:50 -0600)]
Allow custom platform families
ncc can find a custom platform if its PLATFORMDIR is included into
PFLAGS as an include: -I$(PLATFORMDIR) or equivalent. Teach ncc to
identify when such a platform is a family member and in such cases
process the corresponding .family file.
R. Steve McKown [Wed, 27 Oct 2010 23:54:17 +0000 (17:54 -0600)]
USCI I2C support.
Current limitations and features:
* Master mode only.
* No multi-master bus configurations.
* Will automatically reset a hung bus, if for example the master reset in the
middle of a transaction and a slave currently is driving SDA low.
* Repeated starts are supported and can be very time efficient.
* An I2C transactions may be processed with multiple I2CPacket.read() or
I2CPacket.write() commands, as appropriate. The first must include I2C_START
and the last must include I2C_STOP.
* Conditions exist during read where the hardware may clock out an extra byte
from the slave before stop. This byte is not passed to the user.
R. Steve McKown [Fri, 24 Sep 2010 22:32:11 +0000 (16:32 -0600)]
Race condition clearing bit vectors that are already clear in Init.init.
There's no point to clear the bit vectors in SharedArbiterP.Init.init,
because the compiler guarantees they are already clear, see BitVectorC.nc.
However, manually clearing them can create a situation where someone requesting
a shared resource has their requesting bit erased, depending upon the order of
calls to Init.init providers during boot.
R. Steve McKown [Fri, 7 May 2010 21:47:25 +0000 (15:47 -0600)]
debian/rules must use tinyos.files script as-is from upstream.
Before the TMI enhancements were splitting tinyos.files into tinyos.files and
tinyos.filter, the latter containing the patterns to include and exclude. Now
the TMI enhancements don't mess with these files, so we must use them as is.
This isn't very efficient, but it only happens at build time.
R. Steve McKown [Fri, 7 May 2010 20:42:29 +0000 (14:42 -0600)]
Merge TinyOS 2.1.1 into master.
How this merge was done:
* Rebase patchset/2.1.0-4.2 onto tinyos/2.1.1 as topic/patchup211
* cp topic/patchup211 tree to tmp dir
* Checkout master, rm all files, cp in from tmp dir, git add .
Future work on TinyOS 2.1.0 w/TMI enhancements via release/2.1.0.
R. Steve McKown [Fri, 23 Apr 2010 22:39:53 +0000 (16:39 -0600)]
Don't hard-code for ncc in mig and ncg scripts.
The rationalization for this change is that nesc shouldn't really know where
tinyos-tools is installed, since they are separate packages. The pragmatic
reason for this change is that it allows using ncc from tinyos-tools before
installation to allow a single debian tinyos source package to build both
tinyos-tools and tinyos-source-VERSION packages.
R. Steve McKown [Fri, 23 Apr 2010 16:25:39 +0000 (10:25 -0600)]
Improved tinyos.sh
* Automatically installs tinyos.sh into user shell rc files when sourced.
* Adds an uninstall option if a user no longer wants to do TinyOS dev.
* Smarter handling of CLASSPATH.
* tinyos.jar is added to CLASSPATH instead of support/sdk/java. The latter is
a TOS 1.x idiom.
* Better error and help messages.
R. Steve McKown [Fri, 13 Nov 2009 23:47:49 +0000 (16:47 -0700)]
Upstream commits to tos/chips/cc2420, Aug 7 2008 thru Jul 16 2009, except one.
commit df004818be0944a5459b2d23dd4b49c55b716448
kusy <kusy> Thu Aug 7 00:06:53 2008 +0000
Previously reported timestamping bug was only fixed partially: *timesync...
NOT COMMITTED f8120ec47efebf578a6edf99882d009ea6dedcd1
kusy <kusy> Wed Aug 13 07:37:05 2008 +0000
Fixing T32khz to TMilli conversion - coeficient 32 needs to be...
commit 42b450d2e6d5eda17245d38f4d2bceb6b60e5400
rincon <rincon> Mon Aug 18 22:04:15 2008 +0000
Added a length check to make sure we don't try to send a packet that is...
commit 72c8a4f1a2b4f331aeedc6bfd5262253ce8d6d04
janhauer <janhauer> Wed Nov 26 10:13:31 2008 +0000
Added an interface for accessing the RXFIFO in a non-split phase...
R. Steve McKown [Mon, 19 Apr 2010 22:13:15 +0000 (16:13 -0600)]
Fix startup in SoftwareInit.init overwriting changes to StateC's.
If a component wires its Init.init() via SoftwareInit and ncc calls
StateImplP.Init.init() after the component's Init.init(), any change to its
StateC, such as call State.forceState(), is undone. The easy fix is to remove
the extra initiation of state[] in StateImplP.Init.init(), since state[] is a
static and is guaranteed to have members with value zero (S_IDLE).
R. Steve McKown [Thu, 8 Apr 2010 01:16:46 +0000 (19:16 -0600)]
USCI fixes.
* Watch out for sendData() clobbering TXBUF.
* May solve a loss of UART TX chars.
* USCI UartStream.send() gains nothing by immediately sending the 1st byte.
* m_sobuf cannot be null in Interrupts.tx, so remove the check.
R. Steve McKown [Thu, 8 Apr 2010 00:02:56 +0000 (18:02 -0600)]
Improve interrupt handling for USCI.
Because some interrupts share an interrupt vector, we use the relevant interrupt
enable bit to decide if any user is interested in the interrupt. If not, that
interrupt is skipped so that another interrupt in the if/then/elseif chain can
be taken. We also defensively try to prevent I2C interrupts from being a
problem if not used, although no I2C code using these interrupts has yet been
written.
R. Steve McKown [Thu, 8 Apr 2010 19:50:41 +0000 (13:50 -0600)]
Teach tos-storage-stm25p to derive NUM_SECTORS and SECTOR_SIZE.
The stm25p driver is suitable for different sizes of flash parts, such as the
commonly used 8Mb M25P80 and the less commonly used 1Mb M25P10A. The driver
defines the flash configuration in Stm25p.h. By having tos-storage-stm25p walk
the @includes for the platform, as found in the .platform file, each platform
can ensure that a Stm25p.h with correct content for its flash part is found
for use by the driver and this script.