Commit b5f501c5 authored by Simon Duquennoy's avatar Simon Duquennoy
Browse files

Remove outdated README files, link to wiki instead

parent ff29a4a2
...@@ -7,6 +7,8 @@ The copyright for different parts of the code is held by different ...@@ -7,6 +7,8 @@ The copyright for different parts of the code is held by different
people and organizations, but the code is licensed under the same type people and organizations, but the code is licensed under the same type
of license. The license text is: of license. The license text is:
```
/*
* Copyright (c) (Year), (Name of copyright holder) * Copyright (c) (Year), (Name of copyright holder)
* All rights reserved. * All rights reserved.
* *
...@@ -35,4 +37,5 @@ of license. The license text is: ...@@ -35,4 +37,5 @@ of license. The license text is:
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE. * OF THE POSSIBILITY OF SUCH DAMAGE.
*/
```
The Contiki build system
========================
The Contiki build system is designed to make it easy to compile Contiki
applications for different hardware platforms or into a simulation platform by
simply supplying different parameters to the make command, without having to
edit makefiles or modify the application code.
The file example project in examples/hello-world/ shows how the Contiki build
system works. The hello-world.c application can be built into a complete
Contiki system by running make in the examples/hello-world/ directory. Running
make without parameters will build a Contiki system using the native target.
The native target is a special Contiki platform that builds an entire Contiki
system as a program that runs on the development system. After compiling the
application for the native target it is possible to run the Contiki system with
the application by running the file hello-world.native. To compile the
application and a Contiki system for the ESB platform the command make
TARGET=esb is used. This produces a hello-world.esb file that can be loaded
into an ESB board.
To compile the hello-world application into a stand-alone executable that can
be loaded into a running Contiki system, the command make hello-world.ce is
used. To build an executable file for the ESB platform, make TARGET=esb
hello-world.ce is run.
To avoid having to type TARGET= every time make is run, it is possible to run
make TARGET=esb savetarget to save the selected target as the default target
platform for subsequent invocations of make. A file called Makefile.target
containing the currently saved target is saved in the project's directory.
Beside TARGET= there's DEFINES= which allows to set arbitrary variables for the
C preprocessor in form of a comma-separated list. Again it is possible to avoid
having to re-type i.e. DEFINES=MYTRACE,MYVALUE=4711 by running make TARGET=esb
DEFINES=MYTRACE,MYVALUE=4711 savedefines. A file called Makefile.esb.defines is
saved in the project's directory containing the currently saved defines for the
ESB platform.
Makefiles used in the Contiki build system The Contiki build system is composed
of a number of Makefiles. These are:
* Makefile: the project's makefile, located in the project directory.
* Makefile.include: the system-wide Contiki makefile, located in the root of
the Contiki source tree.
* Makefile.$(TARGET) (where $(TARGET) is the name of the platform that is
currently being built): rules for the specific platform, located in the
platform's subdirectory in the platform/ directory.
* Makefile.$(CPU) (where $(CPU) is the name of the CPU or microcontroller
architecture used on the platform for which Contiki is built): rules for the
CPU architecture, located in the CPU architecture's subdirectory in the cpu/
directory.
* Makefile.$(APP) (where $(APP) is the name of an application in the apps/
directory): rules for applications in the apps/ directories. Each application
has its own makefile.
The Makefile in the project's directory is intentionally simple. It specifies
where the Contiki source code resides in the system and includes the
system-wide Makefile, Makefile.include. The project's makefile can also define
in the APPS variable a list of applications from the apps/ directory that
should be included in the Contiki system. The Makefile used in the hello-world
example project looks like this:
CONTIKI_PROJECT = hello-world
all: $(CONTIKI_PROJECT)
CONTIKI = ../..
include $(CONTIKI)/Makefile.include
First, the location of the Contiki source code tree is given by defining the
CONTIKI variable. Next, the name of the application is defined. Finally, the
system-wide Makefile.include is included.
The Makefile.include contains definitions of the C files of the core Contiki
system. Makefile.include always reside in the root of the Contiki source tree.
When make is run, Makefile.include includes the Makefile.$(TARGET) as well as
all makefiles for the applications in the APPS list (which is specified by the
project's Makefile).
Makefile.$(TARGET), which is located in the platform/$(TARGET)/ directory,
contains the list of C files that the platform adds to the Contiki system. This
list is defined by the CONTIKI_TARGET_SOURCEFILES variable. The
Makefile.$(TARGET) also includes the Makefile.$(CPU) from the cpu/$(CPU)/
directory.
The Makefile.$(CPU) typically contains definitions for the C compiler used for
the particular CPU. If multiple C compilers are used, the Makefile.$(CPU) can
either contain a conditional expression that allows different C compilers to be
defined, or it can be completely overridden by the platform specific makefile
Makefile.$(TARGET).
Contiki Examples
================
The examples/ directory contains a few examples that will help you get
started with Contiki.
To run the example programs, you need either to be running Linux or FreeBSD (or
any other UNIX-type system), or install Cygwin if you are running Microsoft
Windows [http://cygwin.com](http://cygwin.com). As a minimum you will need to
have the gcc C compiler installed. To run the examples in the 'netsim' target,
you need to have GTK 1.x development libraries installed. These are usually
called 'gtk-devel', 'libgtk1-devel' or similar in your Linux software
installation programs.
compile-platforms/
------------------
A test script that compiles Contiki for a number of platforms and reports any
errors found during the build.
email/
------
An email program supporting SMTP. It can be compiled and run in the 'win32'
target by typing the following commands:
cd examples/email
make
./email-client.win32
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/win32/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well.
esb/
----
A set of demo applications for the ESB board.
ftp/
----
An FTP client supporting download. It can be compiled and run in the 'win32'
target by typing the following commands:
cd examples/ftp
make
./ftp-client.win32
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/win32/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well.
hello-world/
------------
A really simple Contiki program that shows how to write Contiki programs. To
compile and test the program, go into the hello-world directory:
cd examples/hello-world
Run the 'make' command.
make
This will compile the hello-world program in the 'native' target. This causes
the entire Contiki operating system and the hello-world application to be
compiled into a single program that can be run by typing the following command:
./hello-world.native
This will print out the following text:
Contiki initiated, now starting process scheduling
Hello, world
The program will then appear to hang, and must be stopped by pressing the C key
while holding down the Control key.
irc/
----
An IRC client. It can be compiled and run in the 'win32' target by
typing the following commands:
cd examples/irc
make
./irc-client.win32
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/win32/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well.
multi-threading/
----------------
A quite simple demonstration of the Contiki multi-threading library
employing two worker threads each running a recursive function. It
can be compiled and run in the 'native' target by typing the
following commands:
cd examples/multi-threading
make
./multi-threading.native
rime/
-----
Contains a set of examples on how to use the Rime communications
stack. To run those examples in the 'netsim' target (a very simple
Contiki network simulator), compile the programs with:
make TARGET=netsim
You will need to have GTK 1.x development libraries installed.
Run the different programs:
./test-abc.netsim
./test-meshroute.netsim
./test-rudolph0.netsim
./test-rudolph1.netsim
./test-treeroute.netsim
./test-trickle.netsim
Most of the examples requires you to click with the middle mouse
button on one of the simulated nodes for something to happen.
sky/
----
Examples inteded for running on the Tmote Sky board. To compile those, you need
to have msp430-gcc (the gcc C compiler for the MSP430 microcontroller)
installed.
The follwing programs are included:
- blink.c A simple program that blinks the on-board LEDs
- sky-collect.c Collects sensor data and energy profile values to a sink.
Press the "user" button on the Tmote Sky that is connected to the PC to make
the node a sink.
- test-button.c Toggles the LEDs when the button is pressed.
- test-cfs.c Tests the 1 mb flash memory of the Tmote Sky
telnet-server/
--------------
A simple TCP telnet server with a simple command shell. It can be
compiled and run in the 'minimal-net' target by typing the following
commands:
cd examples/telnet-server
make
./telnet-server.minimal-net
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/minimal-net/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well if you are running
Microsoft Windows.
webbrowser/
-----------
A text mode web browser supporting links and forms. It can be compiled
and run in the 'win32' target by typing the following commands:
cd examples/webbrowser
make
./webbrowser.win32
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/win32/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well.
webserver/
----------
A web server supporting dynamic content creation using "scripts" which
are actually compiled-in C-functions. It can be compiled and run in the
'minimal-net' target by typing the following commands:
cd examples/webserver
make
./webserver-example.minimal-net
As an alternative to the static and dynamic compiled-in content the web
server can instead support "external" static-only content loaded from
any storage supported by the 'Contiki File System' (CFS) interface. To
compile it in the 'minimal-net' target and have it load files from disk
use the following command:
make HTTPD-CFS=1
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/minimal-net/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well if you are running
Microsoft Windows.
wget/
-----
A command line program that retrieves files from web servers and saves them
using the 'Contiki File System' (CFS). It can be compiled and run in the
'minimal-net' target by typing the following commands:
cd examples/wget
make
./wget.minimal-net
Most likely you'll have to adjust the TCP/IP values set in main() in
platform/minimal-net/contiki-main.c to match your needs.
Please consult cpu/native/net/README-WPCAP.md as well if you are running
Microsoft Windows.
...@@ -14,6 +14,7 @@ power meters, industrial monitoring, radiation monitoring, ...@@ -14,6 +14,7 @@ power meters, industrial monitoring, radiation monitoring,
construction site monitoring, alarm systems, remote house monitoring, construction site monitoring, alarm systems, remote house monitoring,
and so on. and so on.
For more information, see the Contiki website: For more information, see the Contiki website: http://contiki-os.org
To get started, see the Contiki wiki: https://github.com/contiki-os/contiki/wiki
[http://contiki-os.org](http://contiki-os.org)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment