[6] | 1 | # 1 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\esr.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\\esr.c" 2 |
---|
| 8 | |
---|
| 9 | |
---|
| 10 | # 1 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" 1 |
---|
| 11 | # 15 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" |
---|
| 12 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 1 3 |
---|
| 13 | # 20 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 3 |
---|
| 14 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 1 3 |
---|
| 15 | # 17 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 |
---|
| 16 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_ConfDefaults.h" 1 3 |
---|
| 17 | # 67 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_ConfDefaults.h" 3 |
---|
| 18 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Conf.h" 1 3 |
---|
| 19 | # 35 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Conf.h" 3 |
---|
| 20 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 1 3 |
---|
| 21 | # 748 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3 |
---|
| 22 | static __inline__ __attribute__((__always_inline__)) void __SEGGER_RTL_WR_PARTIAL_WORD_func(char *addr, unsigned w, int n) { |
---|
| 23 | switch (n) { |
---|
| 24 | default: addr[3] = (-1) > 0 ? w : w >> 24; |
---|
| 25 | case 3: addr[2] = (-1) > 0 ? w >> 8 : w >> 16; |
---|
| 26 | case 2: addr[1] = (-1) > 0 ? w >> 16 : w >> 8; |
---|
| 27 | case 1: addr[0] = (-1) > 0 ? w >> 24 : w; |
---|
| 28 | case 0: ; |
---|
| 29 | } |
---|
| 30 | } |
---|
| 31 | |
---|
| 32 | static __inline__ __attribute__((__always_inline__)) void __SEGGER_RTL_WR_WORD_func(char *addr, unsigned w) { |
---|
| 33 | __SEGGER_RTL_WR_PARTIAL_WORD_func(addr, w, 4); |
---|
| 34 | } |
---|
| 35 | |
---|
| 36 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_RD_WORD_func(const void *addr) { |
---|
| 37 | const unsigned char *pAddr = (const unsigned char *)addr; |
---|
| 38 | |
---|
| 39 | return pAddr[0] * ((-1) > 0 ? 0x1000000u : 0x1u) + |
---|
| 40 | pAddr[1] * ((-1) > 0 ? 0x10000u : 0x100u) + |
---|
| 41 | pAddr[2] * ((-1) > 0 ? 0x100u : 0x10000u) + |
---|
| 42 | pAddr[3] * ((-1) > 0 ? 0x1u : 0x1000000u); |
---|
| 43 | } |
---|
| 44 | |
---|
| 45 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_BYTE_PATTERN_func(unsigned x) { |
---|
| 46 | return x * 0x01010101uL; |
---|
| 47 | } |
---|
| 48 | |
---|
| 49 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_FILL_HEAD_func(const void *pOrigin, unsigned Word, unsigned Standin) { |
---|
| 50 | unsigned Mask; |
---|
| 51 | unsigned Fill; |
---|
| 52 | |
---|
| 53 | (void)pOrigin; |
---|
| 54 | |
---|
| 55 | Fill = __SEGGER_RTL_BYTE_PATTERN_func(Standin); |
---|
| 56 | # 792 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3 |
---|
| 57 | Mask = 0xFFFFFFFFu; |
---|
| 58 | Mask <<= 8 * (((unsigned)(pOrigin)) & 3u); |
---|
| 59 | |
---|
| 60 | return (Word & Mask) | (Fill & ~Mask); |
---|
| 61 | |
---|
| 62 | |
---|
| 63 | } |
---|
| 64 | |
---|
| 65 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_FILL_TAIL_func(unsigned n, unsigned Word, unsigned Standin) { |
---|
| 66 | unsigned Mask; |
---|
| 67 | unsigned Fill; |
---|
| 68 | # 817 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3 |
---|
| 69 | if (n >= 4) { |
---|
| 70 | return Word; |
---|
| 71 | } else { |
---|
| 72 | Fill = __SEGGER_RTL_BYTE_PATTERN_func(Standin); |
---|
| 73 | Mask = 0xFFFFFFFFu << (8 * n); |
---|
| 74 | |
---|
| 75 | return (Fill & Mask) | (Word & ~Mask); |
---|
| 76 | } |
---|
| 77 | |
---|
| 78 | |
---|
| 79 | } |
---|
| 80 | |
---|
| 81 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_ZBYTE_CHECK_func(unsigned x) { |
---|
| 82 | |
---|
| 83 | |
---|
| 84 | |
---|
| 85 | |
---|
| 86 | |
---|
| 87 | |
---|
| 88 | |
---|
| 89 | return ((x-0x01010101u) & ~x & 0x80808080u); |
---|
| 90 | |
---|
| 91 | |
---|
| 92 | } |
---|
| 93 | |
---|
| 94 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_DIFF_INDEX_func(unsigned x, unsigned y) { |
---|
| 95 | # 866 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3 |
---|
| 96 | if ((x & 0x000000FFuL) != (y & 0x000000FFuL)) { return 0; } |
---|
| 97 | if ((x & 0x0000FF00uL) != (y & 0x0000FF00uL)) { return 1; } |
---|
| 98 | if ((x & 0x00FF0000uL) != (y & 0x00FF0000uL)) { return 2; } |
---|
| 99 | if ((x & 0xFF000000uL) != (y & 0xFF000000uL)) { return 3; } |
---|
| 100 | return 4; |
---|
| 101 | |
---|
| 102 | |
---|
| 103 | } |
---|
| 104 | |
---|
| 105 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_DIFF_BYTE_func(unsigned x, int Index) { |
---|
| 106 | |
---|
| 107 | |
---|
| 108 | |
---|
| 109 | return (x >> (8*Index)) & 0xFF; |
---|
| 110 | |
---|
| 111 | } |
---|
| 112 | |
---|
| 113 | static __inline__ __attribute__((__always_inline__)) unsigned __SEGGER_RTL_ZBYTE_INDEX_func(unsigned x) { |
---|
| 114 | # 919 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3 |
---|
| 115 | if ((x & 0x000000FFuL) == 0) { return 0; } |
---|
| 116 | if ((x & 0x0000FF00uL) == 0) { return 1; } |
---|
| 117 | if ((x & 0x00FF0000uL) == 0) { return 2; } |
---|
| 118 | if ((x & 0xFF000000uL) == 0) { return 3; } |
---|
| 119 | return 4; |
---|
| 120 | |
---|
| 121 | |
---|
| 122 | } |
---|
| 123 | |
---|
| 124 | static __inline__ __attribute__((__always_inline__)) _Bool __SEGGER_RTL_atomic_is_lock_free(unsigned size, const volatile void *ptr) { |
---|
| 125 | switch (size) { |
---|
| 126 | case 1: return 1; |
---|
| 127 | case 2: return ((unsigned)ptr & 1) == 0; |
---|
| 128 | case 4: return ((unsigned)ptr & 3) == 0; |
---|
| 129 | default: return 0; |
---|
| 130 | } |
---|
| 131 | } |
---|
| 132 | # 946 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Arm_Conf.h" 3 |
---|
| 133 | extern const int __aeabi_SIGABRT; |
---|
| 134 | extern const int __aeabi_SIGINT; |
---|
| 135 | extern const int __aeabi_SIGILL; |
---|
| 136 | extern const int __aeabi_SIGFPE; |
---|
| 137 | extern const int __aeabi_SIGSEGV; |
---|
| 138 | extern const int __aeabi_SIGTERM; |
---|
| 139 | |
---|
| 140 | void __aeabi_SIG_DFL(int sig); |
---|
| 141 | void __aeabi_SIG_IGN(int sig); |
---|
| 142 | void __aeabi_SIG_ERR(int sig); |
---|
| 143 | # 36 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_Conf.h" 2 3 |
---|
| 144 | # 68 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL_ConfDefaults.h" 2 3 |
---|
| 145 | # 18 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 2 3 |
---|
| 146 | # 38 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 |
---|
| 147 | typedef struct __SEGGER_RTL_FILE_impl __SEGGER_RTL_FILE; |
---|
| 148 | |
---|
| 149 | |
---|
| 150 | typedef struct __SEGGER_RTL_locale_data_s __SEGGER_RTL_locale_t; |
---|
| 151 | typedef struct __SEGGER_RTL_locale_codeset_s __SEGGER_RTL_locale_codeset_t; |
---|
| 152 | |
---|
| 153 | typedef struct { |
---|
| 154 | |
---|
| 155 | |
---|
| 156 | |
---|
| 157 | const char * decimal_point; |
---|
| 158 | const char * thousands_sep; |
---|
| 159 | const char * grouping; |
---|
| 160 | |
---|
| 161 | const char * int_curr_symbol; |
---|
| 162 | const char * currency_symbol; |
---|
| 163 | const char * mon_decimal_point; |
---|
| 164 | const char * mon_thousands_sep; |
---|
| 165 | const char * mon_grouping; |
---|
| 166 | const char * positive_sign; |
---|
| 167 | const char * negative_sign; |
---|
| 168 | |
---|
| 169 | char int_frac_digits; |
---|
| 170 | char frac_digits; |
---|
| 171 | char p_cs_precedes; |
---|
| 172 | char p_sep_by_space; |
---|
| 173 | char n_cs_precedes; |
---|
| 174 | char n_sep_by_space; |
---|
| 175 | char p_sign_posn; |
---|
| 176 | char n_sign_posn; |
---|
| 177 | char int_p_cs_precedes; |
---|
| 178 | char int_n_cs_precedes; |
---|
| 179 | char int_p_sep_by_space; |
---|
| 180 | char int_n_sep_by_space; |
---|
| 181 | char int_p_sign_posn; |
---|
| 182 | char int_n_sign_posn; |
---|
| 183 | |
---|
| 184 | |
---|
| 185 | |
---|
| 186 | |
---|
| 187 | const char *day_names; |
---|
| 188 | const char *abbrev_day_names; |
---|
| 189 | const char *month_names; |
---|
| 190 | const char *abbrev_month_names; |
---|
| 191 | const char *am_pm_indicator; |
---|
| 192 | const char *date_format; |
---|
| 193 | const char *time_format; |
---|
| 194 | const char *date_time_format; |
---|
| 195 | } __SEGGER_RTL_locale_data_t; |
---|
| 196 | |
---|
| 197 | struct __SEGGER_RTL_locale_data_s { |
---|
| 198 | const char * name; |
---|
| 199 | const __SEGGER_RTL_locale_data_t * data; |
---|
| 200 | const __SEGGER_RTL_locale_codeset_t * codeset; |
---|
| 201 | }; |
---|
| 202 | |
---|
| 203 | struct __SEGGER_RTL_POSIX_locale_s { |
---|
| 204 | const __SEGGER_RTL_locale_t *__category[5]; |
---|
| 205 | }; |
---|
| 206 | |
---|
| 207 | struct timeval; |
---|
| 208 | # 107 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 |
---|
| 209 | extern struct __SEGGER_RTL_POSIX_locale_s __SEGGER_RTL_global_locale; |
---|
| 210 | extern struct __SEGGER_RTL_POSIX_locale_s * __SEGGER_RTL_locale_ptr; |
---|
| 211 | extern char * __SEGGER_RTL_locale_name_buffer; |
---|
| 212 | # 118 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 |
---|
| 213 | extern const __SEGGER_RTL_locale_t __SEGGER_RTL_c_locale; |
---|
| 214 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_1; |
---|
| 215 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_2; |
---|
| 216 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_3; |
---|
| 217 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_4; |
---|
| 218 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_5; |
---|
| 219 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_6; |
---|
| 220 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_7; |
---|
| 221 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_8; |
---|
| 222 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_9; |
---|
| 223 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_10; |
---|
| 224 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_11; |
---|
| 225 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_13; |
---|
| 226 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_14; |
---|
| 227 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_15; |
---|
| 228 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_iso8859_16; |
---|
| 229 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1250; |
---|
| 230 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1251; |
---|
| 231 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1252; |
---|
| 232 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1253; |
---|
| 233 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1254; |
---|
| 234 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1255; |
---|
| 235 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1256; |
---|
| 236 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1257; |
---|
| 237 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_cp1258; |
---|
| 238 | |
---|
| 239 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_c_locale_data; |
---|
| 240 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_aa_DJ_locale; |
---|
| 241 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_aa_ER_locale; |
---|
| 242 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_aa_ET_locale; |
---|
| 243 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_af_NA_locale; |
---|
| 244 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_af_ZA_locale; |
---|
| 245 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ak_GH_locale; |
---|
| 246 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_am_ET_locale; |
---|
| 247 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_AE_locale; |
---|
| 248 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_BH_locale; |
---|
| 249 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_DZ_locale; |
---|
| 250 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_EG_locale; |
---|
| 251 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_IQ_locale; |
---|
| 252 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_JO_locale; |
---|
| 253 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_KW_locale; |
---|
| 254 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_LB_locale; |
---|
| 255 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_LY_locale; |
---|
| 256 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_MA_locale; |
---|
| 257 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_OM_locale; |
---|
| 258 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_QA_locale; |
---|
| 259 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_SA_locale; |
---|
| 260 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_SD_locale; |
---|
| 261 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_SY_locale; |
---|
| 262 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_TN_locale; |
---|
| 263 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ar_YE_locale; |
---|
| 264 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_as_IN_locale; |
---|
| 265 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_asa_TZ_locale; |
---|
| 266 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_Arab_IR_locale; |
---|
| 267 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_AZ_locale; |
---|
| 268 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_Cyrl_AZ_locale; |
---|
| 269 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_IR_locale; |
---|
| 270 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_az_Latn_AZ_locale; |
---|
| 271 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_be_BY_locale; |
---|
| 272 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bem_ZM_locale; |
---|
| 273 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bez_TZ_locale; |
---|
| 274 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bg_BG_locale; |
---|
| 275 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bm_ML_locale; |
---|
| 276 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bn_BD_locale; |
---|
| 277 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bn_IN_locale; |
---|
| 278 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bo_CN_locale; |
---|
| 279 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bo_IN_locale; |
---|
| 280 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_br_FR_locale; |
---|
| 281 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_brx_IN_locale; |
---|
| 282 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_bs_BA_locale; |
---|
| 283 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_byn_ER_locale; |
---|
| 284 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ca_ES_locale; |
---|
| 285 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cch_NG_locale; |
---|
| 286 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cgg_UG_locale; |
---|
| 287 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_chr_US_locale; |
---|
| 288 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cs_CZ_locale; |
---|
| 289 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_cy_GB_locale; |
---|
| 290 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_da_DK_locale; |
---|
| 291 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_dav_KE_locale; |
---|
| 292 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_AT_locale; |
---|
| 293 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_BE_locale; |
---|
| 294 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_CH_locale; |
---|
| 295 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_DE_locale; |
---|
| 296 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_LI_locale; |
---|
| 297 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_de_LU_locale; |
---|
| 298 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_dv_MV_locale; |
---|
| 299 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_dz_BT_locale; |
---|
| 300 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ebu_KE_locale; |
---|
| 301 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ee_GH_locale; |
---|
| 302 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ee_TG_locale; |
---|
| 303 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_el_CY_locale; |
---|
| 304 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_el_GR_locale; |
---|
| 305 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_AS_locale; |
---|
| 306 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_AU_locale; |
---|
| 307 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_BE_locale; |
---|
| 308 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_BW_locale; |
---|
| 309 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_BZ_locale; |
---|
| 310 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_CA_locale; |
---|
| 311 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_Dsrt_US_locale; |
---|
| 312 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_GB_locale; |
---|
| 313 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_GU_locale; |
---|
| 314 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_HK_locale; |
---|
| 315 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_IE_locale; |
---|
| 316 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_IN_locale; |
---|
| 317 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_JM_locale; |
---|
| 318 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MH_locale; |
---|
| 319 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MP_locale; |
---|
| 320 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MT_locale; |
---|
| 321 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_MU_locale; |
---|
| 322 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_NA_locale; |
---|
| 323 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_NZ_locale; |
---|
| 324 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_PH_locale; |
---|
| 325 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_PK_locale; |
---|
| 326 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_SG_locale; |
---|
| 327 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_TT_locale; |
---|
| 328 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_UM_locale; |
---|
| 329 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_US_locale; |
---|
| 330 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_US_POSIX_locale; |
---|
| 331 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_VI_locale; |
---|
| 332 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_ZA_locale; |
---|
| 333 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_ZW_locale; |
---|
| 334 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_en_ZZ_locale; |
---|
| 335 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_AR_locale; |
---|
| 336 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_BO_locale; |
---|
| 337 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_CL_locale; |
---|
| 338 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_CO_locale; |
---|
| 339 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_CR_locale; |
---|
| 340 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_DO_locale; |
---|
| 341 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_EC_locale; |
---|
| 342 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_ES_locale; |
---|
| 343 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_GQ_locale; |
---|
| 344 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_GT_locale; |
---|
| 345 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_HN_locale; |
---|
| 346 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_MX_locale; |
---|
| 347 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_NI_locale; |
---|
| 348 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PA_locale; |
---|
| 349 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PE_locale; |
---|
| 350 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PR_locale; |
---|
| 351 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_PY_locale; |
---|
| 352 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_SV_locale; |
---|
| 353 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_US_locale; |
---|
| 354 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_UY_locale; |
---|
| 355 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_es_VE_locale; |
---|
| 356 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_et_EE_locale; |
---|
| 357 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_eu_ES_locale; |
---|
| 358 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fa_AF_locale; |
---|
| 359 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fa_IR_locale; |
---|
| 360 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ff_SN_locale; |
---|
| 361 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fi_FI_locale; |
---|
| 362 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fil_PH_locale; |
---|
| 363 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fo_FO_locale; |
---|
| 364 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BE_locale; |
---|
| 365 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BF_locale; |
---|
| 366 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BI_locale; |
---|
| 367 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BJ_locale; |
---|
| 368 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_BL_locale; |
---|
| 369 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CA_locale; |
---|
| 370 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CD_locale; |
---|
| 371 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CF_locale; |
---|
| 372 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CG_locale; |
---|
| 373 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CH_locale; |
---|
| 374 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CI_locale; |
---|
| 375 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_CM_locale; |
---|
| 376 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_DJ_locale; |
---|
| 377 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_FR_locale; |
---|
| 378 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GA_locale; |
---|
| 379 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GN_locale; |
---|
| 380 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GP_locale; |
---|
| 381 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_GQ_locale; |
---|
| 382 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_KM_locale; |
---|
| 383 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_LU_locale; |
---|
| 384 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MC_locale; |
---|
| 385 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MF_locale; |
---|
| 386 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MG_locale; |
---|
| 387 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_ML_locale; |
---|
| 388 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_MQ_locale; |
---|
| 389 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_NE_locale; |
---|
| 390 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_RE_locale; |
---|
| 391 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_RW_locale; |
---|
| 392 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_SN_locale; |
---|
| 393 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_TD_locale; |
---|
| 394 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fr_TG_locale; |
---|
| 395 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_fur_IT_locale; |
---|
| 396 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ga_IE_locale; |
---|
| 397 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gaa_GH_locale; |
---|
| 398 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gez_ER_locale; |
---|
| 399 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gez_ET_locale; |
---|
| 400 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gl_ES_locale; |
---|
| 401 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gsw_CH_locale; |
---|
| 402 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gu_IN_locale; |
---|
| 403 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_guz_KE_locale; |
---|
| 404 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_gv_GB_locale; |
---|
| 405 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Arab_NG_locale; |
---|
| 406 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Arab_SD_locale; |
---|
| 407 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_GH_locale; |
---|
| 408 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Latn_GH_locale; |
---|
| 409 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Latn_NE_locale; |
---|
| 410 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_Latn_NG_locale; |
---|
| 411 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_NE_locale; |
---|
| 412 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_NG_locale; |
---|
| 413 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ha_SD_locale; |
---|
| 414 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_haw_US_locale; |
---|
| 415 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_he_IL_locale; |
---|
| 416 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hi_IN_locale; |
---|
| 417 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hr_HR_locale; |
---|
| 418 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hu_HU_locale; |
---|
| 419 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_hy_AM_locale; |
---|
| 420 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_id_ID_locale; |
---|
| 421 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ig_NG_locale; |
---|
| 422 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ii_CN_locale; |
---|
| 423 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_is_IS_locale; |
---|
| 424 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_it_CH_locale; |
---|
| 425 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_it_IT_locale; |
---|
| 426 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ja_JP_locale; |
---|
| 427 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_jmc_TZ_locale; |
---|
| 428 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ka_GE_locale; |
---|
| 429 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kab_DZ_locale; |
---|
| 430 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kaj_NG_locale; |
---|
| 431 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kam_KE_locale; |
---|
| 432 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kcg_NG_locale; |
---|
| 433 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kde_TZ_locale; |
---|
| 434 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kea_CV_locale; |
---|
| 435 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kfo_CI_locale; |
---|
| 436 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_khq_ML_locale; |
---|
| 437 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ki_KE_locale; |
---|
| 438 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kk_Cyrl_KZ_locale; |
---|
| 439 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kk_KZ_locale; |
---|
| 440 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kl_GL_locale; |
---|
| 441 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kln_KE_locale; |
---|
| 442 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_km_KH_locale; |
---|
| 443 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kn_IN_locale; |
---|
| 444 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ko_KR_locale; |
---|
| 445 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kok_IN_locale; |
---|
| 446 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kpe_GN_locale; |
---|
| 447 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kpe_LR_locale; |
---|
| 448 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ksb_TZ_locale; |
---|
| 449 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ksh_DE_locale; |
---|
| 450 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Arab_IQ_locale; |
---|
| 451 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Arab_IR_locale; |
---|
| 452 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_IQ_locale; |
---|
| 453 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_IR_locale; |
---|
| 454 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Latn_SY_locale; |
---|
| 455 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_Latn_TR_locale; |
---|
| 456 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_SY_locale; |
---|
| 457 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ku_TR_locale; |
---|
| 458 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_kw_GB_locale; |
---|
| 459 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ky_KG_locale; |
---|
| 460 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lag_TZ_locale; |
---|
| 461 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lg_UG_locale; |
---|
| 462 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ln_CD_locale; |
---|
| 463 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ln_CG_locale; |
---|
| 464 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lo_LA_locale; |
---|
| 465 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lt_LT_locale; |
---|
| 466 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_luo_KE_locale; |
---|
| 467 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_luy_KE_locale; |
---|
| 468 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_lv_LV_locale; |
---|
| 469 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mas_KE_locale; |
---|
| 470 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mas_TZ_locale; |
---|
| 471 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mer_KE_locale; |
---|
| 472 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mfe_MU_locale; |
---|
| 473 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mg_MG_locale; |
---|
| 474 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mi_NZ_locale; |
---|
| 475 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mk_MK_locale; |
---|
| 476 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ml_IN_locale; |
---|
| 477 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_CN_locale; |
---|
| 478 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_Cyrl_MN_locale; |
---|
| 479 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_MN_locale; |
---|
| 480 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mn_Mong_CN_locale; |
---|
| 481 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mr_IN_locale; |
---|
| 482 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ms_BN_locale; |
---|
| 483 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ms_MY_locale; |
---|
| 484 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_mt_MT_locale; |
---|
| 485 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_my_MM_locale; |
---|
| 486 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_naq_NA_locale; |
---|
| 487 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nb_NO_locale; |
---|
| 488 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nd_ZW_locale; |
---|
| 489 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nds_DE_locale; |
---|
| 490 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ne_IN_locale; |
---|
| 491 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ne_NP_locale; |
---|
| 492 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nl_BE_locale; |
---|
| 493 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nl_NL_locale; |
---|
| 494 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nn_NO_locale; |
---|
| 495 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nr_ZA_locale; |
---|
| 496 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nso_ZA_locale; |
---|
| 497 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ny_MW_locale; |
---|
| 498 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_nyn_UG_locale; |
---|
| 499 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_oc_FR_locale; |
---|
| 500 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_om_ET_locale; |
---|
| 501 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_om_KE_locale; |
---|
| 502 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_or_IN_locale; |
---|
| 503 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_Arab_PK_locale; |
---|
| 504 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_Guru_IN_locale; |
---|
| 505 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_IN_locale; |
---|
| 506 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pa_PK_locale; |
---|
| 507 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pl_PL_locale; |
---|
| 508 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ps_AF_locale; |
---|
| 509 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_AO_locale; |
---|
| 510 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_BR_locale; |
---|
| 511 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_GW_locale; |
---|
| 512 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_MZ_locale; |
---|
| 513 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_pt_PT_locale; |
---|
| 514 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rm_CH_locale; |
---|
| 515 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ro_MD_locale; |
---|
| 516 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ro_RO_locale; |
---|
| 517 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rof_TZ_locale; |
---|
| 518 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ru_MD_locale; |
---|
| 519 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ru_RU_locale; |
---|
| 520 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ru_UA_locale; |
---|
| 521 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rw_RW_locale; |
---|
| 522 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_rwk_TZ_locale; |
---|
| 523 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sa_IN_locale; |
---|
| 524 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_saq_KE_locale; |
---|
| 525 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_se_FI_locale; |
---|
| 526 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_se_NO_locale; |
---|
| 527 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_seh_MZ_locale; |
---|
| 528 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ses_ML_locale; |
---|
| 529 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sg_CF_locale; |
---|
| 530 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sh_BA_locale; |
---|
| 531 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sh_CS_locale; |
---|
| 532 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sh_YU_locale; |
---|
| 533 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_shi_Latn_MA_locale; |
---|
| 534 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_shi_MA_locale; |
---|
| 535 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_shi_Tfng_MA_locale; |
---|
| 536 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_si_LK_locale; |
---|
| 537 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sid_ET_locale; |
---|
| 538 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sk_SK_locale; |
---|
| 539 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sl_SI_locale; |
---|
| 540 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sn_ZW_locale; |
---|
| 541 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_DJ_locale; |
---|
| 542 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_ET_locale; |
---|
| 543 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_KE_locale; |
---|
| 544 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_so_SO_locale; |
---|
| 545 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sq_AL_locale; |
---|
| 546 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_BA_locale; |
---|
| 547 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_CS_locale; |
---|
| 548 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_BA_locale; |
---|
| 549 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_CS_locale; |
---|
| 550 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_ME_locale; |
---|
| 551 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_RS_locale; |
---|
| 552 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Cyrl_YU_locale; |
---|
| 553 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_BA_locale; |
---|
| 554 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_CS_locale; |
---|
| 555 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_ME_locale; |
---|
| 556 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_RS_locale; |
---|
| 557 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_Latn_YU_locale; |
---|
| 558 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_ME_locale; |
---|
| 559 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_RS_locale; |
---|
| 560 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sr_YU_locale; |
---|
| 561 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ss_SZ_locale; |
---|
| 562 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ss_ZA_locale; |
---|
| 563 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ssy_ER_locale; |
---|
| 564 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_st_LS_locale; |
---|
| 565 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_st_ZA_locale; |
---|
| 566 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sv_FI_locale; |
---|
| 567 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sv_SE_locale; |
---|
| 568 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sw_KE_locale; |
---|
| 569 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_sw_TZ_locale; |
---|
| 570 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_syr_SY_locale; |
---|
| 571 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ta_IN_locale; |
---|
| 572 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ta_LK_locale; |
---|
| 573 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_te_IN_locale; |
---|
| 574 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_teo_KE_locale; |
---|
| 575 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_teo_UG_locale; |
---|
| 576 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tg_Cyrl_TJ_locale; |
---|
| 577 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tg_TJ_locale; |
---|
| 578 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_th_TH_locale; |
---|
| 579 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ti_ER_locale; |
---|
| 580 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ti_ET_locale; |
---|
| 581 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tig_ER_locale; |
---|
| 582 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tl_PH_locale; |
---|
| 583 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tn_ZA_locale; |
---|
| 584 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_to_TO_locale; |
---|
| 585 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tr_TR_locale; |
---|
| 586 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_trv_TW_locale; |
---|
| 587 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ts_ZA_locale; |
---|
| 588 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tt_RU_locale; |
---|
| 589 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tzm_Latn_MA_locale; |
---|
| 590 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_tzm_MA_locale; |
---|
| 591 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ug_Arab_CN_locale; |
---|
| 592 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ug_CN_locale; |
---|
| 593 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uk_UA_locale; |
---|
| 594 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ur_IN_locale; |
---|
| 595 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ur_PK_locale; |
---|
| 596 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_AF_locale; |
---|
| 597 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_Arab_AF_locale; |
---|
| 598 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_Cyrl_UZ_locale; |
---|
| 599 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_Latn_UZ_locale; |
---|
| 600 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_uz_UZ_locale; |
---|
| 601 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_ve_ZA_locale; |
---|
| 602 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_vi_VN_locale; |
---|
| 603 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_vun_TZ_locale; |
---|
| 604 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_wal_ET_locale; |
---|
| 605 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_wo_Latn_SN_locale; |
---|
| 606 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_wo_SN_locale; |
---|
| 607 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_xh_ZA_locale; |
---|
| 608 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_xog_UG_locale; |
---|
| 609 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_yo_NG_locale; |
---|
| 610 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_CN_locale; |
---|
| 611 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_CN_locale; |
---|
| 612 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_HK_locale; |
---|
| 613 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_MO_locale; |
---|
| 614 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hans_SG_locale; |
---|
| 615 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hant_HK_locale; |
---|
| 616 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hant_MO_locale; |
---|
| 617 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_Hant_TW_locale; |
---|
| 618 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_HK_locale; |
---|
| 619 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_MO_locale; |
---|
| 620 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_SG_locale; |
---|
| 621 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zh_TW_locale; |
---|
| 622 | extern const __SEGGER_RTL_locale_data_t __SEGGER_RTL_zu_ZA_locale; |
---|
| 623 | |
---|
| 624 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_ascii; |
---|
| 625 | extern const __SEGGER_RTL_locale_codeset_t __SEGGER_RTL_codeset_utf8; |
---|
| 626 | |
---|
| 627 | extern const char __SEGGER_RTL_data_utf8_period []; |
---|
| 628 | extern const char __SEGGER_RTL_data_utf8_comma []; |
---|
| 629 | extern const char __SEGGER_RTL_data_utf8_space []; |
---|
| 630 | extern const char __SEGGER_RTL_data_utf8_plus []; |
---|
| 631 | extern const char __SEGGER_RTL_data_utf8_minus []; |
---|
| 632 | extern const char __SEGGER_RTL_data_empty_string[]; |
---|
| 633 | # 546 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 |
---|
| 634 | int __SEGGER_RTL_X_set_time_of_day (const struct timeval *__tp); |
---|
| 635 | int __SEGGER_RTL_X_get_time_of_day (struct timeval *__tp); |
---|
| 636 | const __SEGGER_RTL_locale_t * __SEGGER_RTL_X_find_locale (const char *__locale); |
---|
| 637 | __SEGGER_RTL_FILE * __SEGGER_RTL_X_file_open (const char *__filename, const char *__mode); |
---|
| 638 | __SEGGER_RTL_FILE * __SEGGER_RTL_X_file_dopen (int __descriptor, const char *__mode); |
---|
| 639 | int __SEGGER_RTL_X_file_stat (__SEGGER_RTL_FILE *__stream); |
---|
| 640 | int __SEGGER_RTL_X_file_read (__SEGGER_RTL_FILE *__stream, char *__s, unsigned __len); |
---|
| 641 | int __SEGGER_RTL_X_file_write (__SEGGER_RTL_FILE *__stream, const char *__s, unsigned __len); |
---|
| 642 | int __SEGGER_RTL_X_file_unget (__SEGGER_RTL_FILE *__stream, int __c); |
---|
| 643 | int __SEGGER_RTL_X_file_close (__SEGGER_RTL_FILE *__stream); |
---|
| 644 | int __SEGGER_RTL_X_file_error (__SEGGER_RTL_FILE *__stream); |
---|
| 645 | int __SEGGER_RTL_X_file_flush (__SEGGER_RTL_FILE *__stream); |
---|
| 646 | int __SEGGER_RTL_X_file_eof (__SEGGER_RTL_FILE *__stream); |
---|
| 647 | void __SEGGER_RTL_X_file_clrerr (__SEGGER_RTL_FILE *__stream); |
---|
| 648 | int __SEGGER_RTL_X_file_seek (__SEGGER_RTL_FILE *__stream, long __offset, int __whence); |
---|
| 649 | int __SEGGER_RTL_X_file_getpos (__SEGGER_RTL_FILE *__stream, long *__pos); |
---|
| 650 | int __SEGGER_RTL_X_file_bufsize (__SEGGER_RTL_FILE *__stream); |
---|
| 651 | __SEGGER_RTL_FILE * __SEGGER_RTL_X_file_tmpfile (void); |
---|
| 652 | char * __SEGGER_RTL_X_file_tmpnam (char *__s, unsigned __max); |
---|
| 653 | int __SEGGER_RTL_X_file_remove (const char *__filename); |
---|
| 654 | int __SEGGER_RTL_X_file_rename (const char *__old, const char *__new); |
---|
| 655 | void __attribute__((__weak__)) __SEGGER_RTL_X_heap_lock (void); |
---|
| 656 | void __attribute__((__weak__)) __SEGGER_RTL_X_heap_unlock (void); |
---|
| 657 | int __attribute__((__weak__)) __SEGGER_RTL_X_atomic_lock (void); |
---|
| 658 | void __attribute__((__weak__)) __SEGGER_RTL_X_atomic_unlock (int __state); |
---|
| 659 | int __attribute__((__weak__)) __SEGGER_RTL_X_atomic_is_lock_free (unsigned int __size, void *__ptr); |
---|
| 660 | void __attribute__((__weak__)) __SEGGER_RTL_X_atomic_synchronize (void); |
---|
| 661 | volatile int * __aeabi_errno_addr (void); |
---|
| 662 | void __aeabi_assert (const char *__expression, const char *__filename, int __line); |
---|
| 663 | # 584 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 |
---|
| 664 | void __SEGGER_RTL_execute_at_exit_fns (void); |
---|
| 665 | void __SEGGER_RTL_set_locale_name_buffer (char *__buffer); |
---|
| 666 | int __SEGGER_RTL_mb_max (const struct __SEGGER_RTL_POSIX_locale_s *__loc); |
---|
| 667 | int __SEGGER_RTL_mb_cur_max (void); |
---|
| 668 | void __SEGGER_RTL_init_heap (void *__ptr, unsigned int __size); |
---|
| 669 | # 21 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 2 3 |
---|
| 670 | # 272 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 3 |
---|
| 671 | typedef signed char int8_t; |
---|
| 672 | typedef unsigned char uint8_t; |
---|
| 673 | typedef short int16_t; |
---|
| 674 | typedef unsigned short uint16_t; |
---|
| 675 | typedef int int32_t; |
---|
| 676 | typedef unsigned int uint32_t; |
---|
| 677 | typedef long long int int64_t; |
---|
| 678 | typedef long long unsigned int uint64_t; |
---|
| 679 | |
---|
| 680 | typedef signed char int_least8_t; |
---|
| 681 | typedef short int_least16_t; |
---|
| 682 | typedef int int_least32_t; |
---|
| 683 | typedef long long int int_least64_t; |
---|
| 684 | typedef unsigned char uint_least8_t; |
---|
| 685 | typedef unsigned short uint_least16_t; |
---|
| 686 | typedef unsigned int uint_least32_t; |
---|
| 687 | typedef long long unsigned int uint_least64_t; |
---|
| 688 | |
---|
| 689 | typedef signed char int_fast8_t; |
---|
| 690 | typedef short int_fast16_t; |
---|
| 691 | typedef int int_fast32_t; |
---|
| 692 | typedef long long int int_fast64_t; |
---|
| 693 | typedef unsigned char uint_fast8_t; |
---|
| 694 | typedef unsigned short uint_fast16_t; |
---|
| 695 | typedef unsigned int uint_fast32_t; |
---|
| 696 | typedef long long unsigned int uint_fast64_t; |
---|
| 697 | |
---|
| 698 | typedef int intptr_t; |
---|
| 699 | typedef unsigned int uintptr_t; |
---|
| 700 | |
---|
| 701 | typedef long long int intmax_t; |
---|
| 702 | typedef long long unsigned int uintmax_t; |
---|
| 703 | # 16 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" 2 |
---|
| 704 | # 25 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" |
---|
| 705 | typedef union |
---|
| 706 | { |
---|
| 707 | uint16_t w; |
---|
| 708 | int16_t sw; |
---|
| 709 | uint8_t b[2]; |
---|
| 710 | int8_t sb[2]; |
---|
| 711 | } bword_t; |
---|
| 712 | |
---|
| 713 | |
---|
| 714 | |
---|
| 715 | typedef struct |
---|
| 716 | { |
---|
| 717 | |
---|
| 718 | uint16_t device_type; |
---|
| 719 | uint16_t reserved0; |
---|
| 720 | uint32_t sn; |
---|
| 721 | |
---|
| 722 | uint16_t fw_revision_major; |
---|
| 723 | uint16_t fw_revision_minor; |
---|
| 724 | |
---|
| 725 | uint16_t fw_revision_revision; |
---|
| 726 | uint16_t reserved1; |
---|
| 727 | |
---|
| 728 | uint32_t baudrate; |
---|
| 729 | |
---|
| 730 | uint16_t parityMode; |
---|
| 731 | uint16_t stopBit; |
---|
| 732 | |
---|
| 733 | uint16_t slave_address; |
---|
| 734 | uint16_t command; |
---|
| 735 | |
---|
| 736 | uint16_t ibn_day; |
---|
| 737 | uint16_t ibn_month; |
---|
| 738 | uint16_t ibn_year; |
---|
| 739 | uint16_t user_id; |
---|
| 740 | uint16_t reserved2[8]; |
---|
| 741 | |
---|
| 742 | |
---|
| 743 | uint16_t lvpStart; |
---|
| 744 | uint16_t lvpStop; |
---|
| 745 | |
---|
| 746 | uint16_t ovpStart; |
---|
| 747 | uint16_t ovpStop; |
---|
| 748 | |
---|
| 749 | int16_t loadCurrentLimit; |
---|
| 750 | int16_t chargeCurrentLimit; |
---|
| 751 | |
---|
| 752 | |
---|
| 753 | int16_t chargeStopHighTemperatureStart; |
---|
| 754 | int16_t chargeStopHighTemperatureStop; |
---|
| 755 | |
---|
| 756 | int16_t chargeStopLowTemperatureStart; |
---|
| 757 | int16_t chargeStopLowTemperatureStop; |
---|
| 758 | |
---|
| 759 | int16_t dischargeStopHighTemperatureStart; |
---|
| 760 | int16_t dischargeStopHighTemperatureStop; |
---|
| 761 | |
---|
| 762 | int16_t dischargeStopLowTemperatureStart; |
---|
| 763 | int16_t dischargeStopLowTemperatureStop; |
---|
| 764 | |
---|
| 765 | |
---|
| 766 | |
---|
| 767 | uint16_t peukert; |
---|
| 768 | uint16_t cef; |
---|
| 769 | |
---|
| 770 | uint16_t iBatFull; |
---|
| 771 | uint16_t tBatFull; |
---|
| 772 | |
---|
| 773 | uint16_t uBatFull; |
---|
| 774 | uint16_t uBatEmpty; |
---|
| 775 | uint32_t cellCapacity; |
---|
| 776 | uint32_t battEnergy; |
---|
| 777 | uint16_t socCalcMode; |
---|
| 778 | uint16_t reserved3; |
---|
| 779 | uint16_t cellRatedDischargeTime; |
---|
| 780 | int16_t uBatEmptyCompStartTemp; |
---|
| 781 | int16_t uBatEmptyCompStopTemp; |
---|
| 782 | uint16_t uBatEmptyCompStopVolt; |
---|
| 783 | int16_t extraDischargeStrom_mA; |
---|
| 784 | uint16_t cefW; |
---|
| 785 | uint16_t lvpMode; |
---|
| 786 | uint16_t ovpMode; |
---|
| 787 | |
---|
| 788 | |
---|
| 789 | int32_t batteryCurrentOffset; |
---|
| 790 | int16_t batteryCurrentOffsetRefTemperatureShunt; |
---|
| 791 | int16_t batteryCurrentOffsetRefTemperatureChip; |
---|
| 792 | int32_t batteryCurrentOffsetRefshuntVoltage; |
---|
| 793 | |
---|
| 794 | int32_t batteryCurrentOffsetCommonModeCalibrationVoltage; |
---|
| 795 | int32_t batteryCurrentOffsetCommonModeCompensationFactor; |
---|
| 796 | |
---|
| 797 | int16_t batteryCurrentOffsetTemperatureCalibrationTemperature; |
---|
| 798 | int16_t reserved4; |
---|
| 799 | int32_t batteryCurrentOffsetTemperatureCompensationFactor; |
---|
| 800 | |
---|
| 801 | int32_t batteryCurrentGainCorrectionFaktor; |
---|
| 802 | int16_t batteryCurrentGainRefTempShunt; |
---|
| 803 | int16_t batteryCurrentGainRefTempChip; |
---|
| 804 | int32_t batteryCurrentGainRefCurrent; |
---|
| 805 | |
---|
| 806 | int16_t batteryCurrentGainTemperatureCalibrationShuntTemperature; |
---|
| 807 | int16_t reserved5; |
---|
| 808 | int32_t batteryCurrentGainTemperatureCompensationShuntFactor; |
---|
| 809 | int16_t batteryCurrentGainTemperatureCalibrationChipTemperature; |
---|
| 810 | int16_t reserved6; |
---|
| 811 | int32_t batteryCurrentGainTemperatureCompensationChipFactor; |
---|
| 812 | |
---|
| 813 | uint32_t reserved7[6]; |
---|
| 814 | |
---|
| 815 | } device_parameter_t; |
---|
| 816 | |
---|
| 817 | |
---|
| 818 | |
---|
| 819 | typedef struct |
---|
| 820 | { |
---|
| 821 | uint16_t voltageVref; |
---|
| 822 | uint16_t realVdd; |
---|
| 823 | int16_t chipTemperature; |
---|
| 824 | int16_t shuntTemperature; |
---|
| 825 | int16_t shuntTemperatureMax; |
---|
| 826 | int16_t shuntTemperatureMin; |
---|
| 827 | uint32_t shuntVoltage; |
---|
| 828 | int32_t batteryVoltage; |
---|
| 829 | int32_t batteryVoltageMax; |
---|
| 830 | int32_t batteryVoltageMin; |
---|
| 831 | int32_t batteryCurrent; |
---|
| 832 | int32_t batteryCurrentMax; |
---|
| 833 | int32_t batteryCurrentMin; |
---|
| 834 | int32_t batteryCurrentCorrected; |
---|
| 835 | int32_t mAhCounter; |
---|
| 836 | int64_t mAsCounter; |
---|
| 837 | int32_t soc; |
---|
| 838 | int16_t ovpState; |
---|
| 839 | int16_t lvpState; |
---|
| 840 | int32_t batteryPower; |
---|
| 841 | int32_t detectedCapacity; |
---|
| 842 | int32_t detectedEnergy; |
---|
| 843 | int16_t SoH; |
---|
| 844 | int16_t efficiency; |
---|
| 845 | int16_t selfDischarge; |
---|
| 846 | int16_t selfDischargeAvg; |
---|
| 847 | int16_t esr; |
---|
| 848 | int16_t esr_fast; |
---|
| 849 | uint32_t lastTimeVbatFull; |
---|
| 850 | uint32_t lastTimeVbatEmpty; |
---|
| 851 | uint32_t onTime; |
---|
| 852 | uint32_t dischargeTotalAh; |
---|
| 853 | uint32_t chargeTotalAh; |
---|
| 854 | uint32_t dischargeTotalWh; |
---|
| 855 | uint32_t chargeTotalWh; |
---|
| 856 | uint16_t fullCyclesCnt; |
---|
| 857 | uint16_t reserved8; |
---|
| 858 | int64_t mAs_AutoMode; |
---|
| 859 | int64_t mWs_AutoMode; |
---|
| 860 | uint16_t ovp_sense; |
---|
| 861 | uint16_t lvp_sense; |
---|
| 862 | uint16_t reserved9; |
---|
| 863 | uint16_t reserved10; |
---|
| 864 | uint16_t reserved11; |
---|
| 865 | uint16_t reserved12; |
---|
| 866 | uint16_t reserved13; |
---|
| 867 | uint16_t reserved14; |
---|
| 868 | uint16_t reserved15; |
---|
| 869 | uint16_t reserved16; |
---|
| 870 | uint16_t reserved17; |
---|
| 871 | uint16_t reserved18; |
---|
| 872 | |
---|
| 873 | |
---|
| 874 | int32_t mAh_AutoMode; |
---|
| 875 | int32_t mWh_AutoMode; |
---|
| 876 | int64_t mWsCounter; |
---|
| 877 | int32_t mWhCounter; |
---|
| 878 | int32_t correctedStromForChargeWhCnt; |
---|
| 879 | uint16_t uBatEmptyTempComp; |
---|
| 880 | uint16_t adc_restarts; |
---|
| 881 | int16_t reserved19; |
---|
| 882 | int16_t reserved20; |
---|
| 883 | int32_t battryCurrentRaw; |
---|
| 884 | int32_t batteryCurrentOffsetCommonModeCorrectionADCSteps; |
---|
| 885 | int32_t fast_current; |
---|
| 886 | int32_t fast_voltage; |
---|
| 887 | int16_t esrCalcStatus; |
---|
| 888 | uint16_t esrCalcTime; |
---|
| 889 | int16_t selfDischargeStatus; |
---|
| 890 | uint16_t selfDischargeTime; |
---|
| 891 | uint8_t message[24]; |
---|
| 892 | int32_t current_buffer[32]; |
---|
| 893 | int32_t voltage_buffer[32]; |
---|
| 894 | int32_t current_buffer_fast[32]; |
---|
| 895 | int32_t voltage_buffer_fast[32]; |
---|
| 896 | |
---|
| 897 | } device_values_t; |
---|
| 898 | |
---|
| 899 | |
---|
| 900 | |
---|
| 901 | typedef struct |
---|
| 902 | { |
---|
| 903 | device_parameter_t parameter; |
---|
| 904 | device_values_t values; |
---|
| 905 | } sys_data_struct_t; |
---|
| 906 | |
---|
| 907 | |
---|
| 908 | typedef volatile union |
---|
| 909 | { |
---|
| 910 | sys_data_struct_t s; |
---|
| 911 | bword_t mb[sizeof(sys_data_struct_t) / 2]; |
---|
| 912 | } sys_data_t; |
---|
| 913 | |
---|
| 914 | |
---|
| 915 | |
---|
| 916 | extern sys_data_t sys_data; |
---|
| 917 | |
---|
| 918 | |
---|
| 919 | |
---|
| 920 | void SYS_DATA_Init(void); |
---|
| 921 | # 4 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\esr.c" 2 |
---|
| 922 | # 1 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\esr.h" 1 |
---|
| 923 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\inttypes.h" 1 3 |
---|
| 924 | # 2 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\esr.h" 2 |
---|
| 925 | |
---|
| 926 | int16_t ESR_Exec(void); |
---|
| 927 | int16_t ESR_FAST_Exec(void); |
---|
| 928 | # 5 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\esr.c" 2 |
---|
| 929 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdlib.h" 1 3 |
---|
| 930 | # 39 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdlib.h" 3 |
---|
| 931 | typedef unsigned int size_t; |
---|
| 932 | |
---|
| 933 | |
---|
| 934 | |
---|
| 935 | |
---|
| 936 | typedef unsigned int wchar_t; |
---|
| 937 | |
---|
| 938 | |
---|
| 939 | |
---|
| 940 | |
---|
| 941 | typedef struct __SEGGER_RTL_POSIX_locale_s *locale_t; |
---|
| 942 | # 64 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdlib.h" 3 |
---|
| 943 | typedef struct { |
---|
| 944 | int quot; |
---|
| 945 | int rem; |
---|
| 946 | } div_t; |
---|
| 947 | |
---|
| 948 | typedef struct { |
---|
| 949 | long quot; |
---|
| 950 | long rem; |
---|
| 951 | } ldiv_t; |
---|
| 952 | |
---|
| 953 | typedef struct { |
---|
| 954 | long long quot; |
---|
| 955 | long rem; |
---|
| 956 | } lldiv_t; |
---|
| 957 | # 86 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdlib.h" 3 |
---|
| 958 | int abs (int __j); |
---|
| 959 | int at_quick_exit (void (*__func)(void)); |
---|
| 960 | long int labs (long int __j); |
---|
| 961 | long long int llabs (long long int __j); |
---|
| 962 | div_t div (int __numer, int __denom); |
---|
| 963 | ldiv_t ldiv (long int __numer, long int __denom); |
---|
| 964 | lldiv_t lldiv (long long int __numer, long long int __denom); |
---|
| 965 | void * malloc (size_t __size); |
---|
| 966 | void * aligned_alloc (size_t alignment, size_t __size); |
---|
| 967 | void * calloc (size_t __nobj, size_t __size); |
---|
| 968 | void * realloc (void *__p, size_t __size); |
---|
| 969 | void free (void *__p); |
---|
| 970 | double atof (const char *__nptr); |
---|
| 971 | double strtod (const char *__nptr, char **__endptr); |
---|
| 972 | float strtof (const char *__nptr, char **__endptr); |
---|
| 973 | long double strtold (const char *__nptr, char **__endptr); |
---|
| 974 | int atoi (const char *__nptr); |
---|
| 975 | long int atol (const char *__nptr); |
---|
| 976 | long long int atoll (const char *__nptr); |
---|
| 977 | long int strtol (const char *__nptr, char **__endptr, int __base); |
---|
| 978 | long long int strtoll (const char *__nptr, char **__endptr, int __base); |
---|
| 979 | unsigned long int strtoul (const char *__nptr, char **__endptr, int __base); |
---|
| 980 | unsigned long long int strtoull (const char *__nptr, char **__endptr, int __base); |
---|
| 981 | int rand (void); |
---|
| 982 | void srand (unsigned int __seed); |
---|
| 983 | void * bsearch (const void *__key, const void *__buf, size_t __num, size_t __size, int (*__compare)(const void *, const void *)); |
---|
| 984 | void qsort (void *__buf, size_t __num, size_t __size, int (*__compare)(const void *, const void *)); |
---|
| 985 | int atexit (void (*__func)(void)); |
---|
| 986 | char * getenv (const char *__name); |
---|
| 987 | int system (const char *__command); |
---|
| 988 | char * itoa (int __val, char *__buf, int __radix); |
---|
| 989 | char * utoa (unsigned val, char *buf, int radix); |
---|
| 990 | char * ltoa (long __val, char *__buf, int __radix); |
---|
| 991 | char * ultoa (unsigned long __val, char *__buf, int __radix); |
---|
| 992 | char * lltoa (long long __val, char *__buf, int __radix); |
---|
| 993 | char * ulltoa (unsigned long long __val, char *__buf, int __radix); |
---|
| 994 | int mblen (const char *__s, size_t __n); |
---|
| 995 | int mblen_l (const char *__s, size_t __n, locale_t __loc); |
---|
| 996 | size_t mbstowcs (wchar_t *__pwcs, const char *__s, size_t __n); |
---|
| 997 | size_t mbstowcs_l (wchar_t *__pwcs, const char *__s, size_t __n, locale_t __loc); |
---|
| 998 | int mbtowc (wchar_t *__pwc, const char *__s, size_t __n); |
---|
| 999 | int mbtowc_l (wchar_t *__pwc, const char *__s, size_t __n, locale_t __loc); |
---|
| 1000 | int wctomb (char *__s, wchar_t __wc); |
---|
| 1001 | int wctomb_l (char *__s, wchar_t __wc, locale_t __loc); |
---|
| 1002 | size_t wcstombs (char *__s, const wchar_t *__pwcs, size_t __n); |
---|
| 1003 | size_t wcstombs_l (char *__s, const wchar_t *__pwcs, size_t __n, locale_t __loc); |
---|
| 1004 | |
---|
| 1005 | _Noreturn void abort (void); |
---|
| 1006 | _Noreturn void exit (int __exit_code); |
---|
| 1007 | _Noreturn void _Exit (int __exit_code); |
---|
| 1008 | _Noreturn void quick_exit (int __exit_code); |
---|
| 1009 | # 6 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\esr.c" 2 |
---|
| 1010 | # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 1 3 |
---|
| 1011 | # 77 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 |
---|
| 1012 | typedef long fpos_t; |
---|
| 1013 | |
---|
| 1014 | |
---|
| 1015 | |
---|
| 1016 | |
---|
| 1017 | typedef struct __SEGGER_RTL_FILE_impl FILE; |
---|
| 1018 | # 97 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 |
---|
| 1019 | extern FILE *stdin; |
---|
| 1020 | extern FILE *stdout; |
---|
| 1021 | extern FILE *stderr; |
---|
| 1022 | # 108 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 |
---|
| 1023 | int putchar (int __c); |
---|
| 1024 | int getchar (void); |
---|
| 1025 | int puts (const char *__s); |
---|
| 1026 | char * gets (char *__s); |
---|
| 1027 | int sprintf (char *__s, const char *__format, ...); |
---|
| 1028 | int sprintf_l (char *__s, locale_t __loc, const char *__format, ...); |
---|
| 1029 | int snprintf (char *__s, size_t __n, const char *__format, ...); |
---|
| 1030 | int snprintf_l (char *__s, size_t __n, locale_t __loc, const char *__format, ...); |
---|
| 1031 | int vsnprintf (char *__s, size_t __n, const char *__format, __builtin_va_list __arg); |
---|
| 1032 | int vsnprintf_l (char *__s, size_t __n, locale_t __loc, const char *__format, __builtin_va_list __arg); |
---|
| 1033 | int printf (const char *__format, ...); |
---|
| 1034 | int printf_l (locale_t __loc, const char *__format, ...); |
---|
| 1035 | int vprintf (const char *__format, __builtin_va_list __arg); |
---|
| 1036 | int vprintf_l (locale_t __loc, const char *__format, __builtin_va_list __arg); |
---|
| 1037 | int vsprintf (char *__s, const char *__format, __builtin_va_list __arg); |
---|
| 1038 | int vsprintf_l (char *__s, locale_t __loc, const char *__format, __builtin_va_list __arg); |
---|
| 1039 | int vasprintf (char **__strp, const char *__format, __builtin_va_list __ap); |
---|
| 1040 | int vasprintf_l (char **__strp, locale_t __loc, const char *__format, __builtin_va_list __ap); |
---|
| 1041 | int asprintf (char **__strp, const char *__format, ...); |
---|
| 1042 | int asprintf_l (char **__strp, locale_t __loc, const char *__format, ...); |
---|
| 1043 | |
---|
| 1044 | int scanf (const char *__format, ...); |
---|
| 1045 | int scanf_l (locale_t __loc, const char *__format, ...); |
---|
| 1046 | int sscanf (const char *__s, const char *__format, ...); |
---|
| 1047 | int sscanf_l (const char *__s, locale_t __loc, const char *__format, ...); |
---|
| 1048 | int vscanf (const char *__format, __builtin_va_list __arg); |
---|
| 1049 | int vscanf_l (locale_t __loc, const char *__format, __builtin_va_list __arg); |
---|
| 1050 | int vsscanf (const char *__s, const char *__format, __builtin_va_list __arg); |
---|
| 1051 | int vsscanf_l (const char *__s, locale_t __loc, const char *__format, __builtin_va_list __arg); |
---|
| 1052 | |
---|
| 1053 | void clearerr (FILE *); |
---|
| 1054 | int fclose (FILE *); |
---|
| 1055 | int feof (FILE *); |
---|
| 1056 | int ferror (FILE *); |
---|
| 1057 | int fflush (FILE *); |
---|
| 1058 | int fgetc (FILE *); |
---|
| 1059 | int fgetpos (FILE *, fpos_t *); |
---|
| 1060 | char * fgets (char *, int, FILE *); |
---|
| 1061 | int fileno (FILE *); |
---|
| 1062 | FILE * fopen (const char *, const char *); |
---|
| 1063 | int fprintf (FILE *, const char *, ...); |
---|
| 1064 | int fprintf_l (FILE *, locale_t, const char *, ...); |
---|
| 1065 | int vfprintf (FILE *__stream, const char *__format, __builtin_va_list __arg); |
---|
| 1066 | int vfprintf_l (FILE *__stream, locale_t loc, const char *__format, __builtin_va_list __arg); |
---|
| 1067 | int fputc (int, FILE *); |
---|
| 1068 | int fputs (const char *, FILE *); |
---|
| 1069 | size_t fread (void *, size_t, size_t, FILE *); |
---|
| 1070 | FILE * freopen (const char *, const char *, FILE *); |
---|
| 1071 | int fscanf (FILE *, const char *, ...); |
---|
| 1072 | int fscanf_l (FILE *, locale_t, const char *, ...); |
---|
| 1073 | int vfscanf (FILE *, const char *, __builtin_va_list); |
---|
| 1074 | int vfscanf_l (FILE *, locale_t, const char *, __builtin_va_list); |
---|
| 1075 | int fseek (FILE *, long, int); |
---|
| 1076 | int fsetpos (FILE *, const fpos_t *); |
---|
| 1077 | long ftell (FILE *); |
---|
| 1078 | size_t fwrite (const void *, size_t, size_t, FILE *); |
---|
| 1079 | int getc (FILE *); |
---|
| 1080 | void perror (const char *); |
---|
| 1081 | int putc (int, FILE *); |
---|
| 1082 | int remove (const char *); |
---|
| 1083 | int rename (const char *, const char *); |
---|
| 1084 | void rewind (FILE *); |
---|
| 1085 | void setbuf (FILE *, char *); |
---|
| 1086 | int setvbuf (FILE *, char *, int, size_t); |
---|
| 1087 | FILE * tmpfile (void); |
---|
| 1088 | char * tmpnam (char *); |
---|
| 1089 | int ungetc (int, FILE *); |
---|
| 1090 | |
---|
| 1091 | |
---|
| 1092 | |
---|
| 1093 | |
---|
| 1094 | |
---|
| 1095 | int dprintf (int, const char *, ...); |
---|
| 1096 | int vdprintf (int, const char *, __builtin_va_list); |
---|
| 1097 | FILE * fdopen (int, const char *); |
---|
| 1098 | # 7 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\esr.c" 2 |
---|
| 1099 | |
---|
| 1100 | |
---|
| 1101 | int32_t current_buffer[32]; |
---|
| 1102 | int32_t voltage_buffer[32]; |
---|
| 1103 | int32_t current_buffer_fast[32]; |
---|
| 1104 | int32_t voltage_buffer_fast[32]; |
---|
| 1105 | |
---|
| 1106 | |
---|
| 1107 | int16_t ESR_Exec(void) |
---|
| 1108 | { |
---|
| 1109 | |
---|
| 1110 | |
---|
| 1111 | static int32_t last_refresh; |
---|
| 1112 | int x; |
---|
| 1113 | |
---|
| 1114 | |
---|
| 1115 | sys_data.s.values.esrCalcTime = sys_data.s.values.onTime - last_refresh; |
---|
| 1116 | |
---|
| 1117 | for (x=32 -1; x>0; x--) |
---|
| 1118 | { |
---|
| 1119 | current_buffer[x] = current_buffer[x-1]; |
---|
| 1120 | voltage_buffer[x] = voltage_buffer[x-1]; |
---|
| 1121 | } |
---|
| 1122 | |
---|
| 1123 | |
---|
| 1124 | current_buffer[0] = sys_data.s.values.batteryCurrent; |
---|
| 1125 | voltage_buffer[0] = sys_data.s.values.batteryVoltage; |
---|
| 1126 | |
---|
| 1127 | |
---|
| 1128 | |
---|
| 1129 | int32_t minU=2147483647; |
---|
| 1130 | int32_t maxU=0; |
---|
| 1131 | int32_t minI=2147483647; |
---|
| 1132 | int32_t maxI=0; |
---|
| 1133 | int32_t minIPos = -1; |
---|
| 1134 | int32_t maxdIPos = -1; |
---|
| 1135 | int32_t minUPos = -1; |
---|
| 1136 | int32_t maxUPos = -1; |
---|
| 1137 | |
---|
| 1138 | |
---|
| 1139 | for (x=0; x < 32; x++) |
---|
| 1140 | { |
---|
| 1141 | if (abs(current_buffer[x]) < minI) { minI = abs(current_buffer[x]); minIPos = x; } |
---|
| 1142 | if (abs(current_buffer[x]) >= maxI) { maxI = abs(current_buffer[x]); maxdIPos = x; } |
---|
| 1143 | if (abs(voltage_buffer[x]) < minU) { minU = abs(voltage_buffer[x]); minUPos = x; } |
---|
| 1144 | if (abs(voltage_buffer[x]) > maxU) { maxU = abs(voltage_buffer[x]); maxUPos = x; } |
---|
| 1145 | } |
---|
| 1146 | |
---|
| 1147 | |
---|
| 1148 | |
---|
| 1149 | |
---|
| 1150 | |
---|
| 1151 | int32_t dI = abs (maxI - minI); |
---|
| 1152 | int32_t dU = abs (maxU - minU); |
---|
| 1153 | |
---|
| 1154 | |
---|
| 1155 | |
---|
| 1156 | |
---|
| 1157 | int32_t min_dI; |
---|
| 1158 | min_dI = sys_data.s.parameter.cellCapacity / sys_data.s.parameter.cellRatedDischargeTime; |
---|
| 1159 | min_dI = min_dI / 20 ; |
---|
| 1160 | |
---|
| 1161 | int32_t min_dU = 25; |
---|
| 1162 | |
---|
| 1163 | if( dI < min_dI) |
---|
| 1164 | { |
---|
| 1165 | |
---|
| 1166 | return -1; |
---|
| 1167 | } |
---|
| 1168 | |
---|
| 1169 | |
---|
| 1170 | |
---|
| 1171 | if (dU < min_dU) { |
---|
| 1172 | return -2; |
---|
| 1173 | } |
---|
| 1174 | |
---|
| 1175 | |
---|
| 1176 | |
---|
| 1177 | |
---|
| 1178 | int32_t dIMax=-1; |
---|
| 1179 | int32_t dIx=-1;; |
---|
| 1180 | int32_t dIMaxPos=-1; |
---|
| 1181 | |
---|
| 1182 | for (x=0; x < (32 -1); x++) |
---|
| 1183 | { |
---|
| 1184 | dIx = abs(current_buffer[x+1] - current_buffer[x]); |
---|
| 1185 | if (dIx > dIMax) { dIMax = dIx; dIMaxPos = x; } |
---|
| 1186 | } |
---|
| 1187 | |
---|
| 1188 | |
---|
| 1189 | |
---|
| 1190 | if (dIMaxPos == 32 / 2) |
---|
| 1191 | { |
---|
| 1192 | |
---|
| 1193 | sys_data.s.values.esr = ( (double)dU / (double) dI) * 1000; |
---|
| 1194 | last_refresh = sys_data.s.values.onTime; |
---|
| 1195 | |
---|
| 1196 | |
---|
| 1197 | for (x=0; x < 32; x++) |
---|
| 1198 | { |
---|
| 1199 | sys_data.s.values.current_buffer[(32 -1)-x] = current_buffer[x]; |
---|
| 1200 | sys_data.s.values.voltage_buffer[(32 -1)-x] = voltage_buffer[x]; |
---|
| 1201 | } |
---|
| 1202 | |
---|
| 1203 | |
---|
| 1204 | |
---|
| 1205 | } |
---|
| 1206 | return 0; |
---|
| 1207 | } |
---|
| 1208 | |
---|
| 1209 | |
---|
| 1210 | int16_t ESR_FAST_Exec(void) |
---|
| 1211 | { |
---|
| 1212 | |
---|
| 1213 | |
---|
| 1214 | static int32_t last_refresh; |
---|
| 1215 | int x; |
---|
| 1216 | |
---|
| 1217 | |
---|
| 1218 | sys_data.s.values.esrCalcTime = sys_data.s.values.onTime - last_refresh; |
---|
| 1219 | |
---|
| 1220 | for (x=32 -1; x>0; x--) |
---|
| 1221 | { |
---|
| 1222 | current_buffer_fast[x] = current_buffer_fast[x-1]; |
---|
| 1223 | voltage_buffer_fast[x] = voltage_buffer_fast[x-1]; |
---|
| 1224 | } |
---|
| 1225 | |
---|
| 1226 | |
---|
| 1227 | current_buffer_fast[0] = sys_data.s.values.fast_current; |
---|
| 1228 | voltage_buffer_fast[0] = sys_data.s.values.shuntVoltage; |
---|
| 1229 | |
---|
| 1230 | |
---|
| 1231 | |
---|
| 1232 | int32_t minU=2147483647; |
---|
| 1233 | int32_t maxU=0; |
---|
| 1234 | int32_t minI=2147483647; |
---|
| 1235 | int32_t maxI=0; |
---|
| 1236 | int32_t minIPos = -1; |
---|
| 1237 | int32_t maxdIPos = -1; |
---|
| 1238 | int32_t minUPos = -1; |
---|
| 1239 | int32_t maxUPos = -1; |
---|
| 1240 | |
---|
| 1241 | |
---|
| 1242 | for (x=0; x < 32; x++) |
---|
| 1243 | { |
---|
| 1244 | if (abs(current_buffer_fast[x]) < minI) { minI = abs(current_buffer_fast[x]); minIPos = x; } |
---|
| 1245 | if (abs(current_buffer_fast[x]) >= maxI) { maxI = abs(current_buffer_fast[x]); maxdIPos = x; } |
---|
| 1246 | if (abs(voltage_buffer_fast[x]) < minU) { minU = abs(voltage_buffer_fast[x]); minUPos = x; } |
---|
| 1247 | if (abs(voltage_buffer_fast[x]) > maxU) { maxU = abs(voltage_buffer_fast[x]); maxUPos = x; } |
---|
| 1248 | } |
---|
| 1249 | |
---|
| 1250 | |
---|
| 1251 | |
---|
| 1252 | |
---|
| 1253 | |
---|
| 1254 | int32_t dI = abs (maxI - minI); |
---|
| 1255 | int32_t dU = abs (maxU - minU); |
---|
| 1256 | |
---|
| 1257 | |
---|
| 1258 | |
---|
| 1259 | |
---|
| 1260 | int32_t min_dI; |
---|
| 1261 | min_dI = sys_data.s.parameter.cellCapacity / sys_data.s.parameter.cellRatedDischargeTime; |
---|
| 1262 | min_dI = min_dI / 4 ; |
---|
| 1263 | |
---|
| 1264 | int32_t min_dU = 100; |
---|
| 1265 | |
---|
| 1266 | if( dI < min_dI) |
---|
| 1267 | { |
---|
| 1268 | |
---|
| 1269 | return -1; |
---|
| 1270 | } |
---|
| 1271 | |
---|
| 1272 | |
---|
| 1273 | |
---|
| 1274 | if (dU < min_dU) { |
---|
| 1275 | return -2; |
---|
| 1276 | } |
---|
| 1277 | |
---|
| 1278 | |
---|
| 1279 | |
---|
| 1280 | |
---|
| 1281 | int32_t dIMax=-1; |
---|
| 1282 | int32_t dIx=-1;; |
---|
| 1283 | int32_t dIMaxPos=-1; |
---|
| 1284 | |
---|
| 1285 | for (x=0; x < (32 -1); x++) |
---|
| 1286 | { |
---|
| 1287 | dIx = abs(current_buffer_fast[x+1] - current_buffer_fast[x]); |
---|
| 1288 | if (dIx > dIMax) { dIMax = dIx; dIMaxPos = x; } |
---|
| 1289 | } |
---|
| 1290 | |
---|
| 1291 | |
---|
| 1292 | |
---|
| 1293 | if (dIMaxPos == 32 / 2) |
---|
| 1294 | { |
---|
| 1295 | |
---|
| 1296 | sys_data.s.values.esr_fast = ( (double)dU / (double) dI) * 1000; |
---|
| 1297 | last_refresh = sys_data.s.values.onTime; |
---|
| 1298 | |
---|
| 1299 | |
---|
| 1300 | for (x=0; x < 32; x++) |
---|
| 1301 | { |
---|
| 1302 | sys_data.s.values.current_buffer_fast[(32 -1)-x] = current_buffer_fast[x]; |
---|
| 1303 | sys_data.s.values.voltage_buffer_fast[(32 -1)-x] = voltage_buffer_fast[x]; |
---|
| 1304 | } |
---|
| 1305 | |
---|
| 1306 | |
---|
| 1307 | |
---|
| 1308 | |
---|
| 1309 | } |
---|
| 1310 | return 0; |
---|
| 1311 | } |
---|