nRF51 SDK
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Error Log Module

Module for writing error and stack to flash memory. More...

Macros

#define ERROR_MESSAGE_LENGTH   128
 
#define STACK_DUMP_LENGTH   256
 
#define FLASH_PAGE_ERROR_LOG   (BLE_FLASH_PAGE_END - 2)
 
#define LOG_LED_PIN_NO   NRF6310_LED_6
 

Functions

uint32_t ble_error_log_write (uint32_t err_code, const uint8_t *p_message, uint16_t line_number)
 Function for writing the file name/message, line number, and current program stack to flash. More...
 
uint32_t ble_error_log_read (ble_error_log_data_t *error_log)
 Function for reading Error Log from flash. More...
 
void ble_error_log_clear (void)
 Function for clearing the Error Log in flash. More...
 
void ble_error_log_init (void)
 Function for initializing the error log module. More...
 

Data Structures

struct  ble_error_log_data_t
 Error Log Data structure. More...
 

Detailed Description

It contains functions for writing an error code, line number, filename/message and the stack to the flash during an error, e.g. in the assert handler.

Macro Definition Documentation

#define ERROR_MESSAGE_LENGTH   128

Length of error message to stored.

#define STACK_DUMP_LENGTH   256

Length of stack to be stored at max: 64 entries of 4 bytes each.

#define FLASH_PAGE_ERROR_LOG   (BLE_FLASH_PAGE_END - 2)

Address in flash where stack trace can be stored.

#define LOG_LED_PIN_NO   NRF6310_LED_6

Use LED 6 to identify messages in log.

Function Documentation

uint32_t ble_error_log_write ( uint32_t  err_code,
const uint8_t *  p_message,
uint16_t  line_number 
)
Note
This function will force the writing to flash, and disregard any radio communication. USE THIS FUNCTION WITH CARE.
Parameters
[in]err_codeError code to be logged.
[in]p_messageMessage to be written to the flash together with stack dump, usually the file name where the error occured.
[in]line_numberLine number where the error occured.
Returns
NRF_SUCCESS on successful writing of the error log.
uint32_t ble_error_log_read ( ble_error_log_data_t error_log)

If an error is present, this function will light LED6 and block current execution. Execution will continue when

See Also
ble_error_log_clear() is called from application.
ble_error_log_clear() will also delete the error present in the flash.
Parameters
[in]error_logPointer to the structure where the Error log present in the flash will be put. If no error was present, this structure will not be changed.
Returns
NRF_SUCCESS if access to the flash was successful and no error was present in the flash.
void ble_error_log_clear ( void  )

If an error was present and execution is blocked at

See Also
ble_error_log_read() then this function will notify the read and ensure operation continues. This function is expected to be called from an interrupt, e.g. on button press.
void ble_error_log_init ( void  )

The init funtion will ensure the flash is initialized so that error can be logged.