Update for NETSTACK_CONF_FRAMER
This commit is contained in:
parent
c65e09ceb2
commit
d3697344ec
|
@ -83,9 +83,10 @@
|
||||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||||
#define NETSTACK_CONF_MAC nullmac_driver
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
#define NETSTACK_CONF_RDC sicslowmac_driver
|
#define NETSTACK_CONF_RDC sicslowmac_driver
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_802154
|
||||||
#define NETSTACK_CONF_RADIO rf230_driver
|
#define NETSTACK_CONF_RADIO rf230_driver
|
||||||
#define RF230_CONF_AUTO_ACK 1
|
#define RF230_CONF_AUTOACK 1
|
||||||
#define RF230_CONF_AUTO_RETRIES 2
|
#define RF230_CONF_AUTORETRIES 2
|
||||||
#define SICSLOWPAN_CONF_FRAG 1
|
#define SICSLOWPAN_CONF_FRAG 1
|
||||||
//Most browsers reissue GETs after 3 seconds which stops frag reassembly, longer MAXAGE does no good
|
//Most browsers reissue GETs after 3 seconds which stops frag reassembly, longer MAXAGE does no good
|
||||||
#define SICSLOWPAN_CONF_MAXAGE 3
|
#define SICSLOWPAN_CONF_MAXAGE 3
|
||||||
|
@ -97,18 +98,20 @@
|
||||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||||
#define NETSTACK_CONF_MAC nullmac_driver
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
#define NETSTACK_CONF_RDC contikimac_driver
|
#define NETSTACK_CONF_RDC contikimac_driver
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_802154
|
||||||
#define NETSTACK_CONF_RADIO rf230_driver
|
#define NETSTACK_CONF_RADIO rf230_driver
|
||||||
#define RF230_CONF_AUTO_ACK 0
|
#define RF230_CONF_AUTOACK 0
|
||||||
#define RF230_CONF_AUTO_RETRIES 0
|
#define RF230_CONF_AUTORETRIES 0
|
||||||
|
|
||||||
#else
|
#elif 0
|
||||||
/* cx-mac radio cycling */
|
/* cx-mac radio cycling */
|
||||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||||
#define NETSTACK_CONF_MAC nullmac_driver
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
#define NETSTACK_CONF_RDC cxmac_driver
|
#define NETSTACK_CONF_RDC cxmac_driver
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_802154
|
||||||
#define NETSTACK_CONF_RADIO rf230_driver
|
#define NETSTACK_CONF_RADIO rf230_driver
|
||||||
#define RF230_CONF_AUTO_ACK 0
|
#define RF230_CONF_AUTOACK 0
|
||||||
#define RF230_CONF_AUTO_RETRIES 0
|
#define RF230_CONF_AUTORETRIES 0
|
||||||
#define MAC_CONF_CHANNEL_CHECK_RATE 8
|
#define MAC_CONF_CHANNEL_CHECK_RATE 8
|
||||||
#define SICSLOWPAN_CONF_FRAG 1
|
#define SICSLOWPAN_CONF_FRAG 1
|
||||||
#define SICSLOWPAN_CONF_MAXAGE 3
|
#define SICSLOWPAN_CONF_MAXAGE 3
|
||||||
|
@ -119,9 +122,11 @@
|
||||||
//Below gives 10% duty cycle, undef for default 5%
|
//Below gives 10% duty cycle, undef for default 5%
|
||||||
//#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 80)
|
//#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 80)
|
||||||
//Below gives 50% duty cycle
|
//Below gives 50% duty cycle
|
||||||
#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 16)
|
//#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 16)
|
||||||
|
|
||||||
#endif /* Network setup */
|
#else
|
||||||
|
#error Network configuration not specified!
|
||||||
|
#endif /* Network setup */
|
||||||
|
|
||||||
/* Logging adds 200 bytes to program size */
|
/* Logging adds 200 bytes to program size */
|
||||||
#define LOG_CONF_ENABLED 1
|
#define LOG_CONF_ENABLED 1
|
||||||
|
|
|
@ -32,13 +32,11 @@
|
||||||
*/
|
*/
|
||||||
#define ANNOUNCE_BOOT 1 //adds about 600 bytes to program size
|
#define ANNOUNCE_BOOT 1 //adds about 600 bytes to program size
|
||||||
|
|
||||||
#define DEBUG 1
|
#define DEBUG 0
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
#define PRINTF(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
|
#define PRINTF(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
|
||||||
#define PRINTSHORT(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
|
#define PRINTSHORT(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
|
||||||
#if RF230BB
|
|
||||||
extern char rf230_interrupt_flag, rf230processflag;
|
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
#define PRINTF(...)
|
#define PRINTF(...)
|
||||||
#define PRINTSHORT(...)
|
#define PRINTSHORT(...)
|
||||||
|
@ -50,7 +48,6 @@ extern char rf230_interrupt_flag, rf230processflag;
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
//#include "lib/mmem.h"
|
|
||||||
#include "loader/symbols-def.h"
|
#include "loader/symbols-def.h"
|
||||||
#include "loader/symtab.h"
|
#include "loader/symtab.h"
|
||||||
|
|
||||||
|
@ -58,15 +55,7 @@ extern char rf230_interrupt_flag, rf230processflag;
|
||||||
#include "radio/rf230bb/rf230bb.h"
|
#include "radio/rf230bb/rf230bb.h"
|
||||||
#include "net/mac/frame802154.h"
|
#include "net/mac/frame802154.h"
|
||||||
#include "net/mac/framer-802154.h"
|
#include "net/mac/framer-802154.h"
|
||||||
//#include "net/mac/framer-nullmac.h"
|
|
||||||
//#include "net/mac/framer.h"
|
|
||||||
#include "net/sicslowpan.h"
|
#include "net/sicslowpan.h"
|
||||||
//#include "net/uip-netif.h"
|
|
||||||
//#include "net/mac/lpp.h"
|
|
||||||
//#include "net/mac/cxmac.h"
|
|
||||||
//#include "net/mac/sicslowmac.h"
|
|
||||||
//#include "dev/xmem.h"
|
|
||||||
//#include "net/rime.h"
|
|
||||||
|
|
||||||
#else //radio driver using Atmel/Cisco 802.15.4'ish MAC
|
#else //radio driver using Atmel/Cisco 802.15.4'ish MAC
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
@ -104,7 +93,6 @@ extern char rf230_interrupt_flag, rf230processflag;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "net/rime.h"
|
#include "net/rime.h"
|
||||||
//#include "node-id.h"
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
/*----------------------Configuration of the .elf file---------------------*/
|
/*----------------------Configuration of the .elf file---------------------*/
|
||||||
|
@ -162,7 +150,6 @@ void initialize(void)
|
||||||
ctimer_init();
|
ctimer_init();
|
||||||
/* Start radio and radio receive process */
|
/* Start radio and radio receive process */
|
||||||
NETSTACK_RADIO.init();
|
NETSTACK_RADIO.init();
|
||||||
//rf230_init();
|
|
||||||
|
|
||||||
/* Set addresses BEFORE starting tcpip process */
|
/* Set addresses BEFORE starting tcpip process */
|
||||||
|
|
||||||
|
@ -174,17 +161,13 @@ void initialize(void)
|
||||||
|
|
||||||
memcpy(&uip_lladdr.addr, &addr.u8, 8);
|
memcpy(&uip_lladdr.addr, &addr.u8, 8);
|
||||||
rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *)&addr.u8);
|
rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *)&addr.u8);
|
||||||
|
|
||||||
rf230_set_channel(24);
|
rf230_set_channel(24);
|
||||||
|
|
||||||
rimeaddr_set_node_addr(&addr);
|
rimeaddr_set_node_addr(&addr);
|
||||||
// set_rime_addr();
|
|
||||||
PRINTF("MAC address %x:%x:%x:%x:%x:%x:%x:%x\n",addr.u8[0],addr.u8[1],addr.u8[2],addr.u8[3],addr.u8[4],addr.u8[5],addr.u8[6],addr.u8[7]);
|
PRINTF("MAC address %x:%x:%x:%x:%x:%x:%x:%x\n",addr.u8[0],addr.u8[1],addr.u8[2],addr.u8[3],addr.u8[4],addr.u8[5],addr.u8[6],addr.u8[7]);
|
||||||
|
|
||||||
framer_set(&framer_802154);
|
/* Initialize stack protocols */
|
||||||
// process_start(&tcpip_process, NULL); //must be done before network inits?
|
|
||||||
|
|
||||||
/* Setup X-MAC for 802.15.4 */
|
|
||||||
queuebuf_init();
|
queuebuf_init();
|
||||||
NETSTACK_RDC.init();
|
NETSTACK_RDC.init();
|
||||||
NETSTACK_MAC.init();
|
NETSTACK_MAC.init();
|
||||||
|
@ -196,7 +179,7 @@ void initialize(void)
|
||||||
unsigned short tmp;
|
unsigned short tmp;
|
||||||
tmp=CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval == 0 ? 1:\
|
tmp=CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval == 0 ? 1:\
|
||||||
NETSTACK_RDC.channel_check_interval());
|
NETSTACK_RDC.channel_check_interval());
|
||||||
printf_P(PSTR(", check rate %u Hz"),tmp);
|
if (tmp<65535) printf_P(PSTR(", check rate %u Hz"),tmp);
|
||||||
}
|
}
|
||||||
printf_P(PSTR("\n"));
|
printf_P(PSTR("\n"));
|
||||||
#endif
|
#endif
|
||||||
|
@ -209,16 +192,14 @@ void initialize(void)
|
||||||
uip_router_register(&rimeroute);
|
uip_router_register(&rimeroute);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*RF230BB*/
|
|
||||||
|
|
||||||
#if RF230BB
|
|
||||||
process_start(&tcpip_process, NULL);
|
process_start(&tcpip_process, NULL);
|
||||||
#else
|
|
||||||
|
#else
|
||||||
/* mac process must be started before tcpip process! */
|
/* mac process must be started before tcpip process! */
|
||||||
process_start(&mac_process, NULL);
|
process_start(&mac_process, NULL);
|
||||||
process_start(&tcpip_process, NULL);
|
process_start(&tcpip_process, NULL);
|
||||||
|
#endif /*RF230BB*/
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef RAVEN_LCD_INTERFACE
|
#ifdef RAVEN_LCD_INTERFACE
|
||||||
process_start(&raven_lcd_process, NULL);
|
process_start(&raven_lcd_process, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
@ -320,7 +301,9 @@ struct rtimer rt;
|
||||||
void rtimercycle(void) {rtimerflag=1;}
|
void rtimercycle(void) {rtimerflag=1;}
|
||||||
#endif /* TESTRTIMER */
|
#endif /* TESTRTIMER */
|
||||||
|
|
||||||
extern uint8_t packetreceived;
|
#if RF230BB
|
||||||
|
extern char rf230_interrupt_flag, rf230processflag;
|
||||||
|
#endif
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
/*------------------------- Main Scheduler loop----------------------------*/
|
/*------------------------- Main Scheduler loop----------------------------*/
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
@ -358,15 +341,13 @@ main(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//Use with RF230BB RADIOALWAYSON to show packets missed when radio is "off"
|
//Use with RF230BB DEBUGFLOW to show path through driver
|
||||||
#if RF230BB&&1
|
#if RF230BB&&1
|
||||||
if (packetreceived) {
|
extern uint8_t debugflowsize,debugflow[];
|
||||||
if (packetreceived==1) { //missed
|
if (debugflowsize) {
|
||||||
printf("-");
|
debugflow[debugflowsize]=0;
|
||||||
} else { //passed to stack
|
printf("%s",debugflow);
|
||||||
printf("+");
|
debugflowsize=0;
|
||||||
}
|
|
||||||
packetreceived=0;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -109,46 +109,50 @@ typedef int32_t s32_t;
|
||||||
|
|
||||||
#ifdef RF230BB
|
#ifdef RF230BB
|
||||||
#define SICSLOWPAN_CONF_CONVENTIONAL_MAC 1 //for barebones driver, sicslowpan calls radio->read function
|
#define SICSLOWPAN_CONF_CONVENTIONAL_MAC 1 //for barebones driver, sicslowpan calls radio->read function
|
||||||
//#undef PACKETBUF_CONF_HDR_SIZE //RF230BB takes the packetbuf default for header size
|
|
||||||
|
|
||||||
#if 1 /* Network setup */
|
#if 1 /* Network setup */
|
||||||
/* No radio cycling */
|
/* No radio cycling */
|
||||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||||
#define NETSTACK_CONF_MAC nullmac_driver
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
#define NETSTACK_CONF_RDC sicslowmac_driver
|
#define NETSTACK_CONF_RDC sicslowmac_driver
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_802154
|
||||||
#define NETSTACK_CONF_RADIO rf230_driver
|
#define NETSTACK_CONF_RADIO rf230_driver
|
||||||
#define RF230_CONF_AUTO_ACK 1
|
#define RF230_CONF_AUTOACK 1
|
||||||
#define RF230_CONF_AUTO_RETRIES 2
|
#define RF230_CONF_AUTORETRIES 2
|
||||||
#define QUEUEBUF_CONF_NUM 1
|
#define QUEUEBUF_CONF_NUM 1
|
||||||
#define QUEUEBUF_CONF_REF_NUM 1
|
#define QUEUEBUF_CONF_REF_NUM 1
|
||||||
#define SICSLOWPAN_CONF_FRAG 1
|
#define SICSLOWPAN_CONF_FRAG 1
|
||||||
#define SICSLOWPAN_CONF_MAXAGE 3
|
#define SICSLOWPAN_CONF_MAXAGE 5
|
||||||
|
|
||||||
#elif 0
|
#elif 0
|
||||||
/* Contiki-mac radio cycling */
|
/* Contiki-mac radio cycling */
|
||||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||||
#define NETSTACK_CONF_MAC nullmac_driver
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
#define NETSTACK_CONF_RDC contikimac_driver
|
#define NETSTACK_CONF_RDC contikimac_driver
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_802154
|
||||||
#define NETSTACK_CONF_RADIO rf230_driver
|
#define NETSTACK_CONF_RADIO rf230_driver
|
||||||
#define RF230_CONF_AUTO_ACK 0
|
#define RF230_CONF_AUTOACK 0
|
||||||
#define RF230_CONF_AUTO_RETRIES 0
|
#define RF230_CONF_AUTORETRIES 0
|
||||||
|
|
||||||
#else
|
#elif 0
|
||||||
/* cx-mac radio cycling */
|
/* cx-mac radio cycling */
|
||||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||||
#define NETSTACK_CONF_MAC nullmac_driver
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
#define NETSTACK_CONF_RDC cxmac_driver
|
#define NETSTACK_CONF_RDC cxmac_driver
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_802154
|
||||||
#define NETSTACK_CONF_RADIO rf230_driver
|
#define NETSTACK_CONF_RADIO rf230_driver
|
||||||
#define RF230_CONF_AUTO_ACK 0
|
#define RF230_CONF_AUTOACK 0
|
||||||
#define RF230_CONF_AUTO_RETRIES 0
|
#define RF230_CONF_AUTORETRIES 0
|
||||||
#define MAC_CONF_CHANNEL_CHECK_RATE 8
|
#define MAC_CONF_CHANNEL_CHECK_RATE 8
|
||||||
#define SICSLOWPAN_CONF_FRAG 1
|
#define SICSLOWPAN_CONF_FRAG 1
|
||||||
#define QUEUEBUF_CONF_NUM 4
|
#define QUEUEBUF_CONF_NUM 4
|
||||||
#define QUEUEBUF_CONF_REF_NUM 2
|
#define QUEUEBUF_CONF_REF_NUM 2
|
||||||
#define SICSLOWPAN_CONF_MAXAGE 3
|
#define SICSLOWPAN_CONF_MAXAGE 5
|
||||||
//following gives 50% duty cycle, undef for default 5%
|
//following gives 50% duty cycle, undef for default 5%
|
||||||
#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 16)
|
#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 16)
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error Network configuration not specified!
|
||||||
#endif /* Network setup */
|
#endif /* Network setup */
|
||||||
|
|
||||||
#endif /* RF230BB */
|
#endif /* RF230BB */
|
||||||
|
|
|
@ -33,10 +33,11 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file
|
* \file
|
||||||
* Sample Contiki kernel for STK 501 development board
|
* Contiki 2.4 kernel for Jackdaw USB stick
|
||||||
*
|
*
|
||||||
* \author
|
* \author
|
||||||
* Simon Barner <barner@in.tum.de
|
* Simon Barner <barner@in.tum.de>
|
||||||
|
* David Kopf <dak664@embarqmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
|
@ -46,20 +47,12 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/* Set ANNOUNCE to send boot messages to USB serial port */
|
#if RF230BB //radio driver using contiki core mac
|
||||||
#define ANNOUNCE 1
|
|
||||||
|
|
||||||
#if RF230BB //radio driver using contiki core mac
|
|
||||||
#include "radio/rf230bb/rf230bb.h"
|
#include "radio/rf230bb/rf230bb.h"
|
||||||
#include "net/mac/frame802154.h"
|
#include "net/mac/frame802154.h"
|
||||||
#include "net/mac/framer-802154.h"
|
|
||||||
//#include "net/mac/framer-nullmac.h"
|
|
||||||
//#include "net/mac/framer.h"
|
|
||||||
#include "net/sicslowpan.h"
|
#include "net/sicslowpan.h"
|
||||||
#include "net/uip-netif.h"
|
#include "net/uip-netif.h"
|
||||||
#include "net/mac/lpp.h"
|
#include "net/mac/lpp.h"
|
||||||
//#include "dev/xmem.h"
|
|
||||||
|
|
||||||
#include "net/mac/sicslowmac.h"
|
#include "net/mac/sicslowmac.h"
|
||||||
#include "net/mac/cxmac.h"
|
#include "net/mac/cxmac.h"
|
||||||
#else //radio driver using Atmel/Cisco 802.15.4'ish MAC
|
#else //radio driver using Atmel/Cisco 802.15.4'ish MAC
|
||||||
|
@ -88,21 +81,22 @@
|
||||||
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
|
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
|
||||||
extern int rf230_interrupt_flag;
|
extern int rf230_interrupt_flag;
|
||||||
extern uint8_t rf230processflag;
|
extern uint8_t rf230processflag;
|
||||||
|
rimeaddr_t addr,macLongAddr;
|
||||||
#endif /* RF230BB */
|
#endif /* RF230BB */
|
||||||
|
|
||||||
#if 1 //dummy tcpip process not needed?
|
/* Set ANNOUNCE to send boot messages to USB serial port */
|
||||||
PROCESS(tcpip_process, "tcpip dummy");
|
#define ANNOUNCE 1
|
||||||
PROCESS_THREAD(tcpip_process, ev, data)
|
|
||||||
{
|
/* Test rtimers, also useful for pings and time stamps in simulator */
|
||||||
PROCESS_BEGIN();
|
#define TESTRTIMER 0
|
||||||
PROCESS_END();
|
#if TESTRTIMER
|
||||||
}
|
#define PINGS 0
|
||||||
void
|
#define STAMPS 30
|
||||||
tcpip_ipv6_output(void)
|
uint8_t rtimerflag=1;
|
||||||
{
|
uint16_t rtime;
|
||||||
printf("tcpipipv6output");
|
struct rtimer rt;
|
||||||
}
|
void rtimercycle(void) {rtimerflag=1;}
|
||||||
#endif
|
#endif /* TESTRTIMER */
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
/*----------------------Configuration of the .elf file---------------------*/
|
/*----------------------Configuration of the .elf file---------------------*/
|
||||||
|
@ -122,26 +116,8 @@ uint8_t mac_address[8] EEMEM = {0x02, 0x12, 0x13, 0xff, 0xfe, 0x14, 0x15, 0x16};
|
||||||
//uint8_t EEMEM server_name[16];
|
//uint8_t EEMEM server_name[16];
|
||||||
//uint8_t EEMEM domain_name[30];
|
//uint8_t EEMEM domain_name[30];
|
||||||
|
|
||||||
#if RF230BB
|
/*-------------------------------------------------------------------------*/
|
||||||
rimeaddr_t macLongAddr;
|
/*-----------------------------Low level initialization--------------------*/
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Test rtimers, also useful for pings and time stamps in simulator */
|
|
||||||
#define TESTRTIMER 0
|
|
||||||
#if TESTRTIMER
|
|
||||||
#define PINGS 0
|
|
||||||
#define STAMPS 30
|
|
||||||
uint8_t rtimerflag=1;
|
|
||||||
uint16_t rtime;
|
|
||||||
struct rtimer rt;
|
|
||||||
void rtimercycle(void) {rtimerflag=1;}
|
|
||||||
#endif /* TESTRTIMER */
|
|
||||||
|
|
||||||
/*-------------------------Low level initialization-----------------*/
|
|
||||||
#if RF230BB
|
|
||||||
rimeaddr_t addr;
|
|
||||||
#endif
|
|
||||||
extern uint8_t packetreceived;
|
|
||||||
static void initialize(void) {
|
static void initialize(void) {
|
||||||
|
|
||||||
/* Initialize hardware */
|
/* Initialize hardware */
|
||||||
|
@ -165,7 +141,6 @@ static void initialize(void) {
|
||||||
/* Start radio and radio receive process */
|
/* Start radio and radio receive process */
|
||||||
/* Note this starts RF230 process, so must be done after process_init */
|
/* Note this starts RF230 process, so must be done after process_init */
|
||||||
NETSTACK_RADIO.init();
|
NETSTACK_RADIO.init();
|
||||||
//rf230_init();
|
|
||||||
|
|
||||||
/* Set addresses BEFORE starting tcpip process */
|
/* Set addresses BEFORE starting tcpip process */
|
||||||
|
|
||||||
|
@ -185,15 +160,12 @@ static void initialize(void) {
|
||||||
|
|
||||||
memcpy(&uip_lladdr.addr, &addr.u8, 8);
|
memcpy(&uip_lladdr.addr, &addr.u8, 8);
|
||||||
rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *)&addr.u8);
|
rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *)&addr.u8);
|
||||||
|
|
||||||
rf230_set_channel(24);
|
rf230_set_channel(24);
|
||||||
|
|
||||||
rimeaddr_set_node_addr(&addr);
|
rimeaddr_set_node_addr(&addr);
|
||||||
// set_rime_addr();
|
// set_rime_addr();
|
||||||
|
|
||||||
framer_set(&framer_802154);
|
/* Initialize stack protocols */
|
||||||
// process_start(&tcpip_process, NULL);
|
|
||||||
/* Setup X-MAC for 802.15.4 */
|
|
||||||
queuebuf_init();
|
queuebuf_init();
|
||||||
NETSTACK_RDC.init();
|
NETSTACK_RDC.init();
|
||||||
NETSTACK_MAC.init();
|
NETSTACK_MAC.init();
|
||||||
|
@ -204,17 +176,13 @@ static void initialize(void) {
|
||||||
uip_router_register(&rimeroute);
|
uip_router_register(&rimeroute);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif /*RF230BB*/
|
|
||||||
|
|
||||||
|
|
||||||
#if RF230BB
|
|
||||||
process_start(&tcpip_process, NULL);
|
|
||||||
#else
|
#else
|
||||||
/* The order of starting these is important! */
|
/* The order of starting these is important! */
|
||||||
process_start(&mac_process, NULL);
|
process_start(&mac_process, NULL);
|
||||||
process_start(&tcpip_process, NULL);
|
process_start(&tcpip_process, NULL);
|
||||||
|
|
||||||
#endif /* RF230BB */
|
#endif /* RF230BB */
|
||||||
|
|
||||||
/* Setup USB */
|
/* Setup USB */
|
||||||
process_start(&usb_process, NULL);
|
process_start(&usb_process, NULL);
|
||||||
|
@ -262,20 +230,17 @@ main(void)
|
||||||
}
|
}
|
||||||
#endif /* TESTRTIMER */
|
#endif /* TESTRTIMER */
|
||||||
|
|
||||||
//Use with RF230BB RADIOALWAYSON to show packets missed when radio is "off"
|
//Use with RF230BB DEBUGFLOW to show path through driver
|
||||||
//Warning, Jackdaw doesn't handle simultaneous radio and USB interrupts very well.
|
//Warning, Jackdaw doesn't handle simultaneous radio and USB interrupts very well.
|
||||||
#if 0
|
#if RF230BB&&0
|
||||||
if (packetreceived) {
|
extern uint8_t debugflowsize,debugflow[];
|
||||||
if (packetreceived==1) {
|
if (debugflowsize) {
|
||||||
printf("-");
|
debugflow[debugflowsize]=0;
|
||||||
} else {
|
printf("%s",debugflow);
|
||||||
printf("+");
|
debugflowsize=0;
|
||||||
}
|
}
|
||||||
packetreceived=0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Allow USB CDC to keep up with printfs */
|
/* Allow USB CDC to keep up with printfs */
|
||||||
#if ANNOUNCE
|
#if ANNOUNCE
|
||||||
if (firsttime) {
|
if (firsttime) {
|
||||||
|
@ -292,7 +257,7 @@ main(void)
|
||||||
unsigned short tmp;
|
unsigned short tmp;
|
||||||
tmp=CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval == 0 ? 1:\
|
tmp=CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval == 0 ? 1:\
|
||||||
NETSTACK_RDC.channel_check_interval());
|
NETSTACK_RDC.channel_check_interval());
|
||||||
printf_P(PSTR(", check rate %u Hz"),tmp);
|
if (tmp<65535) printf_P(PSTR(", check rate %u Hz"),tmp);
|
||||||
}
|
}
|
||||||
printf_P(PSTR("\n\r"));
|
printf_P(PSTR("\n\r"));
|
||||||
#endif /* RF230BB */
|
#endif /* RF230BB */
|
||||||
|
@ -302,7 +267,7 @@ main(void)
|
||||||
}
|
}
|
||||||
#endif /* ANNOUNCE */
|
#endif /* ANNOUNCE */
|
||||||
|
|
||||||
#if DEBUG && 0
|
#if RF230BB&&0
|
||||||
if (rf230processflag) {
|
if (rf230processflag) {
|
||||||
printf("**RF230 process flag %u\n\r",rf230processflag);
|
printf("**RF230 process flag %u\n\r",rf230processflag);
|
||||||
rf230processflag=0;
|
rf230processflag=0;
|
||||||
|
@ -313,7 +278,7 @@ main(void)
|
||||||
// }
|
// }
|
||||||
rf230_interrupt_flag=0;
|
rf230_interrupt_flag=0;
|
||||||
}
|
}
|
||||||
#endif /* DEBUG */
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue