43 #include <ti/devices/DeviceFamily.h> 44 #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) 45 #include DeviceFamily_constructPath(driverlib/rf_data_entry.h) 54 #define RX_BUF_CNT RF_CONF_RX_BUF_CNT 55 #define RX_BUF_SIZE RF_CONF_RX_BUF_SIZE 59 data_entry_t data_entry;
60 uint8_t buf[RX_BUF_SIZE];
61 } rx_buf_t CC_ALIGN (4);
65 rx_buf_t bufs[RX_BUF_CNT];
67 data_queue_t data_queue;
69 data_entry_t *curr_entry;
74 static rx_data_queue_t rx_data_queue;
79 data_entry_t *data_entry;
82 for(i = 0; i < RX_BUF_CNT; ++i) {
83 data_entry = &(rx_data_queue.bufs[i].data_entry);
85 data_entry->status = DATA_ENTRY_PENDING;
86 data_entry->config.type = DATA_ENTRY_TYPE_GEN;
87 data_entry->config.lenSz = rx_data_queue.lensz;
88 data_entry->length = RX_BUF_SIZE -
sizeof(data_entry_t);
90 data_entry->pNextEntry = ((i + 1) == RX_BUF_CNT)
91 ? rx_data_queue.bufs[0].buf
92 : rx_data_queue.bufs[i + 1].buf;
100 for(i = 0; i < RX_BUF_CNT; ++i) {
101 data_entry_t *
const data_entry = &(rx_data_queue.bufs[i].data_entry);
104 memset(&(data_entry->data), 0x0, rx_data_queue.lensz);
106 data_entry->status = DATA_ENTRY_PENDING;
111 data_queue_init(
size_t lensz)
113 rx_data_queue.lensz = lensz;
119 rx_data_queue.data_queue.pCurrEntry = rx_data_queue.bufs[0].buf;
120 rx_data_queue.data_queue.pLastEntry = NULL;
123 rx_data_queue.curr_entry = &(rx_data_queue.bufs[0].data_entry);
125 return &rx_data_queue.data_queue;
129 data_queue_reset(
void)
134 rx_data_queue.data_queue.pCurrEntry = rx_data_queue.bufs[0].buf;
137 rx_data_queue.curr_entry = &(rx_data_queue.bufs[0].data_entry);
141 data_queue_current_entry(
void)
143 return rx_data_queue.curr_entry;
147 data_queue_release_entry(
void)
149 data_entry_t *
const curr_entry = rx_data_queue.curr_entry;
150 uint8_t *
const frame_ptr = (uint8_t *)&(curr_entry->data);
153 memset(frame_ptr, 0x0, rx_data_queue.lensz);
155 curr_entry->status = DATA_ENTRY_PENDING;
158 rx_data_queue.curr_entry = (data_entry_t *)(curr_entry->pNextEntry);
Header file of the CC13xx/CC26xx RF data queue.
Default definitions of C compiler quirk work-arounds.