Skip to content

Commit 37a38d0

Browse files
committed
Swapped to macro definition for debug prints
1 parent c64c7b8 commit 37a38d0

File tree

1 file changed

+47
-29
lines changed

1 file changed

+47
-29
lines changed

features/nanostack/FEATURE_NANOSTACK/targets/TARGET_SL_RAIL/NanostackRfPhyEfr32.cpp

Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,39 @@
1414
* limitations under the License.
1515
*/
1616
#include "NanostackRfPhyEfr32.h"
17+
18+
#include <string.h>
19+
1720
#include "mbed.h"
1821
#include "ns_types.h"
1922
#include "platform/arm_hal_interrupt.h"
2023
#include "nanostack/platform/arm_hal_phy.h"
2124
#include "mbed_toolchain.h"
22-
#include <string.h>
2325

2426
#include "mbed-trace/mbed_trace.h"
2527
#define TRACE_GROUP "SLRF"
2628

29+
/* Enable debug printing with SL_RADIO_DEBUG, override debug printer with SL_DEBUG_PRINT. */
30+
#ifdef SL_RADIO_DEBUG
31+
#ifndef SL_DEBUG_PRINT
32+
#define SL_DEBUG_PRINT(...) tr_debug(__VA_ARGS__)
33+
#endif
34+
#else
35+
#define SL_DEBUG_PRINT(...)
36+
#endif
37+
38+
/* RF_THREAD_STACK_SIZE defines tack size for the RF adaptor thread */
2739
#ifndef RF_THREAD_STACK_SIZE
2840
#define RF_THREAD_STACK_SIZE 1024
2941
#endif
3042

43+
/* RF_QUEUE_SIZE defines queue size for incoming messages */
3144
#ifndef RF_QUEUE_SIZE
3245
#define RF_QUEUE_SIZE 8
3346
#endif
3447

48+
49+
/* RFThreadSignal used to signal from interrupts to the adaptor thread */
3550
enum RFThreadSignal {
3651
SL_RX_DONE = (1 << 1),
3752
SL_TX_DONE = (1 << 2),
@@ -45,13 +60,16 @@ enum RFThreadSignal {
4560
SL_RSSI_DONE = (1 << 10),
4661
SL_QUEUE_FULL = (1 << 11),
4762

63+
// ACK pend flag can be signalled in addition to RX_DONE
4864
SL_ACK_PEND = (1 << 31),
4965
};
5066

67+
/* Adaptor thread definitions */
5168
static void rf_thread_loop(const void *arg);
5269
static osThreadDef(rf_thread_loop, osPriorityRealtime, RF_THREAD_STACK_SIZE);
5370
static osThreadId rf_thread_id;
5471

72+
/* Queue for passing messages from interrupt to adaptor thread */
5573
static volatile void* rx_queue[8];
5674
static volatile size_t rx_queue_head;
5775
static volatile size_t rx_queue_tail;
@@ -188,7 +206,7 @@ static bool rail_checkAndSwitchChannel(uint8_t channel);
188206

189207
static void rf_thread_loop(const void *arg)
190208
{
191-
tr_debug("rf_thread_loop: starting (id: %d)\n", rf_thread_id);
209+
SL_DEBUG_PRINT("rf_thread_loop: starting (id: %d)\n", rf_thread_id);
192210
for (;;) {
193211
osEvent event = osSignalWait(0, osWaitForever);
194212

@@ -240,15 +258,15 @@ static void rf_thread_loop(const void *arg)
240258
8,
241259
1);
242260
} else if(event.value.signals & SL_CAL_REQ) {
243-
tr_debug("rf_thread_loop: SL_CAL_REQ signal received (unhandled)\n");
261+
SL_DEBUG_PRINT("rf_thread_loop: SL_CAL_REQ signal received (unhandled)\n");
244262
} else if(event.value.signals & SL_RXFIFO_ERR) {
245-
tr_debug("rf_thread_loop: SL_RXFIFO_ERR signal received (unhandled)\n");
263+
SL_DEBUG_PRINT("rf_thread_loop: SL_RXFIFO_ERR signal received (unhandled)\n");
246264
} else if(event.value.signals & SL_TXFIFO_ERR) {
247-
tr_debug("rf_thread_loop: SL_TXFIFO_ERR signal received (unhandled)\n");
265+
SL_DEBUG_PRINT("rf_thread_loop: SL_TXFIFO_ERR signal received (unhandled)\n");
248266
} else if(event.value.signals & SL_QUEUE_FULL) {
249-
tr_debug("rf_thread_loop: SL_QUEUE_FULL signal received (packet dropped)\n");
267+
SL_DEBUG_PRINT("rf_thread_loop: SL_QUEUE_FULL signal received (packet dropped)\n");
250268
} else {
251-
tr_debug("rf_thread_loop unhandled event status: %d value: %d\n", event.status, event.value.signals);
269+
SL_DEBUG_PRINT("rf_thread_loop unhandled event status: %d value: %d\n", event.status, event.value.signals);
252270
}
253271

254272
platform_exit_critical();
@@ -271,7 +289,7 @@ static int8_t rf_device_register(void)
271289
return -1;
272290
}
273291

