add a way to disable FCS checking.
This commit is contained in:
parent
da7898557d
commit
a61deb78f4
2 changed files with 11 additions and 0 deletions
|
@ -17,6 +17,10 @@
|
||||||
#define RTSO 15 /* reset slot counter */
|
#define RTSO 15 /* reset slot counter */
|
||||||
#define ROLE 13 /* set if PAN coordinator */
|
#define ROLE 13 /* set if PAN coordinator */
|
||||||
#define NOFC 12 /* set to disable FCS */
|
#define NOFC 12 /* set to disable FCS */
|
||||||
|
enum {
|
||||||
|
USE_FCS = 0,
|
||||||
|
NO_FCS = 1,
|
||||||
|
};
|
||||||
#define PRM 11 /* set for promiscuous mode */
|
#define PRM 11 /* set for promiscuous mode */
|
||||||
#define REL 10 /* 1 for relative, 0 for absolute */
|
#define REL 10 /* 1 for relative, 0 for absolute */
|
||||||
#define ASAP 9 /* 1 start now, 0 timer start */
|
#define ASAP 9 /* 1 start now, 0 timer start */
|
||||||
|
@ -124,6 +128,10 @@ volatile packet_t* get_free_packet(void);
|
||||||
void free_packet(volatile packet_t *p);
|
void free_packet(volatile packet_t *p);
|
||||||
void free_all_packets(void);
|
void free_all_packets(void);
|
||||||
|
|
||||||
|
/* set_fcs_mode(NO_FCS) to disable checksum filtering */
|
||||||
|
extern volatile uint8_t fcs_mode;
|
||||||
|
#define set_fcs_mode(x) fcs_mode = (x)
|
||||||
|
|
||||||
extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak));
|
extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak));
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
|
@ -46,6 +46,8 @@ static volatile uint8_t last_post = NO_POST;
|
||||||
#define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x)
|
#define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x)
|
||||||
#define irq_restore() *INTENABLE = saved_irq
|
#define irq_restore() *INTENABLE = saved_irq
|
||||||
|
|
||||||
|
volatile uint8_t fcs_mode = USE_FCS;
|
||||||
|
|
||||||
void maca_init(void) {
|
void maca_init(void) {
|
||||||
reset_maca();
|
reset_maca();
|
||||||
radio_init();
|
radio_init();
|
||||||
|
@ -157,6 +159,7 @@ void post_receive(void) {
|
||||||
enable_irq(MACA);
|
enable_irq(MACA);
|
||||||
*MACA_CONTROL = ( (1 << maca_ctrl_asap) |
|
*MACA_CONTROL = ( (1 << maca_ctrl_asap) |
|
||||||
( 4 << PRECOUNT) |
|
( 4 << PRECOUNT) |
|
||||||
|
( fcs_mode << NOFC ) |
|
||||||
(1 << maca_ctrl_auto) |
|
(1 << maca_ctrl_auto) |
|
||||||
(1 << maca_ctrl_prm) |
|
(1 << maca_ctrl_prm) |
|
||||||
(maca_ctrl_seq_rx));
|
(maca_ctrl_seq_rx));
|
||||||
|
|
Loading…
Reference in a new issue