Merge pull request #1344 from tsparber/fix-doxygen

doxygen: Fixed all warnings
This commit is contained in:
Simon Duquennoy 2015-11-30 22:07:15 +01:00
commit ebc8d9fb1c
39 changed files with 278 additions and 222 deletions

2
.gitignore vendored
View File

@ -32,6 +32,8 @@
*.report *.report
summary summary
*.summary *.summary
*.runerr
*.runlog
*.faillog *.faillog
*.orig *.orig
*~ *~

View File

@ -246,6 +246,7 @@ program_handler_load(char *name, char *arg)
#else /* WITH_LOADER_ARCH */ #else /* WITH_LOADER_ARCH */
#define RUN(prg, process, arg) process_start(process, arg) #define RUN(prg, process, arg) process_start(process, arg)
#endif /* WITH_LOADER_ARCH */ #endif /* WITH_LOADER_ARCH */
#if CTK_CONF_SCREENSAVER
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
/** /**
* Configures the name of the screensaver to be loaded when * Configures the name of the screensaver to be loaded when
@ -255,7 +256,6 @@ program_handler_load(char *name, char *arg)
* should be used. * should be used.
*/ */
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
#if CTK_CONF_SCREENSAVER
void void
program_handler_setscreensaver(char *name) program_handler_setscreensaver(char *name)
{ {

View File

@ -136,15 +136,18 @@ typedef struct uip_eth_addr {
typedef uip_802154_longaddr uip_lladdr_t; typedef uip_802154_longaddr uip_lladdr_t;
#define UIP_802154_SHORTADDR_LEN 2 #define UIP_802154_SHORTADDR_LEN 2
#define UIP_802154_LONGADDR_LEN 8 #define UIP_802154_LONGADDR_LEN 8
/** \brief Link layer address length */
#define UIP_LLADDR_LEN UIP_802154_LONGADDR_LEN #define UIP_LLADDR_LEN UIP_802154_LONGADDR_LEN
#else /*UIP_CONF_LL_802154*/ #else /*UIP_CONF_LL_802154*/
#if UIP_CONF_LL_80211 #if UIP_CONF_LL_80211
/** \brief 802.11 address */ /** \brief 802.11 address */
typedef uip_80211_addr uip_lladdr_t; typedef uip_80211_addr uip_lladdr_t;
/** \brief Link layer address length */
#define UIP_LLADDR_LEN 6 #define UIP_LLADDR_LEN 6
#else /*UIP_CONF_LL_80211*/ #else /*UIP_CONF_LL_80211*/
/** \brief Ethernet address */ /** \brief Ethernet address */
typedef uip_eth_addr uip_lladdr_t; typedef uip_eth_addr uip_lladdr_t;
/** \brief Link layer address length */
#define UIP_LLADDR_LEN 6 #define UIP_LLADDR_LEN 6
#endif /*UIP_CONF_LL_80211*/ #endif /*UIP_CONF_LL_80211*/
#endif /*UIP_CONF_LL_802154*/ #endif /*UIP_CONF_LL_802154*/
@ -1368,8 +1371,7 @@ struct uip_conn {
uint8_t nrtx; /**< The number of retransmissions for the last uint8_t nrtx; /**< The number of retransmissions for the last
segment sent. */ segment sent. */
/** The application state. */ uip_tcp_appstate_t appstate; /** The application state. */
uip_tcp_appstate_t appstate;
}; };

View File

@ -1046,12 +1046,14 @@ uncompress_hdr_hc06(uint16_t ip_len)
* - Both src and dest interface ID are recoverable from lower layer * - Both src and dest interface ID are recoverable from lower layer
* header * header
* - Next header is either ICMP, UDP or TCP * - Next header is either ICMP, UDP or TCP
*
* Moreover, if next header is UDP, we try to compress it using HC_UDP. * Moreover, if next header is UDP, we try to compress it using HC_UDP.
* This is feasible is both ports are between F0B0 and F0B0 + 15\n\n * This is feasible is both ports are between F0B0 and F0B0 + 15.
*
* *
* Resulting header structure: * Resulting header structure:
* - For ICMP, TCP, non compressed UDP\n * - For ICMP, TCP, non compressed UDP\n
* HC1 encoding = 11111010 (UDP) 11111110 (TCP) 11111100 (ICMP)\n * HC1 encoding = 11111010 (UDP) 11111110 (TCP) 11111100 (ICMP)\n
* \verbatim * \verbatim
* 1 2 3 * 1 2 3
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
@ -1062,8 +1064,8 @@ uncompress_hdr_hc06(uint16_t ip_len)
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* \endverbatim * \endverbatim
* *
* - For compressed UDP * - For compressed UDP\n
* HC1 encoding = 11111011, HC_UDP encoding = 11100000\n * HC1 encoding = 11111011, HC_UDP encoding = 11100000\n
* \verbatim * \verbatim
* 1 2 3 * 1 2 3
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
@ -1577,7 +1579,6 @@ output(const uip_lladdr_t *localdest)
/*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
/** \brief Process a received 6lowpan packet. /** \brief Process a received 6lowpan packet.
* \param r The MAC layer
* *
* The 6lowpan packet is put in packetbuf by the MAC. If its a frag1 or * The 6lowpan packet is put in packetbuf by the MAC. If its a frag1 or
* a non-fragmented packet we first uncompress the IP header. The * a non-fragmented packet we first uncompress the IP header. The

View File

@ -231,10 +231,10 @@ uip_ds6_link_neighbor_callback(int status, int numtx)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** Periodic processing on neighbors */
void void
uip_ds6_neighbor_periodic(void) uip_ds6_neighbor_periodic(void)
{ {
/* Periodic processing on neighbors */
uip_ds6_nbr_t *nbr = nbr_table_head(ds6_neighbors); uip_ds6_nbr_t *nbr = nbr_table_head(ds6_neighbors);
while(nbr != NULL) { while(nbr != NULL) {
switch(nbr->state) { switch(nbr->state) {

View File

@ -53,23 +53,23 @@
#define DEBUG DEBUG_NONE #define DEBUG DEBUG_NONE
#include "net/ip/uip-debug.h" #include "net/ip/uip-debug.h"
struct etimer uip_ds6_timer_periodic; /** \brief Timer for maintenance of data structures */ struct etimer uip_ds6_timer_periodic; /**< Timer for maintenance of data structures */
#if UIP_CONF_ROUTER #if UIP_CONF_ROUTER
struct stimer uip_ds6_timer_ra; /** \brief RA timer, to schedule RA sending */ struct stimer uip_ds6_timer_ra; /**< RA timer, to schedule RA sending */
#if UIP_ND6_SEND_RA #if UIP_ND6_SEND_RA
static uint8_t racount; /** \brief number of RA already sent */ static uint8_t racount; /**< number of RA already sent */
static uint16_t rand_time; /** \brief random time value for timers */ static uint16_t rand_time; /**< random time value for timers */
#endif #endif
#else /* UIP_CONF_ROUTER */ #else /* UIP_CONF_ROUTER */
struct etimer uip_ds6_timer_rs; /** \brief RS timer, to schedule RS sending */ struct etimer uip_ds6_timer_rs; /**< RS timer, to schedule RS sending */
static uint8_t rscount; /** \brief number of rs already sent */ static uint8_t rscount; /**< number of rs already sent */
#endif /* UIP_CONF_ROUTER */ #endif /* UIP_CONF_ROUTER */
/** \name "DS6" Data structures */ /** \name "DS6" Data structures */
/** @{ */ /** @{ */
uip_ds6_netif_t uip_ds6_if; /** \brief The single interface */ uip_ds6_netif_t uip_ds6_if; /**< The single interface */
uip_ds6_prefix_t uip_ds6_prefix_list[UIP_DS6_PREFIX_NB]; /** \brief Prefix list */ uip_ds6_prefix_t uip_ds6_prefix_list[UIP_DS6_PREFIX_NB]; /**< Prefix list */
/* Used by Cooja to enable extraction of addresses from memory.*/ /* Used by Cooja to enable extraction of addresses from memory.*/
uint8_t uip_ds6_addr_size; uint8_t uip_ds6_addr_size;

View File

@ -282,6 +282,7 @@ uint8_t uip_ds6_is_addr_onlink(uip_ipaddr_t *ipaddr);
/** \name Unicast address list basic routines */ /** \name Unicast address list basic routines */
/** @{ */ /** @{ */
/** \brief Add a unicast address to the interface */
uip_ds6_addr_t *uip_ds6_addr_add(uip_ipaddr_t *ipaddr, uip_ds6_addr_t *uip_ds6_addr_add(uip_ipaddr_t *ipaddr,
unsigned long vlifetime, uint8_t type); unsigned long vlifetime, uint8_t type);
void uip_ds6_addr_rm(uip_ds6_addr_t *addr); void uip_ds6_addr_rm(uip_ds6_addr_t *addr);

View File

@ -811,7 +811,7 @@ uip_nd6_rs_output(void)
return; return;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* /**
* Process a Router Advertisement * Process a Router Advertisement
* *
* - Possible actions when receiving a RA: add router to router list, * - Possible actions when receiving a RA: add router to router list,

View File

@ -59,9 +59,12 @@
/** \name RFC 4861 Host constant */ /** \name RFC 4861 Host constant */
/** @{ */ /** @{ */
/** \brief Maximum router solicitation delay */
#define UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1 #define UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1
/** \brief Router solicitation interval */
#define UIP_ND6_RTR_SOLICITATION_INTERVAL 4 #define UIP_ND6_RTR_SOLICITATION_INTERVAL 4
#define UIP_ND6_MAX_RTR_SOLICITATIONS 3 /** \brief Maximum router solicitations */
#define UIP_ND6_MAX_RTR_SOLICITATIONS 3
/** @} */ /** @} */
/** \name RFC 4861 Router constants */ /** \name RFC 4861 Router constants */

View File

@ -654,7 +654,7 @@ static uint8_t uip_reassflags;
*/ */
struct etimer uip_reass_timer; /* timer for reassembly */ struct etimer uip_reass_timer; /**< Timer for reassembly */
uint8_t uip_reass_on; /* equal to 1 if we are currently reassembling a packet */ uint8_t uip_reass_on; /* equal to 1 if we are currently reassembling a packet */
static uint32_t uip_id; /* For every packet that is to be fragmented, the source static uint32_t uip_id; /* For every packet that is to be fragmented, the source

View File

@ -33,7 +33,7 @@
*/ */
/****************************************************************************************************//** /****************************************************************************************************//**
* @file ADUCRF101.h * @file ADuCRF101.h
* *
* @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File for * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File for
* default ADUCRF101 Device Series * default ADUCRF101 Device Series

View File

@ -1292,7 +1292,6 @@ static RIE_Responses RadioWaitOnState(RadioState FinalState)
/** /**
@fn RIE_Responses RadioWaitOnCmdLdr(void) @fn RIE_Responses RadioWaitOnCmdLdr(void)
@brief Wait for Final State to be reached @brief Wait for Final State to be reached
@param FinalState State to wait on
@return RIE_Responses Error code @return RIE_Responses Error code
**/ **/
static RIE_Responses RadioWaitOnCmdLdr(void) static RIE_Responses RadioWaitOnCmdLdr(void)

View File

@ -32,7 +32,7 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/** /**
@file system_ADUCRF101.c @file system_ADuCRF101.c
@brief CMSIS Cortex-M3 Device Peripheral Access Layer Implementation File @brief CMSIS Cortex-M3 Device Peripheral Access Layer Implementation File
for the ADuCRF101 for the ADuCRF101
@version v1.0 @version v1.0
@ -106,7 +106,6 @@ void SystemCoreClockUpdate (void) /* Get Core Clock Frequency */
/** /**
* Initialize the system * Initialize the system
* *
* @param none
* @return none * @return none
* *
* @brief Setup the microcontroller system. * @brief Setup the microcontroller system.

View File

@ -32,7 +32,7 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/** /**
@file system_ADUCRF101.h @file system_ADuCRF101.h
@brief: CMSIS Cortex-M3 Device Peripheral Access Layer Header File @brief: CMSIS Cortex-M3 Device Peripheral Access Layer Header File
for the ADuCRF101 for the ADuCRF101
@version v0.2 @version v0.2
@ -51,7 +51,6 @@
/** /**
* @brief Initialize the system * @brief Initialize the system
* *
* @param none
* @return none * @return none
* *
* Setup the microcontroller system. * Setup the microcontroller system.
@ -62,7 +61,6 @@ extern void SystemInit (void);
/** /**
* @brief Update internal SystemCoreClock variable * @brief Update internal SystemCoreClock variable
* *
* @param none
* @return none * @return none
* *
* Updates the internal SystemCoreClock with current core * Updates the internal SystemCoreClock with current core

View File

@ -71,7 +71,8 @@
/** /**
* \brief Perform a relocation. * \brief Perform a relocation.
* \param output The output object for the segment. * \param input_fd The file descriptor for the ELF file.
* \param output The output object for the segment.
* \param sectionoffset The file offset at which the relocation can be found. * \param sectionoffset The file offset at which the relocation can be found.
* \param sectionaddr The section start address (absolute runtime). * \param sectionaddr The section start address (absolute runtime).
* \param rela A pointer to an ELF32 rela structure (struct elf32_rela). * \param rela A pointer to an ELF32 rela structure (struct elf32_rela).

View File

@ -169,11 +169,11 @@ struct elfloader_output {
}; };
/** /**
* \brief Allocate a new segment * \brief Allocate a new segment
* \param input The output object * \param output The output object
* \param type Type of segment * \param type Type of segment
* \param size Size of segment in bytes * \param size Size of segment in bytes
* \return A pointer to the start of the segment. * \return A pointer to the start of the segment.
* *
* The returned address doesn't need to correspond to any real memory, * The returned address doesn't need to correspond to any real memory,
* since it's only used for calculating the relocations. * since it's only used for calculating the relocations.
@ -182,39 +182,39 @@ void *elfloader_allocate_segment(struct elfloader_output *output,
unsigned int type, int size); unsigned int type, int size);
/** /**
* \brief Start writing to a new segment * \brief Start writing to a new segment
* \param input The output object * \param output The output object
* \param type Type of segment * \param type Type of segment
* \param addr Address of segment from elfloader_allocate_segment * \param addr Address of segment from elfloader_allocate_segment
* \param size Size of segment in bytes * \param size Size of segment in bytes
* \return Returns ELFLOADER_OK if successful, otherwise an error code * \return Returns ELFLOADER_OK if successful, otherwise an error code
* *
*/ */
int elfloader_start_segment(struct elfloader_output *output, int elfloader_start_segment(struct elfloader_output *output,
unsigned int type, void *addr, int size); unsigned int type, void *addr, int size);
/** /**
* \brief Mark end of segment * \brief Mark end of segment
* \param input The output object * \param output The output object
* \return Zero if successful * \return Zero if successful
*/ */
int elfloader_end_segment(struct elfloader_output *output); int elfloader_end_segment(struct elfloader_output *output);
/** /**
* \brief Write data to a segment * \brief Write data to a segment
* \param input The output object * \param output The output object
* \param buf Data to be written * \param buf Data to be written
* \param len Length of data * \param len Length of data
* \return The number of bytes actually written, or negative if failed. * \return The number of bytes actually written, or negative if failed.
*/ */
int elfloader_write_segment(struct elfloader_output *output, const char *buf, int elfloader_write_segment(struct elfloader_output *output, const char *buf,
unsigned int len); unsigned int len);
/** /**
* \brief Get the current offset in the file where the next data will * \brief Get the current offset in the file where the next data will
* be written. * be written.
* \param input The output object * \param output The output object
* \return The current offset. * \return The current offset.
*/ */
unsigned int elfloader_segment_offset(struct elfloader_output *output); unsigned int elfloader_segment_offset(struct elfloader_output *output);
@ -255,8 +255,8 @@ void elfloader_init(void);
/** /**
* \brief Load and relocate an ELF file. * \brief Load and relocate an ELF file.
* \param input Input object defining how to read from the ELF file * \param input_fd Input object defining how to read from the ELF file
* \param output Output object defining how to create and write to seegments. * \param output Output object defining how to create and write to seegments.
* \return ELFLOADER_OK if loading and relocation worked. * \return ELFLOADER_OK if loading and relocation worked.
* Otherwise an error value. * Otherwise an error value.
* *

View File

@ -271,6 +271,9 @@
*/ */
#define NIC_MMUCR (LANC111_BASE_ADDR + 0x00) #define NIC_MMUCR (LANC111_BASE_ADDR + 0x00)
/*!
* \brief MMU command register busy flag.
*/
#define MMUCR_BUSY 0x0001 #define MMUCR_BUSY 0x0001
#define MMU_NOP 0 #define MMU_NOP 0
@ -292,7 +295,7 @@
/*! /*!
* \brief Bank 2 - Allocation result register. * \brief Bank 2 - Allocation result register.
* *
* This byte register is updated upon a \ref MMU_ALO command. * This byte register is updated upon a MMU_ALO command.
*/ */
#define NIC_ARR (LANC111_BASE_ADDR + 0x03) #define NIC_ARR (LANC111_BASE_ADDR + 0x03)
@ -334,14 +337,14 @@
*/ */
#define NIC_MSK (LANC111_BASE_ADDR + 0x0D) #define NIC_MSK (LANC111_BASE_ADDR + 0x0D)
#define INT_MD 0x80 /*!< \ref PHY state change interrupt bit mask. */ #define INT_MD 0x80 /*!< PHY state change interrupt bit mask. */
#define INT_ERCV 0x40 /*!< \ref Early receive interrupt bit mask. */ #define INT_ERCV 0x40 /*!< Early receive interrupt bit mask. */
#define INT_EPH 0x20 /*!< \ref Ethernet protocol interrupt bit mask. */ #define INT_EPH 0x20 /*!< Ethernet protocol interrupt bit mask. */
#define INT_RX_OVRN 0x10 /*!< \ref Receive overrun interrupt bit mask. */ #define INT_RX_OVRN 0x10 /*!< Receive overrun interrupt bit mask. */
#define INT_ALLOC 0x08 /*!< \ref Transmit allocation interrupt bit mask. */ #define INT_ALLOC 0x08 /*!< Transmit allocation interrupt bit mask. */
#define INT_TX_EMPTY 0x04 /*!< \ref Transmitter empty interrupt bit mask. */ #define INT_TX_EMPTY 0x04 /*!< Transmitter empty interrupt bit mask. */
#define INT_TX 0x02 /*!< \ref Transmit complete interrupt bit mask. */ #define INT_TX 0x02 /*!< Transmit complete interrupt bit mask. */
#define INT_RCV 0x01 /*!< \ref Receive interrupt bit mask. */ #define INT_RCV 0x01 /*!< Receive interrupt bit mask. */
/*! /*!
* \brief Bank 3 - Multicast table register. * \brief Bank 3 - Multicast table register.
@ -493,12 +496,6 @@
#define nic_bs(bank) nic_outlb(NIC_BSR, bank) #define nic_bs(bank) nic_outlb(NIC_BSR, bank)
/*!
* \struct _NICINFO lanc111.h dev/lanc111.h
* \brief Network interface controller information structure.
*/
/*@}*/
/*! /*!
* \addtogroup xgNicLanc111 * \addtogroup xgNicLanc111
*/ */
@ -840,10 +837,10 @@ static int NicStart(CONST uint8_t * mac)
return 0; return 0;
} }
#if 0
/* /*
* NIC interrupt entry. * NIC interrupt entry.
*/ */
#if 0
static void NicInterrupt(void *arg) static void NicInterrupt(void *arg)
{ {
uint8_t isr; uint8_t isr;
@ -955,7 +952,7 @@ static void NicRead(uint8_t * buf, uint16_t len)
* *
* Nic interrupts must be disabled when calling this funtion. * Nic interrupts must be disabled when calling this funtion.
* *
* \return Pointer to an allocated ::NETBUF. If there is no * \return Pointer to an allocated NETBUF. If there is no
* no data available, then the function returns a * no data available, then the function returns a
* null pointer. If the NIC's buffer seems to be * null pointer. If the NIC's buffer seems to be
* corrupted, a pointer to 0xFFFF is returned. * corrupted, a pointer to 0xFFFF is returned.
@ -1014,6 +1011,7 @@ static NETBUF *NicGetPacket(void)
return nb; return nb;
} }
#if 0
/*! /*!
* \brief Load a packet into the nic's transmit ring buffer. * \brief Load a packet into the nic's transmit ring buffer.
* *
@ -1028,7 +1026,6 @@ static NETBUF *NicGetPacket(void)
* will automatically release the network buffer * will automatically release the network buffer
* structure. * structure.
*/ */
#if 0
static int NicPutPacket(NETBUF * nb) static int NicPutPacket(NETBUF * nb)
{ {
uint16_t sz; uint16_t sz;
@ -1119,13 +1116,12 @@ static int NicPutPacket(NETBUF * nb)
return 0; return 0;
} }
#endif #endif /* 0 */
/*! \fn NicRxLanc(void *arg)
* \brief NIC receiver thread.
*
*/
#if 1 #if 1
/*!
* \brief NIC receiver thread.
*/
PROCESS_THREAD(lanc111_process, ev, data) PROCESS_THREAD(lanc111_process, ev, data)
/*THREAD(NicRxLanc, arg)*/ /*THREAD(NicRxLanc, arg)*/
{ {
@ -1202,7 +1198,7 @@ PROCESS_THREAD(lanc111_process, ev, data)
PROCESS_END(); PROCESS_END();
} }
#endif /* 0 */ #endif /* 1 */
#if 0 #if 0
/*! /*!
* \brief Send Ethernet packet. * \brief Send Ethernet packet.
@ -1245,7 +1241,7 @@ int LancOutput(NUTDEVICE * dev, NETBUF * nb)
} }
return rc; return rc;
} }
#endif #endif /* 0 */
#if 0 #if 0
/*! /*!
* \brief Initialize Ethernet hardware. * \brief Initialize Ethernet hardware.
@ -1340,7 +1336,7 @@ NUTDEVICE devSmsc111 = {
}; };
/*@}*/ /*@}*/
#endif #endif /* 0 */
int int

View File

@ -26,6 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
*/
/** /**
* \file * \file
* Dummy implementation of minileds module * Dummy implementation of minileds module

View File

@ -34,7 +34,7 @@
*/ */
/** /**
* \file printf-stdarg.c * \file lib/printf.c
* *
* \brief sprintf functions to replace newlib for AVR32 UC3. * \brief sprintf functions to replace newlib for AVR32 UC3.
* *

View File

@ -10,12 +10,12 @@
#ifndef ERRORS_H_ #ifndef ERRORS_H_
#define ERRORS_H_ #define ERRORS_H_
#ifndef __STSTATUS_TYPE__
#define __STSTATUS_TYPE__
/** /**
* @brief Return type for St functions. * @brief Return type for St functions.
*/ */
#ifndef __STSTATUS_TYPE__ typedef uint8_t StStatus;
#define __STSTATUS_TYPE__
typedef uint8_t StStatus;
#endif //__STSTATUS_TYPE__ #endif //__STSTATUS_TYPE__
/** /**
@ -27,7 +27,7 @@
* @brief Macro used by error-def.h to define all of the return codes. * @brief Macro used by error-def.h to define all of the return codes.
* *
* @param symbol The name of the constant being defined. All St returns * @param symbol The name of the constant being defined. All St returns
* begin with ST_. For example, ::ST_CONNECTION_OPEN. * begin with ST_. For example, ::ST_ERR_FATAL.
* *
* @param value The value of the return code. For example, 0x61. * @param value The value of the return code. For example, 0x61.
*/ */
@ -36,9 +36,7 @@
enum { enum {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include "error-def.h" #include "error-def.h"
#endif //DOXYGEN_SHOULD_SKIP_THIS
/** Gets defined as a count of all the possible return codes in the /** Gets defined as a count of all the possible return codes in the
* StZNet stack API. * StZNet stack API.
*/ */

View File

@ -7,6 +7,7 @@
#ifndef MFG_TOKEN_H_ #ifndef MFG_TOKEN_H_
#define MFG_TOKEN_H_ #define MFG_TOKEN_H_
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// The manufacturing tokens live in the Info Blocks, while all other tokens // The manufacturing tokens live in the Info Blocks, while all other tokens
// live in the Simulated EEPROM. This requires the token names to be defined // live in the Simulated EEPROM. This requires the token names to be defined
@ -20,10 +21,13 @@
* that point to the correct location in the Info Blocks. (This is the * that point to the correct location in the Info Blocks. (This is the
* extern, the actual definition is found in hal/micro/cortexm3/token.c) * extern, the actual definition is found in hal/micro/cortexm3/token.c)
* *
* \param name: The name of the token. * \param name: The name of the token.
* * \param creator: The manufacturing creators.
* \param TOKEN_##name##_ADDRESS: The address in EEPROM at which the token * \param iscnt:
* will be stored. This parameter is generated with a macro above. * \param isidx:
* \param type: The token type. The types are found in token-stack.h.
* \param arraysize: The number of elements in an indexed token (arraysize=1
* for scalar tokens).
*/ */
#define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \ #define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \
extern const uint16_t TOKEN_##name; extern const uint16_t TOKEN_##name;
@ -34,9 +38,13 @@
* \brief Macro for translating token definitions into size variables. * \brief Macro for translating token definitions into size variables.
* This provides a convenience for abstracting the 'sizeof(type)' anywhere. * This provides a convenience for abstracting the 'sizeof(type)' anywhere.
* *
* \param name: The name of the token. * \param name: The name of the token.
* * \param creator: The manufacturing creators.
* \param type: The token type. The types are found in token-stack.h. * \param iscnt:
* \param isidx:
* \param type: The token type. The types are found in token-stack.h.
* \param arraysize: The number of elements in an indexed token (arraysize=1
* for scalar tokens).
*/ */
#define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \ #define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \
TOKEN_##name##_SIZE = sizeof(type), TOKEN_##name##_SIZE = sizeof(type),
@ -49,12 +57,16 @@
/** /**
* \brief Macro for typedef'ing the CamelCase token type found in * \brief Macro for typedef'ing the CamelCase token type found in
* token-stack.h to a capitalized TOKEN style name that ends in _TYPE. * token-stack.h to a capitalized TOKEN style name that ends in _TYPE.
* This macro allows other macros below to use 'token##_TYPE' to declare * This macro allows other macros below to use 'token\#\#_TYPE' to declare
* a local copy of that token. * a local copy of that token.
* *
* \param name: The name of the token. * \param name: The name of the token.
* * \param creator: The manufacturing creators.
* \param type: The token type. The types are found in token-stack.h. * \param iscnt:
* \param isidx:
* \param type: The token type. The types are found in token-stack.h.
* \param arraysize: The number of elements in an indexed token (arraysize=1
* for scalar tokens).
*/ */
#define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \ #define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \
typedef type TOKEN_##name##_TYPE; typedef type TOKEN_##name##_TYPE;
@ -70,8 +82,7 @@
* subsequent tokens to align against. ( See hal/micro/cortexm3/token.c for * subsequent tokens to align against. ( See hal/micro/cortexm3/token.c for
* the instances of TOKEN_NEXT_ADDRESS() ); * the instances of TOKEN_NEXT_ADDRESS() );
* *
* \param region: The name to give to the element in the address enum.. * \param region: The name to give to the element in the address enum.
*
* \param address: The address in EEPROM where the region begins. * \param address: The address in EEPROM where the region begins.
*/ */
#define TOKEN_NEXT_ADDRESS(region, address) \ #define TOKEN_NEXT_ADDRESS(region, address) \
@ -80,14 +91,17 @@
/** /**
* \brief Macro for creating ADDRESS and END elements for each token in * \brief Macro for creating ADDRESS and END elements for each token in
* the enum below. The ADDRESS element is linked to from the the normal * the enum below. The ADDRESS element is linked to from the the normal
* TOKEN_##name macro and provides the value passed into the internal token * TOKEN_\#\#name macro and provides the value passed into the internal token
* system calls. The END element is a placeholder providing the starting * system calls. The END element is a placeholder providing the starting
* point for the ADDRESS of the next dynamically positioned token. * point for the ADDRESS of the next dynamically positioned token.
* *
* \param name: The name of the token. * \param name: The name of the token.
* * \param creator: The manufacturing creators.
* \param arraysize: The number of elements in an indexed token (arraysize=1 * \param iscnt:
* for scalar tokens). * \param isidx:
* \param type: The token type. The types are found in token-stack.h.
* \param arraysize: The number of elements in an indexed token (arraysize=1
* for scalar tokens).
*/ */
#define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \ #define TOKEN_MFG(name,creator,iscnt,isidx,type,arraysize,...) \
TOKEN_##name##_ADDRESS, \ TOKEN_##name##_ADDRESS, \
@ -106,8 +120,6 @@ enum {
#undef DEFINETOKENS #undef DEFINETOKENS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/** /**
* \brief Copies the token value from non-volatile storage into a RAM * \brief Copies the token value from non-volatile storage into a RAM
* location. This is the internal function that the exposed API * location. This is the internal function that the exposed API

View File

@ -14,8 +14,7 @@
* @addtogroup stm32w-cpu * @addtogroup stm32w-cpu
* @{ */ * @{ */
/** @defgroup nvm /** @defgroup nvm Cortex-M3 Non-Volatile Memory data storage system.
* @brief Cortex-M3 Non-Volatile Memory data storage system.
* *
* This header defines the API for NVM data storage. This header also * This header defines the API for NVM data storage. This header also
* describes the algorithm behind the NVM data storage system with notes * describes the algorithm behind the NVM data storage system with notes

View File

@ -32,8 +32,8 @@ typedef enum
* *
* @param parity The type of parity used for communication. * @param parity The type of parity used for communication.
* See the SerialParity enum for possible values * See the SerialParity enum for possible values
* *
* @return stopbits The number of stop bits used for communication. * @param stopbits The number of stop bits used for communication.
* Valid values are 1 or 2 * Valid values are 1 or 2
*/ */
void uartInit(uint32_t baudrate, uint8_t databits, SerialParity parity, uint8_t stopbits); void uartInit(uint32_t baudrate, uint8_t databits, SerialParity parity, uint8_t stopbits);

View File

@ -15,7 +15,7 @@
* @{ */ * @{ */
/** \file hal/micro/generic/compiler/platform-common.h /** \file hal/micro/generic/compiler/platform-common.h
* See \ref platform_common for detailed documentation. * See platform_common.h for detailed documentation.
* *
* <!--(C) COPYRIGHT 2010 STMicroelectronics. All rights reserved. --> * <!--(C) COPYRIGHT 2010 STMicroelectronics. All rights reserved. -->
*/ */

View File

@ -70,38 +70,43 @@ void halInternalDisableWatchDog(uint8_t magicKey);
*/ */
boolean halInternalWatchDogEnabled( void ); boolean halInternalWatchDogEnabled( void );
#ifdef DOXYGEN_SHOULD_SKIP_THIS
/** @brief Enumerations for the possible microcontroller sleep modes. /** @brief Enumerations for the possible microcontroller sleep modes.
* - SLEEPMODE_RUNNING
* Everything is active and running. In practice this mode is not
* used, but it is defined for completeness of information.
* - SLEEPMODE_IDLE
* Only the CPU is idled. The rest of the chip continues runing
* normally. The chip will wake from any interrupt.
* - SLEEPMODE_WAKETIMER
* The sleep timer clock sources remain running. The RC is always
* running and the 32kHz XTAL depends on the board header. Wakeup
* is possible from both GPIO and the sleep timer. System time
* is maintained. The sleep timer is assumed to be configured
* properly for wake events.
* - SLEEPMODE_MAINTAINTIMER
* The sleep timer clock sources remain running. The RC is always
* running and the 32kHz XTAL depends on the board header. Wakeup
* is possible from only GPIO. System time is maintained.
* - SLEEPMODE_NOTIMER
* The sleep timer clock sources (both RC and XTAL) are turned off.
* Wakeup is possible from only GPIO. System time is lost.
*/ */
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum SleepModes enum SleepModes
#else #else
typedef uint8_t SleepModes; typedef uint8_t SleepModes;
enum enum
#endif #endif
{ {
/**
* Everything is active and running. In practice this mode is not
* used, but it is defined for completeness of information.
*/
SLEEPMODE_RUNNING = 0, SLEEPMODE_RUNNING = 0,
/**
* Oly the CPU is idled. The rest of the chip continues runing
* normally. The chip will wake from any interrupt.
*/
SLEEPMODE_IDLE = 1, SLEEPMODE_IDLE = 1,
/**
* The sleep timer clock sources remain running. The RC is always
* running and the 32kHz XTAL depends on the board header. Wakeup
* is possible from both GPIO and the sleep timer. System time
* is maintained. The sleep timer is assumed to be configured
* properly for wake events.
*/
SLEEPMODE_WAKETIMER = 2, SLEEPMODE_WAKETIMER = 2,
/**
* The sleep timer clock sources remain running. The RC is always
* running and the 32kHz XTAL depends on the board header. Wakeup
* is possible from only GPIO. System time is maintained.
*/
SLEEPMODE_MAINTAINTIMER = 3, SLEEPMODE_MAINTAINTIMER = 3,
/**
* The sleep timer clock sources (both RC and XTAL) are turned off.
* Wakeup is possible from only GPIO. System time is lost.
*/
SLEEPMODE_NOTIMER = 4, SLEEPMODE_NOTIMER = 4,
}; };
@ -128,15 +133,15 @@ void halCommonDelayMicroseconds(uint16_t us);
* and if yes it will jump into it according to the user parameters. * and if yes it will jump into it according to the user parameters.
* *
* *
* @param mode The bootloader mode, 0 UART mode, 1 RF mode. All other * @param mode The bootloader mode, 0 UART mode, 1 RF mode. All other
* values are reserved * values are reserved
* @param channel The channel where the booloader will operate. 0 means * @param channel The channel where the booloader will operate. 0 means
* default channel (only vaild for RF mode). * default channel (only vaild for RF mode).
* @param panID The panID where the booloader will operate. 0xFFFF means * @param panID The panID where the booloader will operate. 0xFFFF means
* default panID (only vaild for RF mode). * default panID (only vaild for RF mode).
* @return An error code or it will never return. * @return An error code or it will never return.
*/ */
StStatus halBootloaderStart(uint8_t mode, uint8_t channel, uint16_t panId); StStatus halBootloaderStart(uint8_t mode, uint8_t channel, uint16_t panID);
#ifdef CORTEXM3_STM32F103 #ifdef CORTEXM3_STM32F103
#include "micro/cortexm3/stm32f103ret/micro-specific.h" #include "micro/cortexm3/stm32f103ret/micro-specific.h"

View File

@ -10,7 +10,7 @@
* @addtogroup stm32w-cpu * @addtogroup stm32w-cpu
* @{ */ * @{ */
/** @defgroup system_timer /** @defgroup system_timer System Timer
* @brief Functions that provide access to the system clock. * @brief Functions that provide access to the system clock.
* *
* A single system tick (as returned by ::halCommonGetInt16uMillisecondTick() and * A single system tick (as returned by ::halCommonGetInt16uMillisecondTick() and

View File

@ -427,7 +427,7 @@ EXTRACT_PACKAGE = NO
# included in the documentation. # included in the documentation.
# The default value is: NO. # The default value is: NO.
EXTRACT_STATIC = NO EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO # locally in source files will be included in the documentation. If set to NO
@ -1960,6 +1960,11 @@ PREDEFINED = CC_FUNCTION_POINTER_ARGS:=1 \
UIP_TCP:=1 \ UIP_TCP:=1 \
UIP_UDP:=1 \ UIP_UDP:=1 \
UIP_CONF_ICMP6:=1 \ UIP_CONF_ICMP6:=1 \
UIP_ND6_DEF_MAXDADNS:=1 \
UIP_CONF_IPV6_REASSEMBLY:=1 \
RNG_CONF_USE_ADC:=0 \
RNG_CONF_USE_RADIO_CLOCK:=1 \
CLOCK_SECOND:=128 \
WITH_LOADER_ARCH:=1 \ WITH_LOADER_ARCH:=1 \
__attribute__(x):= \ __attribute__(x):= \
CC_ALIGN_ATTR(n):= \ CC_ALIGN_ATTR(n):= \

BIN
doc/pics/raven3290p.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -100,8 +100,8 @@ the link-layer addresses.
<b>Address Autoconfiguration</b><br> <b>Address Autoconfiguration</b><br>
The address autoconfiguration mechanism also depends on the format of The address autoconfiguration mechanism also depends on the format of
the link-layer address. The dependency is reflected in the the link-layer address. The dependency is reflected in the
#uip_netif_addr_autoconf_set function in #uip-netif.c. #uip_ds6_set_addr_iid function in uip-ds6.c.
\code \code
#if (UIP_LLADDR_LEN == 8) #if (UIP_LLADDR_LEN == 8)
memcpy(ipaddr->u8 + 8, lladdr, UIP_LLADDR_LEN); memcpy(ipaddr->u8 + 8, lladdr, UIP_LLADDR_LEN);
@ -157,28 +157,28 @@ the header 25 bytes long).
<b>Compression schemes</b><br> <b>Compression schemes</b><br>
The #SICSLOWPAN_CONF_COMPRESSION compilation option defines the The #SICSLOWPAN_CONF_COMPRESSION compilation option defines the
compression scheme supported. We support HC1, HC01, and IPv6 compression. compression scheme supported. We support HC1, HC06, and IPv6 compression.
HC1 and IPv6 compression are defined in RFC4944, HC01 in HC1 and IPv6 compression are defined in RFC4944, HC06 in
draft-hui-6lowpan-hc. What we call IPv6 compression means sending packets draft-hui-6lowpan-hc-06. What we call IPv6 compression means sending packets
with no compression, and adding the IPv6 dispatch before the IPv6 header.<br> with no compression, and adding the IPv6 dispatch before the IPv6 header.<br>
If at compile time IPv6 "compression" is chosen, packets sent will never If at compile time IPv6 "compression" is chosen, packets sent will never
be compressed, and compressed packets will not be processed at reception.<br> be compressed, and compressed packets will not be processed at reception.<br>
If at compile time either HC1 or HC01 are chosen, we will try to compress If at compile time either HC1 or HC06 are chosen, we will try to compress
all fields at sending, and will accept packets compressed with the all fields at sending, and will accept packets compressed with the
chosen scheme, as well as uncompressed packets.<br> chosen scheme, as well as uncompressed packets.<br>
Note that HC1 and HC01 supports are mutually exclusive. HC01 should soon Note that HC1 and HC06 supports are mutually exclusive. HC06 should soon
deprecate HC1. deprecate HC1.
<b>Compression related functions</b><br> <b>Compression related functions</b><br>
When a packet is received, the #input function is called. Fragmentation When a packet is received, the #input function is called. Fragmentation
issues are handled, then we check the dispatch byte: if it is IPv6, we issues are handled, then we check the dispatch byte: if it is IPv6, we
treat the packet inline. If it is HC1 or HC01, the corresponding treat the packet inline. If it is HC1 or HC06, the corresponding
decompression function (#uncompress_hdr_hc1 or #uncompress_hdr_hc01) decompression function (#uncompress_hdr_hc1 or #uncompress_hdr_hc06)
is called.<br> is called.<br>
When a packet needs to be sent, we try to compress it. If only the IPv6 When a packet needs to be sent, we try to compress it. If only the IPv6
compression support is enabled, we just add the IPv6 dispatch before the compression support is enabled, we just add the IPv6 dispatch before the
802.15.4 payload. If HC1 or HC01 support is enabled, we call the 802.15.4 payload. If HC1 or HC06 support is enabled, we call the
corresponding compression function (#compress_hdr_hc1 or #compress_hdr_hc01) corresponding compression function (#compress_hdr_hc1 or #compress_hdr_hc06)
to compress the packet as much as possible. to compress the packet as much as possible.
<b>HC1 comments</b><br> <b>HC1 comments</b><br>

View File

@ -36,7 +36,7 @@ are part of the uIP IPv6 stack. A complete description can be found in the
corresponding IETF standards which are available at corresponding IETF standards which are available at
http://www.ietf.org/rfc.html. http://www.ietf.org/rfc.html.
\note The #NETSTACK_CONF_WITH_IPV6 compilation flag is used to enable IPv6. \note The NETSTACK_CONF_WITH_IPV6 compilation flag is used to enable IPv6.
It is also recommended to set #UIP_CONF_IPV6_CHECKS to 1 It is also recommended to set #UIP_CONF_IPV6_CHECKS to 1
if one cannot guarantee that the incoming packets are correctly formed. if one cannot guarantee that the incoming packets are correctly formed.
@ -144,10 +144,10 @@ messages are also described in uip-nd6.h although the actual code is in
uip-nd6-io.c. uip-nd6-io.c.
<b>Neighbor discovery structures </b><br> <b>Neighbor discovery structures </b><br>
We use the following %neighbor discovery structures (declared in uip-nd6.c): We use the following %neighbor discovery structures:
\li A <em>%neighbor cache</em> with entries of type #uip_nd6_neighbor \li A <em>%neighbor cache</em> with entries of type #uip_ds6_nbr_t declared in uip-ds6-nbr.c.
\li A <em>prefix list</em> with entries of type #uip_nd6_prefix \li A <em>prefix list</em> with entries of type #uip_ds6_prefix_t declared in uip-ds6.c.
\li A <em>default router list</em> with entries of type #uip_nd6_defrouter \li A <em>default router list</em> with entries of type #uip_ds6_defrt_t declared in uip-ds6-route.c.
Each of this structure has its own add, remove and lookup Each of this structure has its own add, remove and lookup
functions. To update an entry in a ND structure, we first do a lookup functions. To update an entry in a ND structure, we first do a lookup
@ -161,7 +161,7 @@ Determine the link-layer address of a %neighbor given its IPv6 address.\n
\li Neighbor unreachability detection\n \li Neighbor unreachability detection\n
Verify that a neighbor is still reachable via a cached link-layer Verify that a neighbor is still reachable via a cached link-layer
address.\n address.\n
-> send a NS (done in #uip_nd6_periodic). -> send a NS (done in #uip_ds6_neighbor_periodic).
\li Next-hop determination\n \li Next-hop determination\n
Map an IPv6 destination address into the IPv6 address of the %neighbor Map an IPv6 destination address into the IPv6 address of the %neighbor
to which traffic for the destination should be sent.\n to which traffic for the destination should be sent.\n
@ -170,18 +170,18 @@ choose a default router, else send directly (done in #tcpip_ipv6_output).
\li Router, prefix, and parameter discovery\n \li Router, prefix, and parameter discovery\n
Update the list of default routers, on-link prefixes, and the network Update the list of default routers, on-link prefixes, and the network
parameters.\n parameters.\n
-> receive a RA (see #uip_nd6_io_ra_input). -> receive a RA (see #ra_input).
\subsection autoconf Stateless Address Autoconfiguration (RFC 4862) \subsection autoconf Stateless Address Autoconfiguration (RFC 4862)
RFC 4862 defines two main processes: RFC 4862 defines two main processes:
\li Duplicate Address Detection (DAD)\n \li Duplicate Address Detection (DAD)\n
Make sure that an address the node wished to use is not already in use Make sure that an address the node wished to use is not already in use
by another node.\n by another node.\n
-> send a NS (done in #uip_netif_dad) -> send a NS (done in #uip_ds6_dad)
\li Address Autoconfiguration\n \li Address Autoconfiguration\n
Configure an address for an interface by combining a received prefix Configure an address for an interface by combining a received prefix
and the interface ID (see #uip_netif_addr_add). The interface ID is and the interface ID (see #uip_ds6_addr_add). The interface ID is
obtained from the link-layer address using #uip_netif_get_interface_id.\n obtained from the link-layer address using #uip_ds6_set_addr_iid.\n
-> Receive a RA with a prefix information option that has the -> Receive a RA with a prefix information option that has the
autonomous flag set. autonomous flag set.
@ -191,7 +191,7 @@ performed for this link-local address. Available routers are
discovered by sending up to #UIP_ND6_MAX_RTR_SOLICITATIONS RS discovered by sending up to #UIP_ND6_MAX_RTR_SOLICITATIONS RS
packets. Address autoconfiguration is then performed based on the packets. Address autoconfiguration is then performed based on the
prefix information received in the RA. The interface initialization is prefix information received in the RA. The interface initialization is
performed in #uip_netif_init. performed in #uip_ds6_init.
\subsection icmpv6 ICMPv6 (RFC 4443) \subsection icmpv6 ICMPv6 (RFC 4443)
We support ICMPv6 Error messages as well as Echo Reply and Echo Request We support ICMPv6 Error messages as well as Echo Reply and Echo Request
@ -213,22 +213,18 @@ The IPv6 stack (like the IPv4 stack) is a Contiki process
PROCESS(tcpip_process, "TCP/IP stack"); PROCESS(tcpip_process, "TCP/IP stack");
\endcode \endcode
In addition to the \ref mainloop "periodic timer" that is used by TCP, In addition to the \ref mainloop "periodic timer" that is used by TCP,
five IPv6 specific timers are attached to this %process: three IPv6 specific timers are attached to this %process:
\li The #uip_nd6_timer_periodic is used for periodic checking of the \li The #uip_ds6_timer_rs is use to delay the sending of Router Solicitations
%neighbor discovery structures.
\li The #uip_netif_timer_dad is used to properly paced the Neighbor
Solicitation packets sent for Duplicate Address Detection.
\li The #uip_netif_timer_rs is use to delay the sending of Router Solicitations
packets in particular during the router discovery %process. packets in particular during the router discovery %process.
\li The #uip_netif_timer_periodic is used to periodically check the \li The #uip_ds6_timer_periodic is used to periodically check the
validity of the addresses attached to the network interface. validity of the addresses attached to the network interface, to
properly paced the Neighbor Solicitation packets sent for
Duplicate Address Detection and for periodic checking of the
%neighbor discovery structures.
\li The #uip_reass_timer is used to time-out the fragment reassembly \li The #uip_reass_timer is used to time-out the fragment reassembly
%process. %process.
\n \n
Both #uip_nd6_timer_periodic and #uip_netif_timer_periodic run continuously.
This could be avoided by using callback timers to handle ND and Netif structures timeouts.
<HR> <HR>
\section compileflags Compile time flags and variables \section compileflags Compile time flags and variables
@ -249,8 +245,8 @@ NBR_TABLE_CONF_MAX_NEIGHBORS
\section buffers IPv6 Buffers \section buffers IPv6 Buffers
The IPv6 code uses the same \ref memory "single global buffer" as the The IPv6 code uses the same \ref memory "single global buffer" as the
IPv4 code. This buffer should be large enough to contain one IPv4 code. This buffer should be large enough to contain one
packet of maximum size, i.e., #UIP_LINK_MTU = 1280 bytes. When \ref packet of maximum size, i.e., #UIP_LINK_MTU = 1280 bytes. When
reass "fragment reassembly" is enabled an additional buffer of the reass "fragment reassembly" is enabled an additional buffer of the
same size is used. same size is used.
@ -258,7 +254,7 @@ The only difference with the IPv4 code is the per %neighbor buffering
that is available when #UIP_CONF_IPV6_QUEUE_PKT is set to 1. This that is available when #UIP_CONF_IPV6_QUEUE_PKT is set to 1. This
additional buffering is used to queue one packet per %neighbor while additional buffering is used to queue one packet per %neighbor while
performing address resolution for it. This is a very costly feature as performing address resolution for it. This is a very costly feature as
it increases the RAM usage by approximately #NBR_TABLE_CONF_MAX_NEIGHBORS * it increases the RAM usage by approximately NBR_TABLE_CONF_MAX_NEIGHBORS *
#UIP_LINK_MTU bytes. #UIP_LINK_MTU bytes.
<HR> <HR>
@ -314,7 +310,7 @@ link-layer function used to send a packet. Similarly, the link-layer
should call #tcpip_input when an IP packet is received. should call #tcpip_input when an IP packet is received.
The code corresponding to the desired link layer is selected at The code corresponding to the desired link layer is selected at
compilation time (see for example the #UIP_LL_802154 flag). compilation time (see for example the UIP_CONF_LL_802154 flag).
<HR> <HR>

View File

@ -75,6 +75,13 @@
#include <avr/wdt.h> #include <avr/wdt.h>
#include <util/delay.h> #include <util/delay.h>
#if UIP_CONF_IPV6_RPL
// Include needs to be up here instead of embedded in the other
// UIP_CONF_IPV6_RPL block, as doxygen seems not to be compatible with
// #includes embedded in other functions and spits out a warning.
#include "rpl.h"
#endif
#if JACKDAW_CONF_USE_SETTINGS #if JACKDAW_CONF_USE_SETTINGS
#include "settings.h" #include "settings.h"
#endif #endif
@ -579,7 +586,6 @@ void menu_process(char c)
#if UIP_CONF_IPV6_RPL #if UIP_CONF_IPV6_RPL
#include "rpl.h"
extern uip_ds6_netif_t uip_ds6_if; extern uip_ds6_netif_t uip_ds6_if;
case 'N': case 'N':
{ uint8_t i,j; { uint8_t i,j;

View File

@ -283,6 +283,8 @@ process_run_thread_loop(void *data)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Initialize a mote by starting processes etc. * \brief Initialize a mote by starting processes etc.
* \param env JNI Environment interface pointer
* \param obj unused
* *
* This function initializes a mote by starting certain * This function initializes a mote by starting certain
* processes and setting up the environment. * processes and setting up the environment.
@ -300,12 +302,15 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_init(JNIEnv *env, jobject obj)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Get a segment from the process memory. * \brief Get a segment from the process memory.
* \param start Start address of segment * \param env JNI Environment interface pointer
* \param length Size of memory segment * \param obj unused
* \param rel_addr Start address of segment
* \param length Size of memory segment
* \param mem_arr Byte array destination for the fetched memory segment
* \return Java byte array containing a copy of memory segment. * \return Java byte array containing a copy of memory segment.
* *
* Fetches a memory segment from the process memory starting at * Fetches a memory segment from the process memory starting at
* (start), with size (length). This function does not perform * (rel_addr), with size (length). This function does not perform
* ANY error checking, and the process may crash if addresses are * ANY error checking, and the process may crash if addresses are
* not available/readable. * not available/readable.
* *
@ -326,9 +331,11 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_getMemory(JNIEnv *env, jobject obj,
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Replace a segment of the process memory with given byte array. * \brief Replace a segment of the process memory with given byte array.
* \param start Start address of segment * \param env JNI Environment interface pointer
* \param length Size of memory segment * \param obj unused
* \param mem_arr Byte array contaning new memory * \param rel_addr Start address of segment
* \param length Size of memory segment
* \param mem_arr Byte array contaning new memory
* *
* Replaces a process memory segment with given byte array. * Replaces a process memory segment with given byte array.
* This function does not perform ANY error checking, and the * This function does not perform ANY error checking, and the
@ -349,6 +356,8 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_setMemory(JNIEnv *env, jobject obj,
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Let mote execute one "block" of code (tick mote). * \brief Let mote execute one "block" of code (tick mote).
* \param env JNI Environment interface pointer
* \param obj unused
* *
* Let mote defined by the active contiki processes and current * Let mote defined by the active contiki processes and current
* process memory execute some program code. This code must not block * process memory execute some program code. This code must not block
@ -413,7 +422,9 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_tick(JNIEnv *env, jobject obj)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Set the relative memory address of the reference variable. * \brief Set the relative memory address of the reference variable.
* \return Relative memory address. * \param env JNI Environment interface pointer
* \param obj unused
* \param addr Relative memory address
* *
* This is a JNI function and should only be called via the * This is a JNI function and should only be called via the
* responsible Java part (MoteType.java). * responsible Java part (MoteType.java).

View File

@ -359,6 +359,8 @@ process_run_thread_loop(void *data)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Initialize a mote by starting processes etc. * \brief Initialize a mote by starting processes etc.
* \param env JNI Environment interface pointer
* \param obj unused
* *
* This function initializes a mote by starting certain * This function initializes a mote by starting certain
* processes and setting up the environment. * processes and setting up the environment.
@ -376,12 +378,15 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_init(JNIEnv *env, jobject obj)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Get a segment from the process memory. * \brief Get a segment from the process memory.
* \param start Start address of segment * \param env JNI Environment interface pointer
* \param length Size of memory segment * \param obj unused
* \param rel_addr Start address of segment
* \param length Size of memory segment
* \param mem_arr Byte array destination for the fetched memory segment
* \return Java byte array containing a copy of memory segment. * \return Java byte array containing a copy of memory segment.
* *
* Fetches a memory segment from the process memory starting at * Fetches a memory segment from the process memory starting at
* (start), with size (length). This function does not perform * (rel_addr), with size (length). This function does not perform
* ANY error checking, and the process may crash if addresses are * ANY error checking, and the process may crash if addresses are
* not available/readable. * not available/readable.
* *
@ -402,9 +407,11 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_getMemory(JNIEnv *env, jobject obj,
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Replace a segment of the process memory with given byte array. * \brief Replace a segment of the process memory with given byte array.
* \param start Start address of segment * \param env JNI Environment interface pointer
* \param length Size of memory segment * \param obj unused
* \param mem_arr Byte array contaning new memory * \param rel_addr Start address of segment
* \param length Size of memory segment
* \param mem_arr Byte array contaning new memory
* *
* Replaces a process memory segment with given byte array. * Replaces a process memory segment with given byte array.
* This function does not perform ANY error checking, and the * This function does not perform ANY error checking, and the
@ -425,6 +432,8 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_setMemory(JNIEnv *env, jobject obj,
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Let mote execute one "block" of code (tick mote). * \brief Let mote execute one "block" of code (tick mote).
* \param env JNI Environment interface pointer
* \param obj unused
* *
* Let mote defined by the active contiki processes and current * Let mote defined by the active contiki processes and current
* process memory execute some program code. This code must not block * process memory execute some program code. This code must not block
@ -489,7 +498,9 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_tick(JNIEnv *env, jobject obj)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Set the relative memory address of the reference variable. * \brief Set the relative memory address of the reference variable.
* \return Relative memory address. * \param env JNI Environment interface pointer
* \param obj unused
* \param addr Relative memory address
* *
* This is a JNI function and should only be called via the * This is a JNI function and should only be called via the
* responsible Java part (MoteType.java). * responsible Java part (MoteType.java).

View File

@ -286,7 +286,7 @@ convert(uint8_t *data, int32_t *temp, uint32_t *press)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Returns a reading from the sensor * \brief Returns a reading from the sensor
* \param BMP_280_SENSOR_TYPE_TEMP or BMP_280_SENSOR_TYPE_PRESS * \param type BMP_280_SENSOR_TYPE_TEMP or BMP_280_SENSOR_TYPE_PRESS
* \return Temperature (centi degrees C) or Pressure (Pascal). * \return Temperature (centi degrees C) or Pressure (Pascal).
*/ */
static int static int

View File

@ -223,7 +223,7 @@ read_data(uint16_t *raw_data)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \brief Convert raw data to a value in lux * \brief Convert raw data to a value in lux
* \param data Pointer to a buffer with a raw sensor reading * \param raw_data data Pointer to a buffer with a raw sensor reading
* \return Converted value (lux) * \return Converted value (lux)
*/ */
static float static float

View File

@ -42,8 +42,8 @@ static void
activate(void) activate(void)
{ {
/* This assumes that some other sensor system already did setup the ADC /* This assumes that some other sensor system already did setup the ADC
/* (in the case of the sky platform it is sensors_light_init that does it) * (in the case of the sky platform it is sensors_light_init that does it) */
#if 0
P6SEL |= 0x70; P6SEL |= 0x70;
P6DIR = 0x00; P6DIR = 0x00;
P6OUT = 0x00; P6OUT = 0x00;
@ -52,37 +52,40 @@ activate(void)
P2OUT |= 0x48; P2OUT |= 0x48;
/* stop converting immediately /* stop converting immediately */
ADC12CTL0 &= ~ENC; ADC12CTL0 &= ~ENC;
ADC12CTL1 &= ~CONSEQ_3; ADC12CTL1 &= ~CONSEQ_3;
/* Configure ADC12_2 to sample channel 11 (voltage) and use /* Configure ADC12_2 to sample channel 11 (voltage) and use
/* the Vref+ as reference (SREF_1) since it is a stable reference * the Vref+ as reference (SREF_1) since it is a stable reference */
ADC12MCTL2 = (INCH_4 + SREF_1); ADC12MCTL2 = (INCH_4 + SREF_1);
ADC12MCTL3 = (INCH_5 + SREF_1); ADC12MCTL3 = (INCH_5 + SREF_1);
ADC12MCTL4 = (INCH_6 + SREF_1); ADC12MCTL4 = (INCH_6 + SREF_1);
/* internal temperature can be read as value(3) /* internal temperature can be read as value(3) */
ADC12MCTL5 = (INCH_10 + SREF_1); ADC12MCTL5 = (INCH_10 + SREF_1);
ADC12CTL1 |= CONSEQ_3; ADC12CTL1 |= CONSEQ_3;
ADC12CTL0 |= ENC | ADC12SC; ADC12CTL0 |= ENC | ADC12SC;
/* Irq_adc12_activate(&acc_sensor, 6, (INCH_11 + SREF_1)); */ Irq_adc12_activate(&acc_sensor, 6, (INCH_11 + SREF_1));
#endif /* 0 */
active = 1; active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void static void
deactivate(void) deactivate(void)
{ {
/* irq_adc12_deactivate(&acc_sensor, 6); #if 0
acc_value = 0;*/ irq_adc12_deactivate(&acc_sensor, 6);
acc_value = 0;
#endif /* 0 */
active = 0; active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int static int
value(int type) value(int type)
{ {
/* #if 0
switch(type) { switch(type) {
case 0: case 0:
return ADC12MEM2; return ADC12MEM2;
@ -92,7 +95,8 @@ value(int type)
return ADC12MEM4; return ADC12MEM4;
case 3: case 3:
return ADC12MEM5; return ADC12MEM5;
}*/ }
#endif /* 0 */
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View File

@ -43,8 +43,10 @@ static uint8_t active;
static int static int
value(int type) value(int type)
{ {
/* ADC0 corresponds to the port under the logo, ADC1 to the port over the logo, #if 0
ADC2 and ADC3 corresponds to port on the JCreate bottom expansion port) /* ADC0 corresponds to the port under the logo,
* ADC1 to the port over the logo,
* ADC2 and ADC3 corresponds to port on the JCreate bottom expansion port) */
switch(type) { switch(type) {
case ADC0: case ADC0:
return ADC12MEM6; return ADC12MEM6;
@ -54,7 +56,8 @@ value(int type)
return ADC12MEM8; return ADC12MEM8;
case ADC3: case ADC3:
return ADC12MEM9; return ADC12MEM9;
}*/ }
#endif /* 0 */
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -77,16 +80,17 @@ configure(int type, int c)
case SENSORS_ACTIVE: case SENSORS_ACTIVE:
if(c) { if(c) {
if(!status(SENSORS_ACTIVE)) { if(!status(SENSORS_ACTIVE)) {
/* SREF_1 is Vref+ #if 0
/* MemReg6 == P6.0/A0 == port "under" logo /* SREF_1 is Vref+ */
/* MemReg6 == P6.0/A0 == port "under" logo */
ADC12MCTL6 = (INCH_0 + SREF_0); ADC12MCTL6 = (INCH_0 + SREF_0);
/* MemReg7 == P6.1/A1 == port "over" logo /* MemReg7 == P6.1/A1 == port "over" logo */
ADC12MCTL7 = (INCH_1 + SREF_0); ADC12MCTL7 = (INCH_1 + SREF_0);
/* MemReg8 == P6.2/A2, bottom expansion port /* MemReg8 == P6.2/A2, bottom expansion port */
ADC12MCTL8 = (INCH_2 + SREF_0); ADC12MCTL8 = (INCH_2 + SREF_0);
/* MemReg9 == P6.1/A3, bottom expansion port, End Of (ADC-)Sequence /* MemReg9 == P6.1/A3, bottom expansion port, End Of (ADC-)Sequence */
ADC12MCTL9 = (INCH_3 + SREF_0); ADC12MCTL9 = (INCH_3 + SREF_0);
*/ #endif /* 0 */
sky_sensors_activate(0x0F); sky_sensors_activate(0x0F);
active = 1; active = 1;
} }

View File

@ -33,22 +33,25 @@ doxygen:
@make -C $(DOCDIR) doxygen.log 2> doxygen.runerr > doxygen.runlog @make -C $(DOCDIR) doxygen.log 2> doxygen.runerr > doxygen.runlog
summary: doxygen summary: doxygen
@( doxyerr=`cat doxyerrors.cnt`; curerr=`cat $(DOCDIR)/doxygen.log | grep ": warning: " | wc -l` ; delta=`expr $$curerr - $$doxyerr`; \ @( \
if [ $$delta -lt 0 ] ; then echo "doxygen: FAIL ಠ_ಠ\nCongratulations you fixed `expr $$delta \"*\" -1 ` of doxyen's warnings (old: $$doxyerr new: $$curerr). Please adjust regression-tests/00-doxygen/doxyerrors.cnt accordingly." > summary; fi ;\ 1> summary; \
if [ $$delta -gt 0 ] ; then echo "doxygen: FAIL ಠ_ಠ\nYou increased the number of warnings caused by doxygen by $$delta (old: $$doxyerr new: $$curerr). Please fix these." > summary; fi ; \
if [ $$delta -eq 0 ] ; then echo "doxygen: OK\nDoxygen found $$doxyerr errors" > summary ; fi ; \
if [ -s doxygen.runerr ] ; then \ if [ -s doxygen.runerr ] ; then \
echo "doxygen: FAIL ಠ_ಠ\nDoxygen caused some runtime warnings. Please fix these." >> summary; \
echo "Runtime warnings:" >> summary; \ echo "Runtime warnings:" >> summary; \
cat doxygen.runerr >> summary; \ cat doxygen.runerr >> summary; \
echo >> summary; \ echo >> summary; \
fi ; \ fi ; \
if [ -s $(DOCDIR)/doxygen.log ] ; then \ if [ -s $(DOCDIR)/doxygen.log ] ; then \
echo "doxygen: FAIL ಠ_ಠ\nDoxygen caused some warnings. Please fix these." >> summary; \
echo "Warnings:" >> summary; \ echo "Warnings:" >> summary; \
cat $(DOCDIR)/doxygen.log >> summary; \ cat $(DOCDIR)/doxygen.log >> summary; \
fi ; \ fi ; \
if [ ! -s summary ] ; then \
echo "doxygen: OK\nDoxygen found no warnings" >> summary; \
fi ; \
cat summary \ cat summary \
) )
clean: clean:
@rm -f summary doxygen.runlog doxygen.runerr
@make -C $(DOCDIR) clean @make -C $(DOCDIR) clean

View File

@ -1 +0,0 @@
134