ADI iSensor FX3 Firmware  v2.9.4-pub
Firmware for the Analog Devices EVAL-ADIS-FX3 IMU Evaluation Platform. This firmware can be compiled using the Cypress EZ USB Suite IDE
ErrorLog.h
Go to the documentation of this file.
1 
18 #ifndef ERRORLOG_H_
19 #define ERRORLOG_H_
20 
21 /* Include the main header file */
22 #include "main.h"
23 
24 /* Defines */
25 
27 #define LOG_BASE_ADDR (0x34040)
28 
30 #define LOG_CAPACITY 1500
31 
33 #define LOG_COUNT_ADDR (0x34000)
34 
36 typedef enum FileIdentifier
37 {
39  Unknown = 0,
40 
42  Main_c = 1,
43 
46 
49 
52 
55 
58 
60  Flash_c = 7,
61 
64 
67 
70 
72 
80 typedef struct __attribute__((__packed__)) ErrorMsg
81 {
83  uint32_t Uptime;
84 
86  uint32_t Line;
87 
89  uint32_t ErrorCode;
90 
92  uint32_t BootTimeCode;
93 
95  uint32_t File;
96 
98  uint8_t FirmwareVersion[12];
100 
101 /* External functions */
102 void AdiLogError(FileIdentifier File, uint32_t Line, uint32_t ErrorCode);
103 void WriteErrorLogCount(uint32_t count);
104 
105 #endif /* ERRORLOG_H_ */
LogBuffer
uint8_t LogBuffer[FLASH_PAGE_SIZE]
Definition: ErrorLog.c:25
FirmwareID
const uint8_t FirmwareID((aligned(32)))
ErrorMsg::FirmwareVersion
uint8_t FirmwareVersion[12]
Definition: ErrorLog.h:98
FindFirmwareVersion
static void FindFirmwareVersion(uint8_t *buf)
Parses the firmware version number from FirmwareID to a user provided buffer.
Definition: ErrorLog.c:107
Main_c
@ Main_c
Definition: ErrorLog.h:42
ErrorMsg::ErrorCode
uint32_t ErrorCode
Definition: ErrorLog.h:89
ErrorMsg::Uptime
uint32_t Uptime
Definition: ErrorLog.h:83
AdiLogError
void AdiLogError(FileIdentifier File, uint32_t Line, uint32_t ErrorCode)
Logs a firmware error to flash memory for later examination.
Definition: ErrorLog.c:51
LOG_COUNT_ADDR
#define LOG_COUNT_ADDR
Definition: ErrorLog.h:33
WriteLogToFlash
static void WriteLogToFlash(ErrorMsg *msg)
Writes a log data structure to flash memory.
Definition: ErrorLog.c:130
LOG_CAPACITY
#define LOG_CAPACITY
Definition: ErrorLog.h:30
Flash_c
@ Flash_c
Definition: ErrorLog.h:60
ADI_TO_PC_ENDPOINT
#define ADI_TO_PC_ENDPOINT
Definition: main.h:394
Unknown
@ Unknown
Definition: ErrorLog.h:39
ErrorMsg::Line
uint32_t Line
Definition: ErrorLog.h:86
ErrorMsg::BootTimeCode
uint32_t BootTimeCode
Definition: ErrorLog.h:92
HelperFunctions_c
@ HelperFunctions_c
Definition: ErrorLog.h:69
AdiFlashRead
void AdiFlashRead(uint32_t Address, uint16_t NumBytes, uint8_t *ReadBuf)
Read a block of memory from flash, at the specified byte address.
Definition: Flash.c:178
ADI_STREAMING_ENDPOINT
#define ADI_STREAMING_ENDPOINT
Definition: main.h:388
LOG_BASE_ADDR
#define LOG_BASE_ADDR
Definition: ErrorLog.h:27
ErrorLog.h
Header file for the FX3 flash error logging module.
ErrorMsg::File
uint32_t File
Definition: ErrorLog.h:95
BoardState
Struct to store the current board state (SPI config, USB speed, etc)
Definition: main.h:148
BoardState::BootTime
uint32_t BootTime
Definition: main.h:186
GetLogCount
static uint32_t GetLogCount()
Gets the log count from flash.
Definition: ErrorLog.c:219
WriteErrorLogCount
void WriteErrorLogCount(uint32_t count)
Sets the error log count value in flash.
Definition: ErrorLog.c:87
ADI_FROM_PC_ENDPOINT
#define ADI_FROM_PC_ENDPOINT
Definition: main.h:391
StreamThread_c
@ StreamThread_c
Definition: ErrorLog.h:48
AdiFlashWrite
void AdiFlashWrite(uint32_t Address, uint16_t NumBytes, uint8_t *WriteBuf)
Write a block of memory to flash, at the specified byte address.
Definition: Flash.c:154
I2cFunctions_c
@ I2cFunctions_c
Definition: ErrorLog.h:66
GetNewLogAddress
static uint32_t GetNewLogAddress(uint32_t *TotalLogCount)
Gets address (in flash memory) for a new error log entry.
Definition: ErrorLog.c:185
main.h
Main header file for the Analog Devices iSensor FX3 Demonstration Platform firmware.
WriteErrorLogCount
void WriteErrorLogCount(uint32_t count)
Sets the error log count value in flash.
Definition: ErrorLog.c:87
AppThread_c
@ AppThread_c
Definition: ErrorLog.h:45
PinFunctions_c
@ PinFunctions_c
Definition: ErrorLog.h:51
ErrorMsg
struct __packed__ ErrorMsg ErrorMsg
Structure which holds all information about a given error event.
FX3State
BoardState FX3State
Definition: main.c:112
WriteLogToDebug
static void WriteLogToDebug(ErrorMsg *msg)
Prints an error log object to the debug console.
Definition: ErrorLog.c:169
ErrorLog_c
@ ErrorLog_c
Definition: ErrorLog.h:63
StreamFunctions_c
@ StreamFunctions_c
Definition: ErrorLog.h:57
SpiFunctions_c
@ SpiFunctions_c
Definition: ErrorLog.h:54
AdiLogError
void AdiLogError(FileIdentifier File, uint32_t Line, uint32_t ErrorCode)
Logs a firmware error to flash memory for later examination.
Definition: ErrorLog.c:51
FileIdentifier
FileIdentifier
Definition: ErrorLog.h:37
FLASH_PAGE_SIZE
#define FLASH_PAGE_SIZE
Definition: Flash.h:35
ErrorMsg
Structure which holds all information about a given error event.
Definition: ErrorLog.h:81