source: trunk/firmware/Debug125A/efficiency_PP.c @ 6

Last change on this file since 6 was 6, checked in by f.jahn, 3 months ago
File size: 44.2 KB
Line 
1# 1 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\efficiency.c"
2# 1 "<built-in>" 1
3# 1 "<built-in>" 3
4# 380 "<built-in>" 3
5# 1 "<command line>" 1
6# 1 "<built-in>" 2
7# 1 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\efficiency.c" 2
8
9# 1 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" 1
10# 15 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h"
11# 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 1 3
12# 20 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 3
13# 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 1 3
14# 17 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3
15# 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_ConfDefaults.h" 1 3
16# 67 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_ConfDefaults.h" 3
17# 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Conf.h" 1 3
18# 35 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Conf.h" 3
19# 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 1 3
20# 748 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3
21static __inline__ __attribute__((__always_inline__)) void __SEGGER_RTL_WR_PARTIAL_WORD_func(char *addr, unsigned w, int n) {
22  switch (n) {
23  default: addr[3] = (-1) > 0 ? w : w >> 24;
24  case 3: addr[2] = (-1) > 0 ? w >> 8 : w >> 16;
25  case 2: addr[1] = (-1) > 0 ? w >> 16 : w >> 8;
26  case 1: addr[0] = (-1) > 0 ? w >> 24 : w;
27  case 0: ;
28  }
29}
30
31static __inline__ __attribute__((__always_inline__)) void __SEGGER_RTL_WR_WORD_func(char *addr, unsigned w) {
32  __SEGGER_RTL_WR_PARTIAL_WORD_func(addr, w, 4);
33}
34
35static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_RD_WORD_func(const void *addr) {
36  const unsigned char *pAddr = (const unsigned char *)addr;
37
38  return pAddr[0] * ((-1) > 0 ? 0x1000000u : 0x1u) +
39         pAddr[1] * ((-1) > 0 ? 0x10000u : 0x100u) +
40         pAddr[2] * ((-1) > 0 ? 0x100u : 0x10000u) +
41         pAddr[3] * ((-1) > 0 ? 0x1u : 0x1000000u);
42}
43
44static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_BYTE_PATTERN_func(unsigned x) {
45  return x * 0x01010101uL;
46}
47
48static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_FILL_HEAD_func(const void *pOrigin, unsigned Word, unsigned Standin) {
49  unsigned Mask;
50  unsigned Fill;
51
52  (void)pOrigin;
53
54  Fill = __SEGGER_RTL_BYTE_PATTERN_func(Standin);
55# 792 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3
56  Mask = 0xFFFFFFFFu;
57  Mask <<= 8 * (((unsigned)(pOrigin)) & 3u);
58
59  return (Word & Mask) | (Fill & ~Mask);
60
61
62}
63
64static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_FILL_TAIL_func(unsigned n, unsigned Word, unsigned Standin) {
65  unsigned Mask;
66  unsigned Fill;
67# 817 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3
68  if (n >= 4) {
69    return Word;
70  } else {
71    Fill = __SEGGER_RTL_BYTE_PATTERN_func(Standin);
72    Mask = 0xFFFFFFFFu << (8 * n);
73
74    return (Fill & Mask) | (Word & ~Mask);
75  }
76
77
78}
79
80static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_ZBYTE_CHECK_func(unsigned x) {
81
82
83
84
85
86
87
88  return ((x-0x01010101u) & ~x & 0x80808080u);
89
90
91}
92
93static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_DIFF_INDEX_func(unsigned x, unsigned y) {
94# 866 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3
95  if ((x & 0x000000FFuL) != (y & 0x000000FFuL)) { return 0; }
96  if ((x & 0x0000FF00uL) != (y & 0x0000FF00uL)) { return 1; }
97  if ((x & 0x00FF0000uL) != (y & 0x00FF0000uL)) { return 2; }
98  if ((x & 0xFF000000uL) != (y & 0xFF000000uL)) { return 3; }
99  return 4;
100
101
102}
103
104static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_DIFF_BYTE_func(unsigned x, int Index) {
105
106
107
108  return (x >> (8*Index)) & 0xFF;
109
110}
111
112static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_ZBYTE_INDEX_func(unsigned x) {
113# 919 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3
114  if ((x & 0x000000FFuL) == 0) { return 0; }
115  if ((x & 0x0000FF00uL) == 0) { return 1; }
116  if ((x & 0x00FF0000uL) == 0) { return 2; }
117  if ((x & 0xFF000000uL) == 0) { return 3; }
118  return 4;
119
120
121}
122
123static __inline__ __attribute__((__always_inline__)) _Bool __SEGGER_RTL_atomic_is_lock_free(unsigned size, const volatile void *ptr) {
124  switch (size) {
125  case 1: return 1;
126  case 2: return ((unsigned)ptr & 1) == 0;
127  case 4: return ((unsigned)ptr & 3) == 0;
128  default: return 0;
129  }
130}
131# 946 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3
132extern const int __aeabi_SIGABRT;
133extern const int __aeabi_SIGINT;
134extern const int __aeabi_SIGILL;
135extern const int __aeabi_SIGFPE;
136extern const int __aeabi_SIGSEGV;
137extern const int __aeabi_SIGTERM;
138
139void __aeabi_SIG_DFL(int sig);
140void __aeabi_SIG_IGN(int sig);
141void __aeabi_SIG_ERR(int sig);
142# 36 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Conf.h" 2 3
143# 68 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_ConfDefaults.h" 2 3
144# 18 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 2 3
145# 38 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3
146  typedef struct __SEGGER_RTL_FILE_impl __SEGGER_RTL_FILE;
147
148
149typedef struct __SEGGER_RTL_locale_data_s __SEGGER_RTL_locale_t;
150typedef struct __SEGGER_RTL_locale_codeset_s __SEGGER_RTL_locale_codeset_t;
151
152typedef struct {
153
154
155
156  const char * decimal_point;
157  const char * thousands_sep;
158  const char * grouping;
159
160  const char * int_curr_symbol;
161  const char * currency_symbol;
162  const char * mon_decimal_point;
163  const char * mon_thousands_sep;
164  const char * mon_grouping;
165  const char * positive_sign;
166  const char * negative_sign;
167
168  char int_frac_digits;
169  char frac_digits;
170  char p_cs_precedes;
171  char p_sep_by_space;
172  char n_cs_precedes;
173  char n_sep_by_space;
174  char p_sign_posn;
175  char n_sign_posn;
176  char int_p_cs_precedes;
177  char int_n_cs_precedes;
178  char int_p_sep_by_space;
179  char int_n_sep_by_space;
180  char int_p_sign_posn;
181  char int_n_sign_posn;
182
183
184
185
186  const char *day_names;
187  const char *abbrev_day_names;
188  const char *month_names;
189  const char *abbrev_month_names;
190  const char *am_pm_indicator;
191  const char *date_format;
192  const char *time_format;
193  const char *date_time_format;
194} __SEGGER_RTL_locale_data_t;
195
196struct __SEGGER_RTL_locale_data_s {
197  const char * name;
198  const __SEGGER_RTL_locale_data_t * data;
199  const __SEGGER_RTL_locale_codeset_t * codeset;
200};
201
202struct __SEGGER_RTL_POSIX_locale_s {
203  const __SEGGER_RTL_locale_t *__category[5];
204};
205
206struct timeval;
207# 107 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3
208extern struct __SEGGER_RTL_POSIX_locale_s __SEGGER_RTL_global_locale;
209extern struct __SEGGER_RTL_POSIX_locale_s * __SEGGER_RTL_locale_ptr;
210extern char * __SEGGER_RTL_locale_name_buffer;
211# 118 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3
212extern const __SEGGER_RTL_locale_t __SEGGER_RTL_c_locale;
213extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_1;
214extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_2;
215extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_3;
216extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_4;
217extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_5;
218extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_6;
219extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_7;
220extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_8;
221extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_9;
222extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_10;
223extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_11;
224extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_13;
225extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_14;
226extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_15;
227extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_16;
228extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1250;
229extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1251;
230extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1252;
231extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1253;
232extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1254;
233extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1255;
234extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1256;
235extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1257;
236extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1258;
237
238extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_c_locale_data;
239extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_aa_DJ_locale;
240extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_aa_ER_locale;
241extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_aa_ET_locale;
242extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_af_NA_locale;
243extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_af_ZA_locale;
244extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ak_GH_locale;
245extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_am_ET_locale;
246extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_AE_locale;
247extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_BH_locale;
248extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_DZ_locale;
249extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_EG_locale;
250extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_IQ_locale;
251extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_JO_locale;
252extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_KW_locale;
253extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_LB_locale;
254extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_LY_locale;
255extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_MA_locale;
256extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_OM_locale;
257extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_QA_locale;
258extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_SA_locale;
259extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_SD_locale;
260extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_SY_locale;
261extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_TN_locale;
262extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_YE_locale;
263extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_as_IN_locale;
264extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_asa_TZ_locale;
265extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_Arab_IR_locale;
266extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_AZ_locale;
267extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_Cyrl_AZ_locale;
268extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_IR_locale;
269extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_Latn_AZ_locale;
270extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_be_BY_locale;
271extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bem_ZM_locale;
272extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bez_TZ_locale;
273extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bg_BG_locale;
274extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bm_ML_locale;
275extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bn_BD_locale;
276extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bn_IN_locale;
277extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bo_CN_locale;
278extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bo_IN_locale;
279extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_br_FR_locale;
280extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_brx_IN_locale;
281extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bs_BA_locale;
282extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_byn_ER_locale;
283extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ca_ES_locale;
284extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cch_NG_locale;
285extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cgg_UG_locale;
286extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_chr_US_locale;
287extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cs_CZ_locale;
288extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cy_GB_locale;
289extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_da_DK_locale;
290extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_dav_KE_locale;
291extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_AT_locale;
292extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_BE_locale;
293extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_CH_locale;
294extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_DE_locale;
295extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_LI_locale;
296extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_LU_locale;
297extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_dv_MV_locale;
298extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_dz_BT_locale;
299extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ebu_KE_locale;
300extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ee_GH_locale;
301extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ee_TG_locale;
302extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_el_CY_locale;
303extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_el_GR_locale;
304extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_AS_locale;
305extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_AU_locale;
306extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_BE_locale;
307extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_BW_locale;
308extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_BZ_locale;
309extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_CA_locale;
310extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_Dsrt_US_locale;
311extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_GB_locale;
312extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_GU_locale;
313extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_HK_locale;
314extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_IE_locale;
315extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_IN_locale;
316extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_JM_locale;
317extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MH_locale;
318extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MP_locale;
319extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MT_locale;
320extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MU_locale;
321extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_NA_locale;
322extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_NZ_locale;
323extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_PH_locale;
324extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_PK_locale;
325extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_SG_locale;
326extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_TT_locale;
327extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_UM_locale;
328extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_US_locale;
329extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_US_POSIX_locale;
330extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_VI_locale;
331extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_ZA_locale;
332extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_ZW_locale;
333extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_ZZ_locale;
334extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_AR_locale;
335extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_BO_locale;
336extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_CL_locale;
337extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_CO_locale;
338extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_CR_locale;
339extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_DO_locale;
340extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_EC_locale;
341extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_ES_locale;
342extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_GQ_locale;
343extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_GT_locale;
344extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_HN_locale;
345extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_MX_locale;
346extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_NI_locale;
347extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PA_locale;
348extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PE_locale;
349extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PR_locale;
350extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PY_locale;
351extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_SV_locale;
352extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_US_locale;
353extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_UY_locale;
354extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_VE_locale;
355extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_et_EE_locale;
356extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_eu_ES_locale;
357extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fa_AF_locale;
358extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fa_IR_locale;
359extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ff_SN_locale;
360extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fi_FI_locale;
361extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fil_PH_locale;
362extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fo_FO_locale;
363extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BE_locale;
364extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BF_locale;
365extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BI_locale;
366extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BJ_locale;
367extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BL_locale;
368extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CA_locale;
369extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CD_locale;
370extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CF_locale;
371extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CG_locale;
372extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CH_locale;
373extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CI_locale;
374extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CM_locale;
375extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_DJ_locale;
376extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_FR_locale;
377extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GA_locale;
378extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GN_locale;
379extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GP_locale;
380extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GQ_locale;
381extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_KM_locale;
382extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_LU_locale;
383extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MC_locale;
384extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MF_locale;
385extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MG_locale;
386extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_ML_locale;
387extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MQ_locale;
388extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_NE_locale;
389extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_RE_locale;
390extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_RW_locale;
391extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_SN_locale;
392extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_TD_locale;
393extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_TG_locale;
394extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fur_IT_locale;
395extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ga_IE_locale;
396extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gaa_GH_locale;
397extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gez_ER_locale;
398extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gez_ET_locale;
399extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gl_ES_locale;
400extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gsw_CH_locale;
401extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gu_IN_locale;
402extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_guz_KE_locale;
403extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gv_GB_locale;
404extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Arab_NG_locale;
405extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Arab_SD_locale;
406extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_GH_locale;
407extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Latn_GH_locale;
408extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Latn_NE_locale;
409extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Latn_NG_locale;
410extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_NE_locale;
411extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_NG_locale;
412extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_SD_locale;
413extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_haw_US_locale;
414extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_he_IL_locale;
415extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hi_IN_locale;
416extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hr_HR_locale;
417extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hu_HU_locale;
418extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hy_AM_locale;
419extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_id_ID_locale;
420extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ig_NG_locale;
421extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ii_CN_locale;
422extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_is_IS_locale;
423extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_it_CH_locale;
424extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_it_IT_locale;
425extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ja_JP_locale;
426extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_jmc_TZ_locale;
427extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ka_GE_locale;
428extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kab_DZ_locale;
429extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kaj_NG_locale;
430extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kam_KE_locale;
431extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kcg_NG_locale;
432extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kde_TZ_locale;
433extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kea_CV_locale;
434extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kfo_CI_locale;
435extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_khq_ML_locale;
436extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ki_KE_locale;
437extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kk_Cyrl_KZ_locale;
438extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kk_KZ_locale;
439extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kl_GL_locale;
440extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kln_KE_locale;
441extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_km_KH_locale;
442extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kn_IN_locale;
443extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ko_KR_locale;
444extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kok_IN_locale;
445extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kpe_GN_locale;
446extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kpe_LR_locale;
447extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ksb_TZ_locale;
448extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ksh_DE_locale;
449extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Arab_IQ_locale;
450extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Arab_IR_locale;
451extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_IQ_locale;
452extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_IR_locale;
453extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Latn_SY_locale;
454extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Latn_TR_locale;
455extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_SY_locale;
456extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_TR_locale;
457extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kw_GB_locale;
458extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ky_KG_locale;
459extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lag_TZ_locale;
460extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lg_UG_locale;
461extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ln_CD_locale;
462extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ln_CG_locale;
463extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lo_LA_locale;
464extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lt_LT_locale;
465extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_luo_KE_locale;
466extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_luy_KE_locale;
467extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lv_LV_locale;
468extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mas_KE_locale;
469extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mas_TZ_locale;
470extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mer_KE_locale;
471extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mfe_MU_locale;
472extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mg_MG_locale;
473extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mi_NZ_locale;
474extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mk_MK_locale;
475extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ml_IN_locale;
476extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_CN_locale;
477extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_Cyrl_MN_locale;
478extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_MN_locale;
479extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_Mong_CN_locale;
480extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mr_IN_locale;
481extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ms_BN_locale;
482extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ms_MY_locale;
483extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mt_MT_locale;
484extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_my_MM_locale;
485extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_naq_NA_locale;
486extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nb_NO_locale;
487extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nd_ZW_locale;
488extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nds_DE_locale;
489extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ne_IN_locale;
490extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ne_NP_locale;
491extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nl_BE_locale;
492extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nl_NL_locale;
493extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nn_NO_locale;
494extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nr_ZA_locale;
495extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nso_ZA_locale;
496extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ny_MW_locale;
497extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nyn_UG_locale;
498extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_oc_FR_locale;
499extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_om_ET_locale;
500extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_om_KE_locale;
501extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_or_IN_locale;
502extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_Arab_PK_locale;
503extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_Guru_IN_locale;
504extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_IN_locale;
505extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_PK_locale;
506extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pl_PL_locale;
507extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ps_AF_locale;
508extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_AO_locale;
509extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_BR_locale;
510extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_GW_locale;
511extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_MZ_locale;
512extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_PT_locale;
513extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rm_CH_locale;
514extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ro_MD_locale;
515extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ro_RO_locale;
516extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rof_TZ_locale;
517extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ru_MD_locale;
518extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ru_RU_locale;
519extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ru_UA_locale;
520extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rw_RW_locale;
521extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rwk_TZ_locale;
522extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sa_IN_locale;
523extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_saq_KE_locale;
524extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_se_FI_locale;
525extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_se_NO_locale;
526extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_seh_MZ_locale;
527extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ses_ML_locale;
528extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sg_CF_locale;
529extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sh_BA_locale;
530extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sh_CS_locale;
531extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sh_YU_locale;
532extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_shi_Latn_MA_locale;
533extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_shi_MA_locale;
534extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_shi_Tfng_MA_locale;
535extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_si_LK_locale;
536extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sid_ET_locale;
537extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sk_SK_locale;
538extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sl_SI_locale;
539extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sn_ZW_locale;
540extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_DJ_locale;
541extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_ET_locale;
542extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_KE_locale;
543extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_SO_locale;
544extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sq_AL_locale;
545extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_BA_locale;
546extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_CS_locale;
547extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_BA_locale;
548extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_CS_locale;
549extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_ME_locale;
550extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_RS_locale;
551extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_YU_locale;
552extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_BA_locale;
553extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_CS_locale;
554extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_ME_locale;
555extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_RS_locale;
556extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_YU_locale;
557extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_ME_locale;
558extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_RS_locale;
559extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_YU_locale;
560extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ss_SZ_locale;
561extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ss_ZA_locale;
562extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ssy_ER_locale;
563extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_st_LS_locale;
564extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_st_ZA_locale;
565extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sv_FI_locale;
566extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sv_SE_locale;
567extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sw_KE_locale;
568extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sw_TZ_locale;
569extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_syr_SY_locale;
570extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ta_IN_locale;
571extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ta_LK_locale;
572extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_te_IN_locale;
573extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_teo_KE_locale;
574extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_teo_UG_locale;
575extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tg_Cyrl_TJ_locale;
576extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tg_TJ_locale;
577extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_th_TH_locale;
578extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ti_ER_locale;
579extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ti_ET_locale;
580extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tig_ER_locale;
581extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tl_PH_locale;
582extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tn_ZA_locale;
583extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_to_TO_locale;
584extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tr_TR_locale;
585extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_trv_TW_locale;
586extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ts_ZA_locale;
587extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tt_RU_locale;
588extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tzm_Latn_MA_locale;
589extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tzm_MA_locale;
590extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ug_Arab_CN_locale;
591extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ug_CN_locale;
592extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uk_UA_locale;
593extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ur_IN_locale;
594extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ur_PK_locale;
595extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_AF_locale;
596extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_Arab_AF_locale;
597extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_Cyrl_UZ_locale;
598extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_Latn_UZ_locale;
599extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_UZ_locale;
600extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ve_ZA_locale;
601extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_vi_VN_locale;
602extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_vun_TZ_locale;
603extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_wal_ET_locale;
604extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_wo_Latn_SN_locale;
605extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_wo_SN_locale;
606extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_xh_ZA_locale;
607extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_xog_UG_locale;
608extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_yo_NG_locale;
609extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_CN_locale;
610extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_CN_locale;
611extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_HK_locale;
612extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_MO_locale;
613extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_SG_locale;
614extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hant_HK_locale;
615extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hant_MO_locale;
616extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hant_TW_locale;
617extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_HK_locale;
618extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_MO_locale;
619extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_SG_locale;
620extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_TW_locale;
621extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zu_ZA_locale;
622
623extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_ascii;
624extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_utf8;
625
626extern const char __SEGGER_RTL_data_utf8_period [];
627extern const char __SEGGER_RTL_data_utf8_comma [];
628extern const char __SEGGER_RTL_data_utf8_space [];
629extern const char __SEGGER_RTL_data_utf8_plus [];
630extern const char __SEGGER_RTL_data_utf8_minus [];
631extern const char __SEGGER_RTL_data_empty_string[];
632# 546 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3
633int __SEGGER_RTL_X_set_time_of_day (const struct timeval *__tp);
634int __SEGGER_RTL_X_get_time_of_day (struct timeval *__tp);
635const __SEGGER_RTL_locale_t * __SEGGER_RTL_X_find_locale (const char *__locale);
636__SEGGER_RTL_FILE * __SEGGER_RTL_X_file_open (const char *__filename, const char *__mode);
637__SEGGER_RTL_FILE * __SEGGER_RTL_X_file_dopen (int __descriptor, const char *__mode);
638int __SEGGER_RTL_X_file_stat (__SEGGER_RTL_FILE *__stream);
639int __SEGGER_RTL_X_file_read (__SEGGER_RTL_FILE *__stream, char *__s, unsigned __len);
640int __SEGGER_RTL_X_file_write (__SEGGER_RTL_FILE *__stream, const char *__s, unsigned __len);
641int __SEGGER_RTL_X_file_unget (__SEGGER_RTL_FILE *__stream, int __c);
642int __SEGGER_RTL_X_file_close (__SEGGER_RTL_FILE *__stream);
643int __SEGGER_RTL_X_file_error (__SEGGER_RTL_FILE *__stream);
644int __SEGGER_RTL_X_file_flush (__SEGGER_RTL_FILE *__stream);
645int __SEGGER_RTL_X_file_eof (__SEGGER_RTL_FILE *__stream);
646void __SEGGER_RTL_X_file_clrerr (__SEGGER_RTL_FILE *__stream);
647int __SEGGER_RTL_X_file_seek (__SEGGER_RTL_FILE *__stream, long __offset, int __whence);
648int __SEGGER_RTL_X_file_getpos (__SEGGER_RTL_FILE *__stream, long *__pos);
649int __SEGGER_RTL_X_file_bufsize (__SEGGER_RTL_FILE *__stream);
650__SEGGER_RTL_FILE * __SEGGER_RTL_X_file_tmpfile (void);
651char * __SEGGER_RTL_X_file_tmpnam (char *__s, unsigned __max);
652int __SEGGER_RTL_X_file_remove (const char *__filename);
653int __SEGGER_RTL_X_file_rename (const char *__old, const char *__new);
654void __attribute__((__weak__)) __SEGGER_RTL_X_heap_lock (void);
655void __attribute__((__weak__)) __SEGGER_RTL_X_heap_unlock (void);
656int __attribute__((__weak__)) __SEGGER_RTL_X_atomic_lock (void);
657void __attribute__((__weak__)) __SEGGER_RTL_X_atomic_unlock (int __state);
658int __attribute__((__weak__)) __SEGGER_RTL_X_atomic_is_lock_free (unsigned int __size, void *__ptr);
659void __attribute__((__weak__)) __SEGGER_RTL_X_atomic_synchronize (void);
660volatile int * __aeabi_errno_addr (void);
661void __aeabi_assert (const char *__expression, const char *__filename, int __line);
662# 584 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3
663void __SEGGER_RTL_execute_at_exit_fns (void);
664void __SEGGER_RTL_set_locale_name_buffer (char *__buffer);
665int __SEGGER_RTL_mb_max (const struct __SEGGER_RTL_POSIX_locale_s *__loc);
666int __SEGGER_RTL_mb_cur_max (void);
667void __SEGGER_RTL_init_heap (void *__ptr, unsigned int __size);
668# 21 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 2 3
669# 272 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 3
670typedef signed char int8_t;
671typedef unsigned char uint8_t;
672typedef short int16_t;
673typedef unsigned short uint16_t;
674typedef int int32_t;
675typedef unsigned int uint32_t;
676typedef long long int int64_t;
677typedef long long unsigned int uint64_t;
678
679typedef signed char int_least8_t;
680typedef short int_least16_t;
681typedef int int_least32_t;
682typedef long long int int_least64_t;
683typedef unsigned char uint_least8_t;
684typedef unsigned short uint_least16_t;
685typedef unsigned int uint_least32_t;
686typedef long long unsigned int uint_least64_t;
687
688typedef signed char int_fast8_t;
689typedef short int_fast16_t;
690typedef int int_fast32_t;
691typedef long long int int_fast64_t;
692typedef unsigned char uint_fast8_t;
693typedef unsigned short uint_fast16_t;
694typedef unsigned int uint_fast32_t;
695typedef long long unsigned int uint_fast64_t;
696
697typedef int intptr_t;
698typedef unsigned int uintptr_t;
699
700typedef long long int intmax_t;
701typedef long long unsigned int uintmax_t;
702# 16 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" 2
703# 25 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h"
704typedef union
705{
706 uint16_t w;
707 int16_t sw;
708 uint8_t b[2];
709 int8_t sb[2];
710} bword_t;
711
712
713
714typedef struct
715{
716
717 uint16_t device_type;
718 uint16_t reserved0;
719 uint32_t sn;
720
721 uint16_t fw_revision_major;
722 uint16_t fw_revision_minor;
723
724 uint16_t fw_revision_revision;
725 uint16_t reserved1;
726
727 uint32_t baudrate;
728
729 uint16_t parityMode;
730 uint16_t stopBit;
731
732 uint16_t slave_address;
733 uint16_t command;
734
735 uint16_t ibn_day;
736 uint16_t ibn_month;
737 uint16_t ibn_year;
738 uint16_t user_id;
739 uint16_t reserved2[8];
740
741
742 uint16_t lvpStart;
743 uint16_t lvpStop;
744
745 uint16_t ovpStart;
746 uint16_t ovpStop;
747
748 int16_t loadCurrentLimit;
749 int16_t chargeCurrentLimit;
750
751
752 int16_t chargeStopHighTemperatureStart;
753 int16_t chargeStopHighTemperatureStop;
754
755 int16_t chargeStopLowTemperatureStart;
756 int16_t chargeStopLowTemperatureStop;
757
758 int16_t dischargeStopHighTemperatureStart;
759 int16_t dischargeStopHighTemperatureStop;
760
761 int16_t dischargeStopLowTemperatureStart;
762 int16_t dischargeStopLowTemperatureStop;
763
764
765
766 uint16_t peukert;
767 uint16_t cef;
768
769 uint16_t iBatFull;
770 uint16_t tBatFull;
771
772 uint16_t uBatFull;
773 uint16_t uBatEmpty;
774 uint32_t cellCapacity;
775 uint32_t battEnergy;
776 uint16_t socCalcMode;
777 uint16_t reserved3;
778 uint16_t cellRatedDischargeTime;
779 int16_t uBatEmptyCompStartTemp;
780 int16_t uBatEmptyCompStopTemp;
781 uint16_t uBatEmptyCompStopVolt;
782 int16_t extraDischargeStrom_mA;
783 uint16_t cefW;
784 uint16_t lvpMode;
785 uint16_t ovpMode;
786
787
788 int32_t batteryCurrentOffset;
789 int16_t batteryCurrentOffsetRefTemperatureShunt;
790 int16_t batteryCurrentOffsetRefTemperatureChip;
791 int32_t batteryCurrentOffsetRefshuntVoltage;
792
793 int32_t batteryCurrentOffsetCommonModeCalibrationVoltage;
794 int32_t batteryCurrentOffsetCommonModeCompensationFactor;
795
796 int16_t batteryCurrentOffsetTemperatureCalibrationTemperature;
797 int16_t reserved4;
798 int32_t batteryCurrentOffsetTemperatureCompensationFactor;
799
800 int32_t batteryCurrentGainCorrectionFaktor;
801 int16_t batteryCurrentGainRefTempShunt;
802 int16_t batteryCurrentGainRefTempChip;
803 int32_t batteryCurrentGainRefCurrent;
804
805 int16_t batteryCurrentGainTemperatureCalibrationShuntTemperature;
806 int16_t reserved5;
807 int32_t batteryCurrentGainTemperatureCompensationShuntFactor;
808 int16_t batteryCurrentGainTemperatureCalibrationChipTemperature;
809 int16_t reserved6;
810 int32_t batteryCurrentGainTemperatureCompensationChipFactor;
811
812 uint32_t reserved7[6];
813
814} device_parameter_t;
815
816
817
818typedef struct
819{
820              uint16_t voltageVref;
821              uint16_t realVdd;
822              int16_t chipTemperature;
823              int16_t shuntTemperature;
824              int16_t shuntTemperatureMax;
825              int16_t shuntTemperatureMin;
826              uint32_t shuntVoltage;
827              int32_t batteryVoltage;
828              int32_t batteryVoltageMax;
829              int32_t batteryVoltageMin;
830              int32_t batteryCurrent;
831              int32_t batteryCurrentMax;
832              int32_t batteryCurrentMin;
833              int32_t batteryCurrentCorrected;
834              int32_t mAhCounter;
835              int64_t mAsCounter;
836              int32_t soc;
837              int16_t ovpState;
838              int16_t lvpState;
839              int32_t batteryPower;
840              int32_t detectedCapacity;
841              int32_t detectedEnergy;
842              int16_t SoH;
843              int16_t efficiency;
844              int16_t selfDischarge;
845              int16_t selfDischargeAvg;
846              int16_t esr;
847              int16_t esr_fast;
848              uint32_t lastTimeVbatFull;
849              uint32_t lastTimeVbatEmpty;
850              uint32_t onTime;
851              uint32_t dischargeTotalAh;
852              uint32_t chargeTotalAh;
853              uint32_t dischargeTotalWh;
854              uint32_t chargeTotalWh;
855              uint16_t fullCyclesCnt;
856              uint16_t reserved8;
857              int64_t mAs_AutoMode;
858              int64_t mWs_AutoMode;
859              uint16_t ovp_sense;
860              uint16_t lvp_sense;
861              uint16_t reserved9;
862              uint16_t reserved10;
863              uint16_t reserved11;
864              uint16_t reserved12;
865              uint16_t reserved13;
866              uint16_t reserved14;
867              uint16_t reserved15;
868              uint16_t reserved16;
869              uint16_t reserved17;
870              uint16_t reserved18;
871
872
873              int32_t mAh_AutoMode;
874              int32_t mWh_AutoMode;
875              int64_t mWsCounter;
876              int32_t mWhCounter;
877              int32_t correctedStromForChargeWhCnt;
878              uint16_t uBatEmptyTempComp;
879              uint16_t adc_restarts;
880              int16_t reserved19;
881              int16_t reserved20;
882              int32_t battryCurrentRaw;
883              int32_t batteryCurrentOffsetCommonModeCorrectionADCSteps;
884              int32_t fast_current;
885              int32_t fast_voltage;
886              int16_t esrCalcStatus;
887              uint16_t esrCalcTime;
888              int16_t selfDischargeStatus;
889              uint16_t selfDischargeTime;
890              uint8_t message[24];
891              int32_t current_buffer[32];
892              int32_t voltage_buffer[32];
893              int32_t current_buffer_fast[32];
894              int32_t voltage_buffer_fast[32];
895
896} device_values_t;
897
898
899
900typedef struct
901{
902 device_parameter_t parameter;
903 device_values_t values;
904} sys_data_struct_t;
905
906
907typedef volatile union
908{
909 sys_data_struct_t s;
910 bword_t mb[sizeof(sys_data_struct_t) / 2];
911} sys_data_t;
912
913
914
915extern sys_data_t sys_data;
916
917
918
919void SYS_DATA_Init(void);
920# 3 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\efficiency.c" 2
921# 1 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\efficiency.h" 1
922# 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\inttypes.h" 1 3
923# 2 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\efficiency.h" 2
924
925int16_t EFFICIENCY_Exec(void);
926# 4 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\efficiency.c" 2
927
928int16_t EFFICIENCY_Exec(void)
929{
930
931  if (sys_data.s.values.fullCyclesCnt < 1)
932  {
933    return -1;
934  }
935
936
937  double tmp = (double) sys_data.s.values.dischargeTotalWh / sys_data.s.values.chargeTotalWh;
938  return tmp * 100;
939
940
941}
Note: See TracBrowser for help on using the repository browser.