2013-06-18 17:21:38 +02:00
|
|
|
/**
|
2013-06-22 05:11:53 +02:00
|
|
|
* Auto initialization for used modules
|
2013-06-18 17:21:38 +02:00
|
|
|
*
|
|
|
|
* Copyright (C) 2013 INRIA.
|
|
|
|
*
|
2014-07-31 19:45:27 +02:00
|
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
|
|
* General Public License v2.1. See the file LICENSE in the top level
|
|
|
|
* directory for more details.
|
2013-06-18 17:21:38 +02:00
|
|
|
*
|
|
|
|
* @ingroup auto_init
|
|
|
|
* @{
|
|
|
|
* @file auto_init_c
|
|
|
|
* @brief initializes any used module that has a trivial init function
|
|
|
|
* @author Oliver Hahm <oliver.hahm@inria.fr>
|
|
|
|
* @}
|
|
|
|
*/
|
2010-09-22 15:10:42 +02:00
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdio.h>
|
2013-10-27 17:23:25 +01:00
|
|
|
|
|
|
|
#include "auto_init.h"
|
|
|
|
|
2013-12-21 15:23:17 +01:00
|
|
|
#ifdef MODULE_SHT11
|
|
|
|
#include "sht11.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_GPIOINT
|
|
|
|
#include "gpioint.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_CC110X
|
2014-02-07 18:26:21 +01:00
|
|
|
#include "cc110x.h"
|
2013-12-21 15:23:17 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_LTC4150
|
|
|
|
#include "ltc4150.h"
|
|
|
|
#endif
|
|
|
|
|
2013-10-27 17:23:25 +01:00
|
|
|
#ifdef MODULE_UART0
|
2011-12-12 17:50:22 +01:00
|
|
|
#include "board_uart0.h"
|
2013-10-27 17:23:25 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_MCI
|
2011-12-12 17:50:22 +01:00
|
|
|
#include "diskio.h"
|
2013-10-27 17:23:25 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_VTIMER
|
2012-05-22 15:59:36 +02:00
|
|
|
#include "vtimer.h"
|
2013-10-27 17:23:25 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_RTC
|
|
|
|
#include "rtc.h"
|
|
|
|
#endif
|
2010-09-22 15:10:42 +02:00
|
|
|
|
2014-02-08 04:22:42 +01:00
|
|
|
#ifdef MODULE_SIXLOWPAN
|
|
|
|
#include "sixlowpan.h"
|
|
|
|
#endif
|
|
|
|
|
2014-07-31 17:53:46 +02:00
|
|
|
#ifdef MODULE_UDP
|
|
|
|
#include "udp.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_TCP
|
|
|
|
#include "tcp.h"
|
2014-01-16 16:41:07 +01:00
|
|
|
#endif
|
|
|
|
|
2013-12-20 15:23:09 +01:00
|
|
|
#ifdef MODULE_NET_IF
|
|
|
|
#include "net_if.h"
|
|
|
|
#include "transceiver.h"
|
|
|
|
#endif
|
|
|
|
|
2013-07-25 21:55:49 +02:00
|
|
|
#define ENABLE_DEBUG (0)
|
2013-10-27 17:23:25 +01:00
|
|
|
#include "debug.h"
|
2010-09-22 15:10:42 +02:00
|
|
|
|
2014-02-08 04:22:42 +01:00
|
|
|
#ifndef CONF_RADIO_ADDR
|
|
|
|
#define CONF_RADIO_ADDR (1)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONF_PAN_ID
|
|
|
|
#define CONF_PAN_ID (0xabcd)
|
|
|
|
#endif
|
|
|
|
|
2013-06-22 05:11:53 +02:00
|
|
|
void auto_init(void)
|
|
|
|
{
|
2012-05-22 15:59:36 +02:00
|
|
|
#ifdef MODULE_VTIMER
|
|
|
|
DEBUG("Auto init vtimer module.\n");
|
|
|
|
vtimer_init();
|
|
|
|
#endif
|
2010-11-04 14:12:05 +01:00
|
|
|
#ifdef MODULE_UART0
|
|
|
|
DEBUG("Auto init uart0 module.\n");
|
|
|
|
board_uart0_init();
|
|
|
|
#endif
|
2010-11-04 18:16:39 +01:00
|
|
|
#ifdef MODULE_RTC
|
|
|
|
DEBUG("Auto init rtc module.\n");
|
|
|
|
rtc_init();
|
|
|
|
rtc_enable();
|
|
|
|
#endif
|
2010-09-22 15:10:42 +02:00
|
|
|
#ifdef MODULE_SHT11
|
|
|
|
DEBUG("Auto init SHT11 module.\n");
|
|
|
|
sht11_init();
|
|
|
|
#endif
|
|
|
|
#ifdef MODULE_GPIOINT
|
|
|
|
DEBUG("Auto init gpioint module.\n");
|
|
|
|
gpioint_init();
|
|
|
|
#endif
|
|
|
|
#ifdef MODULE_CC110X
|
|
|
|
DEBUG("Auto init CC1100 module.\n");
|
2013-11-21 20:50:47 +01:00
|
|
|
#ifndef MODULE_TRANSCEIVER
|
2010-09-22 15:10:42 +02:00
|
|
|
cc1100_init();
|
|
|
|
#endif
|
2013-11-21 20:50:47 +01:00
|
|
|
#endif
|
2010-09-22 15:10:42 +02:00
|
|
|
#ifdef MODULE_LTC4150
|
|
|
|
DEBUG("Auto init ltc4150 module.\n");
|
|
|
|
ltc4150_init();
|
2011-01-31 18:25:20 +01:00
|
|
|
#endif
|
2011-12-12 17:50:22 +01:00
|
|
|
#ifdef MODULE_MCI
|
|
|
|
DEBUG("Auto init mci module.\n");
|
|
|
|
MCI_initialize();
|
|
|
|
#endif
|
2013-12-20 15:23:09 +01:00
|
|
|
#ifdef MODULE_NET_IF
|
2014-02-08 04:22:42 +01:00
|
|
|
int iface;
|
2013-12-20 15:23:09 +01:00
|
|
|
DEBUG("Auto init net_if module.\n");
|
|
|
|
transceiver_type_t transceivers = 0;
|
|
|
|
#ifdef MODULE_AT86RF231
|
|
|
|
transceivers |= TRANSCEIVER_AT86RF231;
|
|
|
|
#endif
|
|
|
|
#ifdef MODULE_CC1020
|
|
|
|
transceivers |= TRANSCEIVER_CC1020;
|
|
|
|
#endif
|
|
|
|
#if MODULE_CC110X || MODULE_CC110X_NG
|
|
|
|
transceivers |= TRANSCEIVER_CC1100;
|
|
|
|
#endif
|
|
|
|
#ifdef MODULE_CC2420
|
|
|
|
transceivers |= TRANSCEIVER_CC2420;
|
|
|
|
#endif
|
|
|
|
#ifdef MODULE_MC1322X
|
|
|
|
transceivers |= TRANSCEIVER_MC1322X;
|
|
|
|
#endif
|
|
|
|
#ifdef MODULE_NATIVENET
|
|
|
|
transceivers |= TRANSCEIVER_NATIVE;
|
|
|
|
#endif
|
|
|
|
net_if_init();
|
|
|
|
|
|
|
|
if (transceivers != 0) {
|
|
|
|
transceiver_init(transceivers);
|
|
|
|
transceiver_start();
|
2014-02-08 04:22:42 +01:00
|
|
|
iface = net_if_init_interface(0, transceivers);
|
|
|
|
|
2014-03-04 10:56:52 +01:00
|
|
|
if (net_if_set_src_address_mode(iface, NET_IF_TRANS_ADDR_M_SHORT)) {
|
|
|
|
DEBUG("Auto init source address mode to short on interface %d\n",
|
|
|
|
iface);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
net_if_set_hardware_address(iface, NET_IF_TRANS_ADDR_M_LONG);
|
|
|
|
DEBUG("Auto init source address mode to long on interface %d\n",
|
|
|
|
iface);
|
|
|
|
}
|
|
|
|
|
2014-02-08 04:22:42 +01:00
|
|
|
if (!net_if_get_hardware_address(iface)) {
|
|
|
|
DEBUG("Auto init radio address on interface %d to 0x%04x\n", iface, CONF_RADIO_ADDR);
|
|
|
|
DEBUG("Change this value at compile time with macro CONF_RADIO_ADDR\n");
|
|
|
|
net_if_set_hardware_address(iface, CONF_RADIO_ADDR);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (net_if_get_pan_id(iface) <= 0) {
|
|
|
|
DEBUG("Auto init PAN ID on interface %d to 0x%04x\n", iface, CONF_PAN_ID);
|
|
|
|
DEBUG("Change this value at compile time with macro CONF_PAN_ID\n");
|
|
|
|
net_if_set_pan_id(iface, CONF_PAN_ID);
|
|
|
|
}
|
2013-12-20 15:23:09 +01:00
|
|
|
|
|
|
|
if (iface >= 0) {
|
2014-02-08 04:22:42 +01:00
|
|
|
DEBUG("Auto init interface %d\n", iface);
|
2013-12-20 15:23:09 +01:00
|
|
|
}
|
|
|
|
}
|
2014-02-08 04:22:42 +01:00
|
|
|
else {
|
|
|
|
iface = -1;
|
|
|
|
}
|
2013-12-20 15:23:09 +01:00
|
|
|
|
2014-02-08 04:22:42 +01:00
|
|
|
#ifdef MODULE_SIXLOWPAN
|
|
|
|
DEBUG("Auto init 6LoWPAN module.\n");
|
|
|
|
sixlowpan_lowpan_init();
|
|
|
|
#endif
|
2013-12-20 15:23:09 +01:00
|
|
|
#endif
|
2011-01-31 18:25:20 +01:00
|
|
|
#ifdef MODULE_PROFILING
|
|
|
|
extern void profiling_init(void);
|
|
|
|
profiling_init();
|
2010-09-22 15:10:42 +02:00
|
|
|
#endif
|
2014-07-31 17:53:46 +02:00
|
|
|
#ifdef MODULE_UDP
|
|
|
|
DEBUG("Auto init transport layer module: [udp].\n");
|
|
|
|
udp_init_transport_layer();
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MODULE_TCP
|
|
|
|
DEBUG("Auto init transport layer module: [tcp].\n");
|
|
|
|
tcp_init_transport_layer();
|
2014-01-16 16:41:07 +01:00
|
|
|
#endif
|
2010-09-22 15:10:42 +02:00
|
|
|
}
|