7 #include "contiki-conf.h"
9 #include <avr/pgmspace.h>
13 #include <dev/watchdog.h>
20 #include <dev/rs232.h>
28 #include "rtimer-arch.h"
36 #include "net/sicslowpan.h"
38 #error No Xmega radio driver available
41 #include "contiki-net.h"
42 #include "contiki-lib.h"
49 #if defined(APP_SETTINGS_DELETE)
50 #include "settings_delete.h"
51 #elif defined(APP_SETTINGS_SET)
52 #include "settings_set.h"
55 void platform_radio_init(
void)
60 uint8_t radio_tx_power = RADIO_TX_POWER;
61 uint8_t radio_channel = RADIO_CHANNEL;
62 uint16_t pan_id = RADIO_PAN_ID;
63 uint16_t pan_addr = NODE_ID;
64 uint8_t ieee_addr[8] = {0,0,0,0,0,0,0,0};
66 printf(
"default_channel: %d\n", RADIO_CHANNEL);
69 NETSTACK_RADIO.init();
78 printf(
"NodeID/PanAddr not in EEPROM - using default\n");
88 printf(
"Radio TXPower not in EEPROM - using default\n");
98 printf(
"Radio Channel not in EEPROM - using default\n");
105 ieee_addr[0] = pan_addr & 0xFF;
106 ieee_addr[1] = (pan_addr >> 8) & 0xFF;
114 printf(
"Radio IEEE Addr not in EEPROM - using default\n");
117 printf(
"network_id(pan_id): 0x%X\n", pan_addr);
118 printf(
"node_id(pan_addr): 0x%X\n", pan_addr);
119 printf(
"radio_tx_power: 0x%X\n", radio_tx_power);
120 printf(
"radio_channel: 0x%X\n", radio_channel);
121 printf(
"ieee_addr: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", ieee_addr[0], ieee_addr[1], ieee_addr[2], ieee_addr[3], ieee_addr[4], ieee_addr[5], ieee_addr[6], ieee_addr[7]);
123 rimeaddr_t addr = {{(pan_addr >> 8) & 0xFF, pan_addr & 0xFF}};
124 rimeaddr_set_node_addr(&addr);
129 (uint8_t *) &ieee_addr
132 rf230_set_channel(radio_channel);
137 memcpy(&
uip_lladdr.addr, &addr.u8,
sizeof(rimeaddr_t));
143 NETSTACK_NETWORK.init();
153 xmega_powerreduction_enable();
156 xmega_interrupt_enable(PMIC_HILVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_LOLVLEN_bm);
164 PR.PRPF &= (~PR_USART0_bm);
166 rs232_init(RS232_PORT_1, USART_BAUD_115200, USART_PARITY_NONE | USART_STOP_BITS_1 | USART_DATA_BITS_8);
167 rs232_redirect_stdout(RS232_PORT_1);
171 PR.PRPC &= (~PR_TC0_bm);
185 #if defined(XMEGA_TIMER_RTC) && XMEGA_TIMER_RTC == 1
186 PR.PRGEN &= (~PR_EVSYS_bm);
187 EVSYS.CH0MUX = (1 << 3);
202 PR.PRPC &= (~PR_SPI_bm);
204 platform_radio_init();
208 #if POWERREDUCTION_NVM
209 xmega_pr_nvm_enable();
215 autostart_start(autostart_processes);
217 #if defined(APP_SETTINGS_SET)
221 #if defined(APP_SETTINGS_DELETE)
236 printf(
"Welcome to Contiki.XMega\n");