.type jtag430_tclk_flashpulses,@function //for linking
#define _GNU_ASSEMBLER_
.type jtag430_tclk_flashpulses,@function //for linking
#define _GNU_ASSEMBLER_
//This detects model, chooses appropriate timing.
jtag430_tclk_flashpulses:
//This detects model, chooses appropriate timing.
jtag430_tclk_flashpulses:
P5OUT &= ~SBWTCK;
P5OUT |= SBWTDIO;
P5DIR |= SBWTDIO|SBWTCK;
P5OUT &= ~SBWTCK;
P5OUT |= SBWTDIO;
P5DIR |= SBWTDIO|SBWTCK;
/*! \file ccspi.c
\author Travis Goodspeed
\brief Chipcon SPI Register Interface
/*! \file ccspi.c
\author Travis Goodspeed
\brief Chipcon SPI Register Interface
+
+ Unfortunately, there is very little similarity between the CC2420
+ and the CC2500, to name just two of the myriad of Chipcon SPI
+ radios. Auto-detection will be a bit difficult, but more to the
+ point, all high level functionality must be moved into the client.
*/
//Higher level left to client application.
*/
//Higher level left to client application.
#include "gfports.h"
#ifdef telosb
#include "gfports.h"
#ifdef telosb
\brief Spy-Bi-Wire Stuff
*/
\brief Spy-Bi-Wire Stuff
*/
//IO Pins; these are for EZ430, not GoodFET/UIF
#define SBWTCK BIT3
#define SBWTDIO BIT2
//IO Pins; these are for EZ430, not GoodFET/UIF
#define SBWTCK BIT3
#define SBWTDIO BIT2
void sbwCLRTCLK();
// Macros
void sbwCLRTCLK();
// Macros
#define SBWCLK() do { \
P5OUT &= ~SBWTCK; \
asm("nop"); \
#define SBWCLK() do { \
P5OUT &= ~SBWTCK; \
asm("nop"); \
#define PLEDDIR P1DIR
#define PLEDPIN BIT0
#define PLEDDIR P1DIR
#define PLEDPIN BIT0
//Use P3 instead of P5 for target I/O on chips without P5.
#ifndef __MSP430_HAS_PORT5__
//#warning "No P5, using P3 instead. Will break 2618 and 1612 support."
//Use P3 instead of P5 for target I/O on chips without P5.
#ifndef __MSP430_HAS_PORT5__
//#warning "No P5, using P3 instead. Will break 2618 and 1612 support."