The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_TB_SENSE_1/TARGET_Silicon_Labs/TARGET_SL_RAIL/efr32-rf-driver/rail/rail_assert_error_codes.h@167:84c0a372a020
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Anna Bridge 160:5571c4ff569f 1 /***************************************************************************//**
Anna Bridge 160:5571c4ff569f 2 * @file rail_assert_error_codes.h
Anna Bridge 160:5571c4ff569f 3 * @brief Definition of error codes that occur in rail for use in
AnnaBridge 167:84c0a372a020 4 * RAILCb_AssertFailed. This file is purely informational and optional -
AnnaBridge 167:84c0a372a020 5 * it need not be included even if rail_assert libraries are included.
AnnaBridge 167:84c0a372a020 6 * @copyright Copyright 2017 Silicon Laboratories, Inc. www.silabs.com
Anna Bridge 160:5571c4ff569f 7 ******************************************************************************/
AnnaBridge 167:84c0a372a020 8 #ifndef __RAIL_ASSERT_ERROR_CODES_H__
AnnaBridge 167:84c0a372a020 9 #define __RAIL_ASSERT_ERROR_CODES_H__
Anna Bridge 160:5571c4ff569f 10
Anna Bridge 160:5571c4ff569f 11 #include "rail_types.h"
Anna Bridge 160:5571c4ff569f 12
Anna Bridge 160:5571c4ff569f 13 /**
Anna Bridge 160:5571c4ff569f 14 * @addtogroup Assertions
Anna Bridge 160:5571c4ff569f 15 * @{
Anna Bridge 160:5571c4ff569f 16 */
Anna Bridge 160:5571c4ff569f 17
Anna Bridge 160:5571c4ff569f 18 /**
Anna Bridge 160:5571c4ff569f 19 * Enumeration of all possible error codes from RAIL_ASSERT
Anna Bridge 160:5571c4ff569f 20 */
AnnaBridge 167:84c0a372a020 21 RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
Anna Bridge 160:5571c4ff569f 22 {
AnnaBridge 167:84c0a372a020 23 RAIL_ASSERT_FAILED_APPENDED_INFO_MISSING = 0,
AnnaBridge 167:84c0a372a020 24 RAIL_ASSERT_FAILED_RX_FIFO_BYTES = 1,
AnnaBridge 167:84c0a372a020 25 RAIL_ASSERT_FAILED_RX_FIFO_ZERO_BYTES_READ = 2,
AnnaBridge 167:84c0a372a020 26 RAIL_ASSERT_FAILED_ILLEGAL_RXLEN_ENTRY_STATUS = 3,
AnnaBridge 167:84c0a372a020 27 RAIL_ASSERT_FAILED_BAD_PACKET_LENGTH = 4,
AnnaBridge 167:84c0a372a020 28 RAIL_ASSERT_FAILED_SYNTH_DIVCTRL_ENUM_CONVERSION_ERROR = 5,
AnnaBridge 167:84c0a372a020 29 RAIL_ASSERT_FAILED_UNEXPECTED_STATE_RX_FIFO = 6,
AnnaBridge 167:84c0a372a020 30 RAIL_ASSERT_FAILED_UNEXPECTED_STATE_RXLEN_FIFO = 7,
AnnaBridge 167:84c0a372a020 31 RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TX_FIFO = 8,
AnnaBridge 167:84c0a372a020 32 RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TXACK_FIFO = 9,
AnnaBridge 167:84c0a372a020 33 RAIL_ASSERT_FAILED_PBUFFER_NOT_DEFINED = 10,
AnnaBridge 167:84c0a372a020 34 RAIL_ASSERT_FAILED_INSUFFICIENT_BYTES_IN_RX_PACKET = 11,
AnnaBridge 167:84c0a372a020 35 RAIL_ASSERT_FAILED_CLOCK_PRESCALER = 12,
AnnaBridge 167:84c0a372a020 36 RAIL_ASSERT_FAILED_RTCC_POST_WAKEUP = 13,
AnnaBridge 167:84c0a372a020 37 RAIL_ASSERT_FAILED_SYNTH_VCO_FREQUENCY = 14,
AnnaBridge 167:84c0a372a020 38 RAIL_ASSERT_FAILED_RAC_STATE = 15,
AnnaBridge 167:84c0a372a020 39 RAIL_ASSERT_FAILED_RETIME_LIMIT = 16,
AnnaBridge 167:84c0a372a020 40 RAIL_ASSERT_FAILED_NESTED_SEQUENCER_LOCK = 17,
AnnaBridge 167:84c0a372a020 41 RAIL_ASSERT_FAILED_RSSI_AVERAGE_DONE = 18,
AnnaBridge 167:84c0a372a020 42 RAIL_ASSERT_FAILED_DFL_BITS_SIZE = 19,
AnnaBridge 167:84c0a372a020 43 RAIL_ASSERT_FAILED_PROTIMER_RANDOM_SEED = 20,
AnnaBridge 167:84c0a372a020 44 RAIL_ASSERT_FAILED_EFR32XG1_REGISTER_SIZE = 21,
AnnaBridge 167:84c0a372a020 45 RAIL_ASSERT_FAILED_PROTIMER_CHANNEL = 22,
AnnaBridge 167:84c0a372a020 46 RAIL_ASSERT_FAILED_TIMER_REQUIRES_WRAP = 23,
AnnaBridge 167:84c0a372a020 47 RAIL_ASSERT_FAILED_BASECNTTOP = 24,
AnnaBridge 167:84c0a372a020 48 RAIL_ASSERT_FAILED_DEPRECATED_LBTRETRY = 25,
AnnaBridge 167:84c0a372a020 49 RAIL_ASSERT_FAILED_RTCC_SYNC_MISSED = 26,
AnnaBridge 167:84c0a372a020 50 RAIL_ASSERT_FAILED_CLOCK_SOURCE_NOT_READY = 27,
AnnaBridge 167:84c0a372a020 51 RAIL_ASSERT_FAILED_TIMINGS_INVALID = 28,
AnnaBridge 167:84c0a372a020 52 RAIL_ASSERT_NULL_HANDLE = 29,
AnnaBridge 167:84c0a372a020 53 RAIL_ASSERT_FAILED_SCHED_TIMER_NOT_RUNNING = 30,
AnnaBridge 167:84c0a372a020 54 RAIL_ASSERT_FAILED_NO_ACTIVE_CONFIG = 31,
AnnaBridge 167:84c0a372a020 55 RAIL_ASSERT_FAILED_NO_ACTIVE_HANDLE_SWITCH = 32,
AnnaBridge 167:84c0a372a020 56 RAIL_ASSERT_FAILED_RFINIT = 33,
AnnaBridge 167:84c0a372a020 57 RAIL_ASSERT_FAILED_NO_ACTIVE_HANDLE_SCHEDRX = 34,
AnnaBridge 167:84c0a372a020 58 RAIL_ASSERT_FAILED_INVALID_HANDLE_SCHEDTX = 35,
AnnaBridge 167:84c0a372a020 59 RAIL_ASSERT_FAILED_INACTIVE_HANDLE_SCHEDTX = 36,
AnnaBridge 167:84c0a372a020 60 RAIL_ASSERT_FAILED_CONFIG_INDEX_INVALID = 37,
AnnaBridge 167:84c0a372a020 61 RAIL_ASSERT_FAILED_NO_ACTIVE_HANDLE_SINGLEPROTOCOL = 38,
AnnaBridge 167:84c0a372a020 62 RAIL_ASSERT_DEPRECATED_FUNCTION = 39,
AnnaBridge 167:84c0a372a020 63 RAIL_ASSERT_MULTIPROTOCOL_NO_EVENT = 40,
AnnaBridge 167:84c0a372a020 64 RAIL_ASSERT_FAILED_INVALID_INTERRUPT_ENABLED = 41,
AnnaBridge 167:84c0a372a020 65 RAIL_ASSERT_CONVERSION_CURVES_NOT_INITIALIZED = 42,
AnnaBridge 167:84c0a372a020 66 RAIL_ASSERT_DIVISION_BY_ZERO = 43,
AnnaBridge 167:84c0a372a020 67 RAIL_ASSERT_CANT_USE_HARDWARE = 44,
Anna Bridge 160:5571c4ff569f 68 };
Anna Bridge 160:5571c4ff569f 69
AnnaBridge 167:84c0a372a020 70 /// Use this define to create an array of error messages that map to the codes
AnnaBridge 167:84c0a372a020 71 /// in \ref RAIL_AssertErrorCodes_t. You can use these to print slightly more
AnnaBridge 167:84c0a372a020 72 /// detailed error strings related to a particular assert error code if desired.
AnnaBridge 167:84c0a372a020 73 /// For example, you could implement your assert failed callback as follows to
AnnaBridge 167:84c0a372a020 74 /// make use of this.
AnnaBridge 167:84c0a372a020 75 ///
AnnaBridge 167:84c0a372a020 76 /// @code{.c}
AnnaBridge 167:84c0a372a020 77 /// void RAILCb_AssertFailed(RAIL_Handle_t railHandle, uint32_t errorCode)
AnnaBridge 167:84c0a372a020 78 /// {
AnnaBridge 167:84c0a372a020 79 /// static const char* railErrorMessages[] = RAIL_ASSERT_ERROR_MESSAGES;
AnnaBridge 167:84c0a372a020 80 /// const char *errorMessage = "Unknown";
AnnaBridge 167:84c0a372a020 81 ///
AnnaBridge 167:84c0a372a020 82 /// // If this error code is within the range of known error messages then use
AnnaBridge 167:84c0a372a020 83 /// // the appropriate error message.
AnnaBridge 167:84c0a372a020 84 /// if (errorCode < (sizeof(railErrorMessages) / sizeof(char*))) {
AnnaBridge 167:84c0a372a020 85 /// errorMessage = railErrorMessages[errorCode];
AnnaBridge 167:84c0a372a020 86 /// }
AnnaBridge 167:84c0a372a020 87 /// printf(errorMessage);
AnnaBridge 167:84c0a372a020 88 ///
AnnaBridge 167:84c0a372a020 89 /// // Reset the chip since an assert is a fatal error
AnnaBridge 167:84c0a372a020 90 /// NVIC_SystemReset();
AnnaBridge 167:84c0a372a020 91 /// }
AnnaBridge 167:84c0a372a020 92 /// @endcode
AnnaBridge 167:84c0a372a020 93 ///
AnnaBridge 167:84c0a372a020 94 #define RAIL_ASSERT_ERROR_MESSAGES { \
AnnaBridge 167:84c0a372a020 95 /* 0*/ "Appended info missing from Rx packet", \
AnnaBridge 167:84c0a372a020 96 /* 1*/ "Payload bytes missing from Rx packet", \
AnnaBridge 167:84c0a372a020 97 /* 2*/ "Error reading back packet payload", \
AnnaBridge 167:84c0a372a020 98 /* 3*/ "Receive fifo entry has invalid status", \
AnnaBridge 167:84c0a372a020 99 /* 4*/ "Receive fifo entry bad packet length", \
AnnaBridge 167:84c0a372a020 100 /* 5*/ "Unable to configure radio for IR calibration", \
AnnaBridge 167:84c0a372a020 101 /* 6*/ "Reached unexpected state while handling Rx fifo events", \
AnnaBridge 167:84c0a372a020 102 /* 7*/ "Reached unexpected state while handling RXLEN fifo events", \
AnnaBridge 167:84c0a372a020 103 /* 8*/ "Reached unexpected state while handling Tx fifo events", \
AnnaBridge 167:84c0a372a020 104 /* 9*/ "Reached unexpected state while handling Tx ACK fifo events", \
AnnaBridge 167:84c0a372a020 105 /*10*/ "No memory to store receive packet", \
AnnaBridge 167:84c0a372a020 106 /*11*/ "Packet length longer than the receive FIFO size", \
AnnaBridge 167:84c0a372a020 107 /*12*/ "Invalid radio clock prescaler", \
AnnaBridge 167:84c0a372a020 108 /*13*/ "Error synchronizing the RAIL timebase after sleep", \
AnnaBridge 167:84c0a372a020 109 /*14*/ "VCO frequency outside supported range", \
AnnaBridge 167:84c0a372a020 110 /*15*/ "Radio active while changing channels", \
AnnaBridge 167:84c0a372a020 111 /*16*/ "Unable to configure DCDC retiming", \
AnnaBridge 167:84c0a372a020 112 /*17*/ "Nested attempt to lock the sequencer", \
AnnaBridge 167:84c0a372a020 113 /*18*/ "RSSI averaging enabled without a valid callback", \
AnnaBridge 167:84c0a372a020 114 /*19*/ "Invalid dynamic frame length setting provided (dflBits)", \
AnnaBridge 167:84c0a372a020 115 /*20*/ "Unable to seed radio pseudo random number generator", \
AnnaBridge 167:84c0a372a020 116 /*21*/ "Timeout exceeds EFR32XG1 register size", \
AnnaBridge 167:84c0a372a020 117 /*22*/ "Invalid timer channel specified", \
AnnaBridge 167:84c0a372a020 118 /*23*/ "Timer value larger than RAIL timebase", \
AnnaBridge 167:84c0a372a020 119 /*24*/ "LBT config exceeds EFR32XG1 register size", \
AnnaBridge 167:84c0a372a020 120 /*25*/ "Deprecated CSMA/LBT retry callback unexpectedly called", \
AnnaBridge 167:84c0a372a020 121 /*26*/ "Could not synchronize RAIL timebase with the RTC", \
AnnaBridge 167:84c0a372a020 122 /*27*/ "Clock source not ready", \
AnnaBridge 167:84c0a372a020 123 /*28*/ "Attempted to set RAIL timings to invalid value", \
AnnaBridge 167:84c0a372a020 124 /*29*/ "NULL was supplied as a RAIL_Handle_t argument", \
AnnaBridge 167:84c0a372a020 125 /*30*/ "Scheduled timer not running", \
AnnaBridge 167:84c0a372a020 126 /*31*/ "No active config to switch from", \
AnnaBridge 167:84c0a372a020 127 /*32*/ "No active handle after switch", \
AnnaBridge 167:84c0a372a020 128 /*33*/ "RfInit failed to configure active state", \
AnnaBridge 167:84c0a372a020 129 /*34*/ "No active handle for scheduled rx", \
AnnaBridge 167:84c0a372a020 130 /*35*/ "Invalid handle for scheduled tx", \
AnnaBridge 167:84c0a372a020 131 /*36*/ "Inactive handle for scheduled tx", \
AnnaBridge 167:84c0a372a020 132 /*37*/ "Invalid config index to switch to", \
AnnaBridge 167:84c0a372a020 133 /*38*/ "No active handle for single protocol", \
AnnaBridge 167:84c0a372a020 134 /*39*/ "This function is deprecated and must not be called", \
AnnaBridge 167:84c0a372a020 135 /*40*/ "Multiprotocol task started with no event to run", \
AnnaBridge 167:84c0a372a020 136 /*41*/ "Invalid interrupt enabled", \
AnnaBridge 167:84c0a372a020 137 /*42*/ "Power conversion functions called before curves were initialized", \
AnnaBridge 167:84c0a372a020 138 /*43*/ "Division by zero", \
AnnaBridge 167:84c0a372a020 139 /*44*/ "Function cannot be called without access to the hardware", \
Anna Bridge 160:5571c4ff569f 140 }
Anna Bridge 160:5571c4ff569f 141
Anna Bridge 160:5571c4ff569f 142 /**
Anna Bridge 160:5571c4ff569f 143 * @}
Anna Bridge 160:5571c4ff569f 144 */
AnnaBridge 167:84c0a372a020 145
AnnaBridge 167:84c0a372a020 146 #endif // __RAIL_ASSERT_ERROR_CODES_H__