contiki/cpu/mc1322x
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
..
board Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into bump-libmc1322x 2012-11-18 18:27:39 -05:00
dev remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
doc Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into bump-libmc1322x 2012-11-18 18:27:39 -05:00
lib Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
src Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into bump-libmc1322x 2012-11-18 18:27:39 -05:00
tests Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into bump-libmc1322x 2012-11-18 18:27:39 -05:00
tools Merge branch 'master' of git://git.devl.org/git/malvira/libmc1322x into bump-libmc1322x 2012-11-18 18:27:39 -05:00
.gitignore Merge branch 'libmc13-9f82e068' into update-libmc1322x 2011-02-17 14:39:20 -05:00
clock.c Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
config.c Newer and cleaner TARGET=econotag as well as robust mc13224v 2012-11-19 19:16:29 -05:00
config.h Newer and cleaner TARGET=econotag as well as robust mc13224v 2012-11-19 19:16:29 -05:00
contiki-maca.c add working routines to turn the mc1322x radio on and off 2013-02-03 14:48:38 -05:00
contiki-maca.h remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
contiki-mc1322x-conf.h Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
contiki-misc.c remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
contiki-uart.c remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
contiki-uart.h remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
COPYING Merge remote branch 'libmc1322x/master' into update-libmc1322x 2011-02-17 14:41:47 -05:00
CREDITS initial mc1322x commit 2010-06-09 14:43:22 +00:00
dbg-io.c remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
debug-uart.c initial mc1322x commit 2010-06-09 14:43:22 +00:00
debug-uart.h initial mc1322x commit 2010-06-09 14:43:22 +00:00
init.c Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
io.h add a dummy io.h for mc13224v 2011-02-08 09:07:54 -05:00
leds-arch.c remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
Makefile.include Merge branch 'libmc13-9f82e068' into update-libmc1322x 2011-02-17 14:39:20 -05:00
Makefile.mc1322x Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
mc1322x.lds.S run the linker script through CPP so that the stack sizes can be 2013-01-05 17:08:59 -05:00
mtarch.h 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
README Merge branch 'libmc13-9f82e068' into update-libmc1322x 2011-02-17 14:39:20 -05:00
README.subtree initial mc1322x commit 2010-06-09 14:43:22 +00:00
rtimer-arch.c Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
rtimer-arch.h Use the RTC only as the main timer. 2013-02-03 15:15:05 -05:00
slip-uart1.c remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00
TODO initial mc1322x commit 2010-06-09 14:43:22 +00:00
watchdog.c remove cvs keywords from cpu/mc1322x 2011-02-17 14:36:55 -05:00

libmc1322x is a library, build system, test code, and utilities for
using the mc13224v from Freescale.

Getting Started
---------------
$ cd tests
$ make

this will build all the test files in libmc1322x/tests for each board
defined in libmc1322x/board. You will have programs like:

  rftest-tx_redbee-dev.bin
  rftest-tx_redbee-r1.bin

  rftest-rx_redbee-dev.bin
  rftest-rx_redbee-r1.bin

if you only wanted to build binaries for one board you can do:

$ make BOARD=redbee-dev

You can use mc1322x-load.pl in libmc1322x/tools to run your code:

$ ../tools/mc1322x-load.pl -f rftest-tx_redbee-dev.bin


Incorporating libmc1322x into your own code
-------------------------------------------

The best way to incorporate libmc1322x into your code is as a git
submodule:

$ mkdir newproject
$ cd newproject
$ git init

   Initialized empty Git repository in /home/malvira/newproject/.git/

$ git submodule add git://git.devl.org/git/malvira/libmc1322x.git

This will add libmc1322x to your repository. Now to setup the
Makefile:

$ cp libmc1322x/tests/Makefile .

You need to edit the Makefile to point MC1322X to your libmc1322x
submodule:

Change line 1

   MC1322X := ..

to 

   MC1322X := libmc1322x

and edit COBJS and TARGETS accordings. COBJS are all of your common
code for any of your programs. TARGETS are the names of your programs.

For instance, you can have a common routine that prints a welcome
message that is used by two programs a and b. You would add common.o
to COBJS:

   COBJS:= common.o

and your target line would read:

   TARGETS := a b 

COBJS are made for each board --- so it is ok to have board specific
code in there. As an example, tests uses this in tests.c to print the
name of the board in the welcome message. You could also use this to
change your GPIO mappings between boards.