NesC
Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
NesC ist eine Auszeichnungssprache für C, ähnlich dem C-Präprozessor. Der nesC Compiler ncc erweitert die Toolchain und wird als erstes aufgerufen. Er erzeugt aus *.nc Dateien C-Quellcode.
NesC wird im Betriebssystem TinyOS verwendet.
Beispiel: TimerMilliP.nc
// $Id: TimerMilliP.nc,v 1.5 2008/06/11 00:46:27 razvanm Exp $
/*
* "Copyright (c) 2005 The Regents of the University of California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice, the following
* two paragraphs and the author appear in all copies of this software.
*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
* CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
*
*/
/**
* Components should never wire to this component. This is the
* underlying configuration of virtualized millisecond timers.
* It auto-wires wires the timer
* implementation (TimerC) to the boot sequence and exports the
* various Timer interfaces.
*
* @author Philip Levis
* @author Cory Sharp
* @date May 16 2005
*/
#include "Timer.h"
configuration TimerMilliP {
provides interface Timer<TMilli> as TimerMilli[uint8_t id];
}
implementation {
components HilTimerMilliC, MainC;
MainC.SoftwareInit -> HilTimerMilliC;
TimerMilli = HilTimerMilliC;
}
Links
- Sourceforge: [1]