Appiko
nvm_logger.h
1 
19 #ifndef NVM_LOGGER_H
20 #define NVM_LOGGER_H
21 
22 #include "stdint.h"
23 #include "stdbool.h"
24 
25 
26 #if SYS_CFG_PRESENT == 1
27 #include "sys_config.h"
28 #endif
29 
30 #ifndef NVM_LOGGER_PAGE_OFFSETS
31 #define NVM_LOGGER_PAGE_OFFSETS 0x1000
32 #endif
33 
34 #ifndef NVM_LOGGER_LAST_NVM_PAGE
35 #define NVM_LOGGER_LAST_NVM_PAGE 0x27000
36 #endif
37 
38 #ifndef NVM_LOGGER_MAX_PAGES
39 #define NVM_LOGGER_MAX_PAGES 6
40 #endif
41 
42 #ifndef NVM_LOGGER_MAX_LOGS
43 #define NVM_LOGGER_MAX_LOGS 4
44 #endif
45 
46 #ifndef NVM_LOGGER_PAGE_METADATA_ADDR
47 #define NVM_LOGGER_PAGE_METADATA_ADDR 0xFF0
48 #endif
49 
50 #define NVM_LOGGER_DIR_FIRST_TO_LAST true
51 #define NVM_LOGGER_DIR_LAST_TO_FIRST false
52 
53 #define NVM_LOGGER_GET_LAST_CONFIG 1
54 #define NVM_LOGGER_GET_ALL_CONFIG 0
55 
56 
57 typedef enum
58 {
59  NVM_LOG_PAGE0 = 0x27000,
60  NVM_LOG_PAGE1 = 0x26000,
61  NVM_LOG_PAGE2 = 0x25000,
62  NVM_LOG_PAGE3 = 0x24000,
63  NVM_LOG_PAGE4 = 0x23000,
64  NVM_LOG_PAGE5 = 0x23000,
65  NVM_LOG_MAX_PAGES = 6,
66 }log_page_start_t;
67 
68 typedef struct
69 {
70  uint32_t log_id;
71  uint32_t entry_size;
72  uint32_t no_of_pages;
73  uint32_t start_page;
74 }log_config_t;
75 
80 void nvm_logger_mod_init (void);
81 
97 uint32_t nvm_logger_log_init (log_config_t * log_config);
98 
104 void nvm_logger_feed_data (uint32_t log_id, void * data);
105 //
111 //void nvm_logger_get_last_data (uint32_t log_id, void * dest_loc);
112 //
117 //void nvm_logger_get_all_data (uint32_t log_id, void * dest_loc);
118 
127 void nvm_logger_get_n_data (uint32_t log_id, void * dest_loc, uint32_t n);
128 
135 void nvm_logger_fetch_tail_data (uint32_t log_id, void * dest_loc, uint32_t entry_no);
136 
141 void nvm_logger_empty_log (uint32_t log_id);
142 
150 bool nvm_logger_is_log_empty (uint32_t log_id);
151 
158 void nvm_logger_release_log (uint32_t log_id);
159 #endif /* NVM_LOGGER_H */