#include "SFBConstants.h"


Go to the source code of this file.
Defines | |
| #define | E_API_DEBUG_POISON0 BLINK_MAP(1,0,0) |
| a debug 'POISON(0)' call was executed | |
| #define | E_API_DEBUG_POISON1 BLINK_MAP(1,0,1) |
| a debug 'POISON(1)' call was executed | |
| #define | E_API_DEBUG_POISON2 BLINK_MAP(1,0,2) |
| a debug 'POISON(2)' call was executed | |
| #define | E_API_DEBUG_POISON3 BLINK_MAP(1,0,3) |
| a debug 'POISON(3)' call was executed | |
| #define | E_API_DEBUG_POISON4 BLINK_MAP(1,0,4) |
| a debug 'POISON(4)' call was executed | |
| #define | E_API_DEBUG_POISON5 BLINK_MAP(1,0,5) |
| a debug 'POISON(5)' call was executed | |
| #define | E_API_DEBUG_POISON6 BLINK_MAP(1,0,6) |
| a debug 'POISON(6)' call was executed | |
| #define | E_API_ARGUMENT BLINK_MAP(1,1,0) |
| Otherwise unspecified bad API argument. | |
| #define | E_API_ILLEGAL_STATE BLINK_MAP(1,1,1) |
| Otherwise unspecified illegal API state. | |
| #define | E_API_BAD_PIN BLINK_MAP(1,1,2) |
| Invalid pin passed as argument. | |
| #define | E_API_BAD_FACE BLINK_MAP(1,1,3) |
| Invalid face passed as argument. | |
| #define | E_API_MAX_RANGE BLINK_MAP(1,1,4) |
| Value is out of range 0 to max-1. | |
| #define | E_API_TRUE BLINK_MAP(1,1,5) |
| Value that must be nonzero (true) wasn't. | |
| #define | E_API_FALSE BLINK_MAP(1,1,6) |
| Value that must be zero (false) wasn't. | |
| #define | E_API_PACKET_ERROR BLINK_MAP(1,2,0) |
| Broken packet detected and RF_DIE_PACKET_ERROR was set. | |
| #define | E_API_EQUAL BLINK_MAP(1,2,1) |
| Values that must be equal weren't. | |
| #define | E_API_ZERO BLINK_MAP(1,2,2) |
| Value must be 0 but wasn't. | |
| #define | E_API_NONZERO BLINK_MAP(1,2,3) |
| Value must be nonzero but wasn't. | |
| #define | E_API_NOT_EQUAL BLINK_MAP(1,2,4) |
| Value must be != to another but wasn't. | |
| #define | E_API_LESS BLINK_MAP(1,2,5) |
| Value must be < than another but wasn't. | |
| #define | E_API_LESS_EQUAL BLINK_MAP(1,2,6) |
| Value must be <= than another but wasn't. | |
| #define | E_API_GREATER BLINK_MAP(1,3,0) |
| Value must be > than another but wasn't. | |
| #define | E_API_GREATER_EQUAL BLINK_MAP(1,3,1) |
| Value must be >= than another but wasn't. | |
| #define | E_API_PURE_VIRTUAL BLINK_MAP(1,3,2) |
| Pure virtual function called. | |
| #define | E_API_MALLOC_CALL BLINK_MAP(1,3,3) |
| malloc() called but doesn't exist | |
| #define | E_API_FREE_CALL BLINK_MAP(1,3,4) |
| free() called but doesn't exist | |
| #define | E_API_REFLEX_FULL BLINK_MAP(1,3,5) |
| Too many reflexes defined. | |
| #define | E_API_BAD_REFLEX BLINK_MAP(1,3,6) |
| Attempt to define reserved reflex. | |
| #define | E_API_BAD_BAUD BLINK_MAP(1,4,0) |
| Illegal baud rate. | |
| #define | E_API_BAD_ALARM BLINK_MAP(1,4,1) |
| Illegal alarm number specified (0, too large, or never created). | |
| #define | E_API_NULL_HANDLER BLINK_MAP(1,4,2) |
| Null callback supplied where illegal. | |
| #define | E_API_BAD_TRIGGER BLINK_MAP(1,4,3) |
| triggerUp() called outside of active PacketHandler | |
| #define | E_API_BAD_FORGET BLINK_MAP(1,4,4) |
| forget() called outside of active memory | |
| #define | E_API_MEMCPY BLINK_MAP(1,4,5) |
| memcpy called | |
| #define | E_API_FORMAT_ARG BLINK_MAP(1,4,6) |
| a bad print or read code was passed | |
| #define | E_API_HALFWORD_ALIGNED BLINK_MAP(1,5,0) |
| a value/address needed to be a multiple of two but wasn't | |
| #define | E_API_WORD_ALIGNED BLINK_MAP(1,5,1) |
| a value/address needed to be a multiple of four but wasn't | |
| #define | E_API_DOUBLEWORD_ALIGNED BLINK_MAP(1,5,2) |
| a value/address needed to be a multiple of eight but wasn't | |
| #define | E_API_BAD_SECTOR BLINK_MAP(1,5,3) |
| A bad sector number or invalid address for sector. | |
| #define | E_API_REFLEX_REDEF BLINK_MAP(1,5,4) |
| Attempt to redefine library reflex. | |
| #define | E_API_CXA_GUARD BLINK_MAP(1,5,5) |
| cxa_guard_acquire, _release, or _abort called | |
| #define | E_API_NO_MORE_ALARMS BLINK_MAP(1,5,6) |
| Failed to create an alarm when needed. | |
| #define | E_API_POSITIVE BLINK_MAP(1,6,0) |
| Value must be positive but wasn't. | |
| #define | E_API_NONNEGATIVE BLINK_MAP(1,6,1) |
| Value must be nonnegative but wasn't. | |
| #define | E_API_DEAD_FRAME BLINK_MAP(1,6,2) |
| Attempted access to an uninitialized frame. | |
| #define | E_API_NO_TRANSPORT BLINK_MAP(1,6,3) |
| A transport was required but not present. | |
| #define | E_API_TRANSPORT_CONFIG BLINK_MAP(1,6,4) |
| A transport failed to configure when required. | |
| #define | E_API_USE_BEFORE_INIT BLINK_MAP(1,6,5) |
| Some service was used before it was initialized. | |
| #define | E_API_NULL_PACKET BLINK_MAP(2,0,1) |
| A null packet pointer where illegal. | |
| #define | E_API_NULL_POINTER BLINK_MAP(2,0,2) |
| A null pointer of some non-packet type, where illegal. | |
| #define | E_API_POINTER_ALIGNMENT BLINK_MAP(2,0,3) |
| A pointer needed to be half or word-aligned but wasn't. | |
| #define | E_API_INVALID_PACKET BLINK_MAP(2,0,4) |
| A null, corrupt, or non-packet pointer passed where packet expected. | |
| #define | E_API_NOT_HEAP_PACKET BLINK_MAP(2,0,5) |
| A valid but non-heap-allocated packet passed where heap packet needed. | |
| #define | E_API_BAD_FREE_ARG BLINK_MAP(2,0,6) |
| corrupt, non-malloc()ed, or already-freed pointer passed to free() | |
| #define | E_API_BAD_FORMAT_CODE BLINK_MAP(2,1,0) |
| Char after '' not recognized in facePrintf or packetScanf format. | |
| #define | E_API_BAD_INTERRUPT_PIN BLINK_MAP(2,1,1) |
| attach/detachInterrupt pin can't be interrupted on | |
| #define | E_API_NO_MORE_INTERRUPTS BLINK_MAP(2,1,2) |
| Ran out of room for attach/detachInterrupt handlers. | |
| #define | E_API_EEPROM_ADDRESS BLINK_MAP(2,1,3) |
| EEPROM address out of range. | |
| #define | E_API_EEPROM_RESPONSE BLINK_MAP(2,1,4) |
| EEPROM failed to respond. | |
| #define | E_API_EEPROM_DATA BLINK_MAP(2,1,5) |
| EEPROM data corrupt. | |
| #define | E_API_BUFFER_LOCKED BLINK_MAP(2,1,6) |
| Attempt to modify locked packet buffer. | |
| #define | E_API_RESOURCE_EXHAUSTED BLINK_MAP(2,2,0) |
| Some required resource has run out. | |
| #define | E_API_EXIT_CALLED BLINK_MAP(2,2,1) |
| exit() was called | |
| #define | E_API_NONNULL_POINTER BLINK_MAP(2,2,2) |
| A non-null pointer of some non-packet type, where null was required. | |
| #define | E_HW_UNDEF BLINK_MAP(4,0,0) |
| An 'undefined instruction' hardware exception occurred. | |
| #define | E_HW_DABT BLINK_MAP(4,0,1) |
| A 'data abort' hardware exception occurred. | |
| #define | E_HW_PABT BLINK_MAP(4,0,2) |
| A 'prefetch abort' hardware exception occurred. | |
| #define | E_HW_SWI BLINK_MAP(4,0,3) |
| A 'software interrupt' hardware exception occurred. | |
| #define | E_HW_FIQ BLINK_MAP(4,0,4) |
| A FIQ trap occurred. | |
| #define | E_B3_IAP_FAILURE BLINK_MAP(4,1,0) |
| A flash programming command failed. | |
| #define | E_B3_VERIFY_FAILURE BLINK_MAP(4,1,1) |
| An apparently successful flash write failed verification. | |
| #define | E_BUG_NO_SETUP BLINK_MAP(6,0,1) |
| Bug: No setup() routine was linked (at least, none with C linkage!). | |
| #define | E_BUG_NO_LOOP BLINK_MAP(6,0,2) |
| Bug: No loop() routine was linked (at least, none with C linkage!). | |
| #define | E_BUG_STACK_CORRUPT BLINK_MAP(6,0,3) |
| Bug: Flag value at stack end was altered. | |
| #define | E_BUG_UNIMPLEMENTED BLINK_MAP(6,1,1) |
| Bug: Some unimplemented function was called. | |
| #define | E_BUG_REFLEX_RECURSION BLINK_MAP(6,1,2) |
| Bug: Reflex dispatching was entered recursively. | |
| #define | E_BUG_INCONSISTENT_STATE BLINK_MAP(6,1,3) |
| Bug: Inconsistent internal state detected. | |
| #define | E_BUG_RECURSIVE_DEATH BLINK_MAP(6,1,4) |
| Bug: An error occurred while dying. | |
| #define | E_BUG_UNSPECIFIED_BUG BLINK_MAP(6,6,6) |
| Bug: An unspecified library bug was detected. | |
| #define | BUG_CODE(message, code) _apiError_(code, #message " - " __FILE__, __LINE__) |
| Kill the system, leaving it blinking code. | |
| #define | BUG(message) BUG_CODE(message, E_BUG_UNSPECIFIED_BUG) |
| Kill the system, leaving it blinking E_BUG_UNSPECIFIED_BUG. | |
| #define | BUG_IF_CODE(code, condition) do { if (condition) BUG_CODE("", code); } while (0) |
| Conditionally kill the system, leaving it blinking code, if condition is non-zero. | |
| #define | BUG_UNIMPLEMENTED() BUG_CODE("Unimplemented",E_BUG_UNIMPLEMENTED) |
| Kill the system, leaving it blinking E_BUG_UNIMPLEMENTED. | |
This file defines the known "die blinking codes" that may occur.
When any of a large class of programming errors is detected, the SFB will stop normal operation and repeatedly display a 'blink code' that may help in determining what went wrong.
The blink code is preceded by blinking of the face LED's in a NS-EW-NS-EW-NS sequence, followed by 0 to 6 red flashes, then 0 to 6 green flashes, and finally 0 to 6 blue flashes; then the entire sequence repeats.
If an error flashes, say, 1 red, then 3 green, then 5 blue, that corresponds to
BLINK_CODE(1,3,5)
Notes:
| #define BUG | ( | message | ) | BUG_CODE(message, E_BUG_UNSPECIFIED_BUG) |
Kill the system, leaving it blinking E_BUG_UNSPECIFIED_BUG.
Additional message may be visible if the reflex flag RF_DIE_ALOUD is enabled via SET_REFLEX_FLAGS.
| message | a last message to possibly make available for debugging |
| #define BUG_CODE | ( | message, | |||
| code | ) | _apiError_(code, #message " - " __FILE__, __LINE__) |
Kill the system, leaving it blinking code.
Additional message may be visible if the reflex flag RF_DIE_ALOUD is enabled via SET_REFLEX_FLAGS.
| message | a last message to possibly make available for debugging | |
| code | a 'blinkcode' to display (see BLINK_MAP) |
| #define BUG_IF_CODE | ( | code, | |||
| condition | ) | do { if (condition) BUG_CODE("", code); } while (0) |
Conditionally kill the system, leaving it blinking code, if condition is non-zero.
| code | a 'blinkcode' to display (see BLINK_MAP) | |
| condition | an expression to evaluate that produces a bool value |
| #define BUG_UNIMPLEMENTED | ( | ) | BUG_CODE("Unimplemented",E_BUG_UNIMPLEMENTED) |
| #define E_API_EXIT_CALLED BLINK_MAP(2,2,1) |
exit() was called
| #define E_API_NONNULL_POINTER BLINK_MAP(2,2,2) |
A non-null pointer of some non-packet type, where null was required.
| #define E_API_RESOURCE_EXHAUSTED BLINK_MAP(2,2,0) |
Some required resource has run out.
| #define E_BUG_STACK_CORRUPT BLINK_MAP(6,0,3) |
Bug: Flag value at stack end was altered.
This can be caused by either a stack overflow, or a global variable buffer overflow. Check getMinimumStackSpace().