board_info.h File Reference

Detailed Description

#include <stdint.h>
#include <string.h>
#include "board.h"
#include "periph_conf.h"
#include "timex.h"
+ Include dependency graph for board_info.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

OpenWSN interrupt handling wrappers

#define INTERRUPT_DECLARATION()   unsigned irq_state;
 
#define DISABLE_INTERRUPTS()   irq_state = irq_disable();
 
#define ENABLE_INTERRUPTS()   irq_restore(irq_state);
 
#define SCHEDULER_WAKEUP()   /* unused by RIOT */
 
#define SCHEDULER_ENABLE_INTERRUPT()   /* unused by RIOT */
 

OpenWSN platform dependent definitions

#define PORT_TIMER_WIDTH   uint32_t
 
#define PORT_RADIOTIMER_WIDTH   uint32_t
 
#define PORT_SIGNED_INT_WIDTH   int32_t
 
#define SCTIMER_FREQUENCY   (32768U)
 
#define PORT_TICS_PER_MS   (SCTIMER_FREQUENCY / MS_PER_SEC)
 
#define PORT_US_PER_TICK   (US_PER_SEC / SCTIMER_FREQUENCY)
 

OpenWSN IEEE802154E timings

Note
These parameters are BOARD and CPU specific. Values can't be taken directly from OpenWSN since they do not necessarily use the same BSP configuration (timers, clock speed, etc.) For precise synchronization these values should be measured and tuned for every BOARD. To understand the relationship between these values and OpenWSN state machine as well as how they can be measured refer to:
#define SLOTDURATION   20 /* in milliseconds */
 
#define PORT_TsSlotDuration   ((SCTIMER_FREQUENCY * SLOTDURATION) / MS_PER_SEC)
 
#define PORT_maxTxDataPrepare   (3355 / PORT_US_PER_TICK ) /* ~110 ticks at @32768Hz */
 
#define PORT_maxRxAckPrepare   (610 / PORT_US_PER_TICK ) /* ~20 ticks at @32768Hz */
 
#define PORT_maxRxDataPrepare   (1000 / PORT_US_PER_TICK ) /* ~33 ticks at@32768Hz */
 
#define PORT_maxTxAckPrepare   (1525 / PORT_US_PER_TICK ) /* ~50 ticks at@32768Hz */
 
#define PORT_delayTx   (300 / PORT_US_PER_TICK ) /* ~10 ticks at@32768Hz */
 
#define PORT_delayRx   (0 / PORT_US_PER_TICK ) /* ~0 ticks at@32768Hz */
 

Adaptive sync accuracy

     Used for synchronization in heterogeneous networks (different BOARDs)
     Not supported yet, dummy value needs to be provided.
#define SYNC_ACCURACY   (1) /* ticks */