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:
Anna Bridge
Date:
Wed Jan 17 16:13:02 2018 +0000
Revision:
160:5571c4ff569f
Child:
167:84c0a372a020
mbed library. Release version 158

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