274-
tr_debug("rf_device_register: entry\n");
292+
SL_DEBUG_PRINT("rf_device_register: entry\n");
275293

276294
#if MBED_CONF_SL_RAIL_BAND == 2400
277295
RADIO_PA_Init((RADIO_PAInit_t*)&paInit2p4);
@@ -399,26 +417,26 @@ static int8_t rf_start_cca(uint8_t *data_ptr, uint16_t data_length, uint8_t tx_h
399417

400418
switch(radio_state) {
401419
case RADIO_UNINIT:
402-
tr_debug("rf_start_cca: Radio uninit\n");
420+
SL_DEBUG_PRINT("rf_start_cca: Radio uninit\n");
403421
return -1;
404422
case RADIO_INITING:
405-
tr_debug("rf_start_cca: Radio initing\n");
423+
SL_DEBUG_PRINT("rf_start_cca: Radio initing\n");
406424
return -1;
407425
case RADIO_CALIBRATION:
408-
tr_debug("rf_start_cca: Radio calibrating\n");
426+
SL_DEBUG_PRINT("rf_start_cca: Radio calibrating\n");
409427
return -1;
410428
case RADIO_TX:
411-
tr_debug("rf_start_cca: Radio in TX mode\n");
429+
SL_DEBUG_PRINT("rf_start_cca: Radio in TX mode\n");
412430
return -1;
413431
case RADIO_IDLE:
414432
case RADIO_RX:
415433
// If we're still waiting for an ACK, don't mess up the internal state
416434
if(waiting_for_ack || RAIL_RfStateGet() == RAIL_RF_STATE_TX) {
417435
if((RAIL_GetTime() - last_tx) < 30000) {
418-
tr_debug("rf_start_cca: Still waiting on previous ACK\n");
436+
SL_DEBUG_PRINT("rf_start_cca: Still waiting on previous ACK\n");
419437
return -1;
420438
} else {
421-
tr_debug("rf_start_cca: TXerr\n");
439+
SL_DEBUG_PRINT("rf_start_cca: TXerr\n");
422440
}
423441
}
424442

@@ -438,7 +456,7 @@ static int8_t rf_start_cca(uint8_t *data_ptr, uint16_t data_length, uint8_t tx_h
438456
txOpt.waitForAck = false;
439457
}
440458

441-
tr_debug("rf_start_cca: Called TX, len %d, chan %d, ack %d\n", data_length, channel, waiting_for_ack ? 1 : 0);
459+
SL_DEBUG_PRINT("rf_start_cca: Called TX, len %d, chan %d, ack %d\n", data_length, channel, waiting_for_ack ? 1 : 0);
442460

443461
if(RAIL_TxStartWithOptions(channel, &txOpt, &RAIL_CcaCsma, (RAIL_CsmaConfig_t*) &csma_config) == 0) {
444462
//Save packet number and sequence
@@ -494,7 +512,7 @@ static int8_t rf_interface_state_control(phy_interface_state_e new_state, uint8_
494512
break;
495513
/* Enable wireless interface ED scan mode */
496514
case PHY_INTERFACE_RX_ENERGY_STATE:
497-
tr_debug("rf_interface_state_control: Energy det req\n");
515+
SL_DEBUG_PRINT("rf_interface_state_control: Energy det req\n");
498516
// TODO: implement energy detection
499517
break;
500518
/* Enable RX in promiscuous mode (aka no address filtering) */
@@ -551,15 +569,15 @@ static int8_t rf_extension(phy_extension_type_e extension_type, uint8_t *data_pt
551569
/* Read status of the link */
552570
case PHY_EXTENSION_READ_LINK_STATUS:
553571
// TODO: return accurate value here
554-
tr_debug("rf_extension: Trying to read link status\n");
572+
SL_DEBUG_PRINT("rf_extension: Trying to read link status\n");
555573
break;
556574
/* Convert between LQI and RSSI */
557575
case PHY_EXTENSION_CONVERT_SIGNAL_INFO:
558576
// TODO: return accurate value here
559-
tr_debug("rf_extension: Trying to read signal info\n");
577+
SL_DEBUG_PRINT("rf_extension: Trying to read signal info\n");
560578
break;
561579
case PHY_EXTENSION_ACCEPT_ANY_BEACON:
562-
tr_debug("rf_extension: Trying to accept any beacon\n");
580+
SL_DEBUG_PRINT("rf_extension: Trying to accept any beacon\n");
563581
break;
564582
}
565583
return 0;
@@ -587,11 +605,11 @@ static int8_t rf_address_write(phy_address_type_e address_type, uint8_t *address
587605
case PHY_MAC_64BIT:
588606
/* Store MAC in MSB order */
589607
memcpy(MAC_address, address_ptr, 8);
590-
tr_debug("rf_address_write: MACw ");
608+
SL_DEBUG_PRINT("rf_address_write: MACw ");
591609
for(unsigned int i = 0; i < sizeof(MAC_address); i ++) {
592-
tr_debug("%02x:", MAC_address[i]);
610+
SL_DEBUG_PRINT("%02x:", MAC_address[i]);
593611
}
594-
tr_debug("\n");
612+
SL_DEBUG_PRINT("\n");
595613
/* Pass MAC to the RF driver in LSB order */
596614
uint8_t MAC_reversed[8];
597615
for(unsigned int i = 0; i < sizeof(MAC_address); i ++) {
@@ -745,7 +763,7 @@ void RAILCb_TxRadioStatus(uint8_t status) {
745763
8,
746764
1);
747765
} else {
748-
tr_debug("Packet TX error %d\n", status);
766+
SL_DEBUG_PRINT("Packet TX error %d\n", status);
749767
}
750768
#endif
751769
}
@@ -787,7 +805,7 @@ void RAILCb_CalNeeded(void) {
787805
#ifdef MBED_CONF_RTOS_PRESENT
788806
osSignalSet(rf_thread_id, SL_CAL_REQ);
789807
#else
790-
tr_debug("!!!! Calling for calibration\n");
808+
SL_DEBUG_PRINT("!!!! Calling for calibration\n");
791809
#endif
792810
}
793811

@@ -863,7 +881,7 @@ void RAILCb_RxPacketReceived(void *rxPacketHandle) {
863881
#ifdef MBED_CONF_RTOS_PRESENT
864882
osSignalSet(rf_thread_id, SL_ACK_RECV | SL_ACK_PEND);
865883
#else
866-
tr_debug("rACK\n");
884+
SL_DEBUG_PRINT("rACK\n");
867885
device_driver.phy_tx_done_cb( rf_radio_driver_id,
868886
current_tx_handle,
869887
last_ack_pending_bit ? PHY_LINK_TX_DONE_PENDING : PHY_LINK_TX_DONE,
@@ -896,7 +914,7 @@ void RAILCb_RxPacketReceived(void *rxPacketHandle) {
896914
osSignalSet(rf_thread_id, SL_QUEUE_FULL);
897915
}
898916
#else
899-
tr_debug("rPKT %d\n", rxPacketInfo->dataLength);
917+
SL_DEBUG_PRINT("rPKT %d\n", rxPacketInfo->dataLength);
900918
device_driver.phy_rx_cb(rxPacketInfo->dataPtr + 1,
901919
rxPacketInfo->dataLength - 1,
902920
rxPacketInfo->appendedInfo.lqi,
@@ -998,7 +1016,7 @@ void RAILCb_RxFifoAlmostFull(uint16_t bytesAvailable) {
9981016
#ifdef MBED_CONF_RTOS_PRESENT
9991017
osSignalSet(rf_thread_id, SL_RXFIFO_ERR);
10001018
#else
1001-
tr_debug("RX near full (%d)\n", bytesAvailable);
1019+
SL_DEBUG_PRINT("RX near full (%d)\n", bytesAvailable);
10021020
#endif
10031021
}
10041022

@@ -1024,7 +1042,7 @@ void RAILCb_TxFifoAlmostEmpty(uint16_t spaceAvailable) {
10241042
#ifdef MBED_CONF_RTOS_PRESENT
10251043
osSignalSet(rf_thread_id, SL_TXFIFO_ERR);
10261044
#else
1027-
tr_debug("TX near empty (%d)\n", spaceAvailable);
1045+
SL_DEBUG_PRINT("TX near empty (%d)\n", spaceAvailable);
10281046
#endif
10291047
}
10301048

@@ -1043,6 +1061,6 @@ void RAILCb_RssiAverageDone(int16_t avgRssi) {
10431061
#ifdef MBED_CONF_RTOS_PRESENT
10441062
osSignalSet(rf_thread_id, SL_RSSI_DONE);
10451063
#else
1046-
tr_debug("RSSI done (%d)\n", avgRssi);
1064+
SL_DEBUG_PRINT("RSSI done (%d)\n", avgRssi);
10471065
#endif
10481066
}

0 commit comments

Comments
 (0)