ODeV framework  v2
syserror.h
Go to the documentation of this file.
1 
35 #ifndef SYSERROR_H_
36 #define SYSERROR_H_
37 
38 #include <assert.h>
39 #include <stdint.h>
40 #include "sysevent.h"
41 
45 typedef unsigned short sys_error_code_t;
46 
47 #define SYS_ERR_EVT_SRC_IAED 0x1U
48 // IApplicationErrorDelegate parameters
49 #define SYS_ERR_EVT_PARAM_CHECK_TASKS 0x1U
50 #define SYS_ERR_EVT_PARAM_EFT 0x2U
51 #define SYS_ERR_EVT_PARAM_EFT_TIMEOUT 0x3U
52 #define SYS_ERR_EVT_PARAM_NOP 0x4U
53 
54 
60 #define SYS_ERR_MAKE_EVENT(src, params) ((((src) & 0X7U) | (((params)<<3) & 0xF8U) | (0x1U<<31)) & 0x800000FF)
61 
68 #define SYS_IS_ERROR_EVENT(evt) ((evt).xEvent.nEventType == 1)
69 
70 #ifndef SysPostEvent
71 #define SysPostErrorEvent SysPostEvent
72 #endif
73 
83 
91 void SysResetAEDCounter();
92 
93 
97 typedef union {
101  unsigned long error_code;
102 
106  struct {
110  unsigned int low_level_e: 16;
111 
115  unsigned int service_level_e: 16;
116  } type;
117 } sys_error_t;
118 
122 extern sys_error_t g_nSysError;
123 
124 #if (SYS_TRACE > 1)
125 void sys_check_error_code(sys_error_code_t xError);
126 #endif
127 
132 void sys_error_handler(void);
133 
134 
135 #define SYS_CLEAR_ERROR() {g_nSysError.error_code = 0;}
136 #define SYS_CLEAR_LOW_LEVEL_ERROR() {g_nSysError.type.low_level_e = 0;}
137 #define SYS_IS_ERROR(e) (e.error_code != 0)
138 #define SYS_IS_ERROR_CODE(e) (e!=0)
139 #define SYS_IS_LOW_LEVEL_ERROR(e) ( (e).type.low_level_e )
140 #define SYS_IS_SERVICE_LEVEL_ERROR(e) ( (e).type.service_level_e )
141 #define SYS_SET_LOW_LEVEL_ERROR_CODE(e) {g_nSysError.type.low_level_e = e;}
142 #define SYS_SET_SERVICE_LEVEL_ERROR_CODE(e) {g_nSysError.type.service_level_e = e;}
143 #define SYS_GET_LAST_ERROR() g_nSysError
144 #define SYS_GET_LAST_LOW_LEVEL_ERROR_CODE() (g_nSysError.type.low_level_e)
145 #define SYS_GET_LAST_SERVICE_LEVEL_ERROR_CODE() (g_nSysError.type.service_level_e)
146 #define SYS_GET_LOW_LEVEL_ERROR_CODE(e) (e.type.low_level_e)
147 #define SYS_GET_SERVICE_LEVEL_ERROR_CODE(e) (e.type.service_level_e)
148 
149 #define SYS_GENERIC_LOW_LEVEL_ERROR ((sys_error_t){0x1})
150 
151 #define SYS_NO_ERROR ((sys_error_t){0x0})
152 #define SYS_NO_ERROR_CODE (0x0)
153 #define SYS_GROUP_ERROR_COUNT (200)
154 
155 // Low Level API error constants
156 #define SYS_BASE_LOW_LEVEL_ERROR ((sys_error_t){0x1})
157 #define SYS_BASE_LOW_LEVEL_ERROR_CODE (0x1)
158 
159 // Task Level Service error constants
160 #define SYS_BASE_SERVICE_LEVEL_ERROR ((sys_error_t){0x10000})
161 #define SYS_BASE_SERVICE_LEVEL_ERROR_CODE (0x1)
162 
163 // Error Code definition
164 // *********************
165 
166 // General SYS error code
167 // **********************
168 #define SYS_BASE_ERROR_CODE 0X1
169 #define SYS_UNDEFINED_ERROR_CODE SYS_BASE_ERROR_CODE + 1
170 #define SYS_OUT_OF_MEMORY_ERROR_CODE SYS_BASE_ERROR_CODE + 2
171 #define SYS_INVALID_PARAMETER_ERROR_CODE SYS_BASE_ERROR_CODE + 3
172 #define SYS_INVALID_FUNC_CALL_ERROR_CODE SYS_BASE_ERROR_CODE + 4
173 #define SYS_TIMEOUT_ERROR_CODE SYS_BASE_ERROR_CODE + 5
174 
175 
176 // Low Level API error code
177 // ************************
178 
179 
180 // Service Level error code
181 // ************************
182 
183 // ApplicationContext error
184 #define SYS_BASE_AC_ERROR_CODE SYS_BASE_ERROR_CODE + SYS_GROUP_ERROR_COUNT
185 #define SYS_AC_TASK_ALREADY_ADDED_ERROR_CODE SYS_BASE_AC_ERROR_CODE + 1
186 
187 
188 // Task Level Service error code
189 // *****************************
190 
191 #define SYS_BASE_TASK_ERROR_CODE SYS_BASE_AC_ERROR_CODE + SYS_GROUP_ERROR_COUNT
192 #define SYS_TASK_HEAP_OUT_OF_MEMORY_ERROR_CODE SYS_BASE_TASK_ERROR_CODE + 1
193 #define SYS_TASK_INVALID_CALL_ERROR_CODE SYS_BASE_TASK_ERROR_CODE + 2
194 #define SYS_TASK_INVALID_PARAM_ERROR_CODE SYS_BASE_TASK_ERROR_CODE + 3
195 #define SYS_TASK_QUEUE_FULL_ERROR_CODE SYS_BASE_TASK_ERROR_CODE + 4
196 
197 // Init Task error code
198 // ********************
199 #define SYS_BASE_INIT_TASK_ERROR_CODE SYS_BASE_TASK_ERROR_CODE + SYS_GROUP_ERROR_COUNT
200 #define SYS_INIT_TASK_FAILURE_ERROR_CODE SYS_BASE_INIT_TASK_ERROR_CODE + 1
201 #define SYS_INIT_TASK_POWER_MODE_NOT_ENABLE_ERROR_CODE SYS_BASE_INIT_TASK_ERROR_CODE + 2
202 
203 #define SYS_LAST_ERROR_CODE SYS_INIT_TASK_POWER_MODE_NOT_ENABLE_ERROR_CODE
204 
205 #define APP_BASE_ERROR_CODE SYS_LAST_ERROR_CODE + 1
206 
207 #include "apperror.h"
208 
209 
210 #endif /* SYSERROR_H_ */
Definition: sysevent.h:44
Definition: syserror.h:97
Application specific error code.
sys_error_t g_nSysError
unsigned int low_level_e
Definition: syserror.h:110
void SysResetAEDCounter()
Definition: sysinit.c:267
unsigned long error_code
Definition: syserror.h:101
<DESCRIPTIOM>
unsigned int service_level_e
Definition: syserror.h:115
void sys_error_handler(void)
sys_error_code_t SysPostErrorEvent(SysEvent xEvent)
unsigned short sys_error_code_t
Definition: syserror.h:45