Andy, I suggest that you use the rfxlink stack. It's a very modular radio stack that already supports the RF230, RF231, RF212, CC2420 and CC2520 transceivers. You'll only have to write a low-level driver for the CC1101 which manages radio state (on, off, standby, rx) and implements bare send/receive functionality. Rfxlink will take care of the rest (CSMA/CA, Packet Link, Ieee 15.4 and AM layers, and more).
Take a look at chips/cc2420x or chips/cc2520, chances are good that the CC1101 implementation will be similar. Janos On Wed, Mar 30, 2011 at 9:24 AM, Michiel Konstapel <[email protected]> wrote: > Hi Andy, > > > > We've also written our own CC1101 stack, for the G-Node (link). We're > currently only shipping that with our development kits - we want to include > it in the TinyOS repository at some point, but we haven't had time to sort > out the licensing, etc. > > > > Anyway, I can give you some pointers based on my own experience. > > > > 1. Start at the bottom and work your way up. Build a layer to talk to the > hardware: read/write registers, handle interrupts, etc. Build a basic layer > on top, that can configure the radio, transfer data to/from the FIFO > buffers, switch between RX and TX mode. Test this extensively. Then, > implement the basic TinyOS Send/Receive/StdControl interface on top, and go > from there all the way up to ActiveMessageC. > > 2. Interrupt handling is hard. A lot of my time went into making sure there > were no race conditions when switching between RX and TX. For example, what > if a packet is received exactly when you are switching from RX to TX? It's > tricky to tell whether the end-of-packet interrupt was due to a received > packet, or your transmitted packet. > > 3. Make it work first, then make it fast, if you have to. I've kept as much > as possible out of interrupt context (no async code), which makes your life > a lot easier. > > 4. Check your assumptions. Asserts are incredibly useful when debugging low > level code. > > > > Best of luck! > > Michiel > > > > From: [email protected] > [mailto:[email protected]] On Behalf Of andy smith > Sent: woensdag 30 maart 2011 13:14 > To: [email protected] > Subject: [Tinyos-help] Developing for CC1101 > > > > hi guys, > > We are implementing the drivers of CC1101 for TinyOS, although there are > already blaze and telosw on the Internet ,but they are the final > versions,here we want to develop the drivers step by step ,but as you know, > to implement the CC1101 radio stack with nesC is really tricky! We don't > know where to begin? What we want to know is how to test when developing the > TinyOS step by step,Can anybody help ? > > _______________________________________________ > Tinyos-help mailing list > [email protected] > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
