From cc432b761c884a0bd8e9d83db0a4e26109fc08b1 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 08 十一月 2024 15:35:38 +0800 Subject: [PATCH] 安邦手环GPS删除部分无用数据和修改4G波特率9600出厂测试固件 --- keil/include/components/libc/libc_rom.h | 556 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 556 insertions(+), 0 deletions(-) diff --git a/keil/include/components/libc/libc_rom.h b/keil/include/components/libc/libc_rom.h new file mode 100644 index 0000000..10e3a64 --- /dev/null +++ b/keil/include/components/libc/libc_rom.h @@ -0,0 +1,556 @@ +/* + * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and + * its subsidiaries and affiliates (collectly called MKSEMI). + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into an MKSEMI + * integrated circuit in a product or a software update for such product, + * must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of MKSEMI nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * MKSEMI integrated circuit. + * + * 5. Any software provided in binary form under this license must not be + * reverse engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY MKSEMI "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL MKSEMI OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef LIBC_ROM_H__ +#define LIBC_ROM_H__ +#include "stdint.h" +#include "stdbool.h" +#include "stdarg.h" + +#include "string.h" +#include "stdio.h" +#include "stdlib.h" +#include "math.h" + +#ifndef STD_LIBC + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void *(*__MEMCPY)(void *, const void *, size_t); +typedef void *(*__MEMMOVE)(void *, const void *, size_t); +typedef char *(*__STRCPY)(char *, const char *); +typedef char *(*__STRNCPY)(char *, const char *, size_t); +typedef char *(*__STRCAT)(char *, const char *); +typedef char *(*__STRNCAT)(char *, const char *, size_t); +typedef int (*__MEMCMP)(const void *, const void *, size_t); +typedef int (*__STRCMP)(const char *, const char *); +typedef int (*__STRNCMP)(const char *, const char *, size_t); +typedef int (*__STRCASECMP)(const char *, const char *); +typedef int (*__STRNCASECMP)(const char *, const char *, size_t); +typedef int (*__STRCOLL)(const char *, const char *); +typedef size_t (*__STRXFRM)(char *, const char *, size_t); +typedef void *(*__MEMCHR)(const void *, int, size_t); +typedef char *(*__STRCHR)(const char *, int); +typedef size_t (*__STRCSPN)(const char *, const char *); +typedef char *(*__STRPBRK)(const char *, const char *); +typedef char *(*__STRRCHR)(const char *, int); +typedef size_t (*__STRSPN)(const char *, const char *); +typedef char *(*__STRSTR)(const char *, const char *); +typedef char *(*__STRTOK)(char *, const char *); +typedef char *(*__STRTOK_R)(char *, const char *, char **); +typedef void *(*__MEMSET)(void *, int, size_t); +typedef char *(*__STRERROR)(int); +typedef size_t (*__STRLEN)(const char *); +typedef size_t (*__STRLCPY)(char *, const char *, size_t); +typedef size_t (*__STRLCAT)(char *, const char *, size_t); + +typedef int (*__PRINTF)(const char *, ...); +typedef int (*__SCANF)(const char *, ...); +typedef int (*__SPRINTF)(char *buf, const char *fmt, ...); +typedef int (*__SNPRINTF)(char *buf, size_t len, const char *fmt, ...); +typedef int (*__SSCANF)(const char *buf, const char *fmt, ...); +typedef int (*__VSPRINTF)(char *buf, const char *fmt, va_list ap); +typedef int (*__VSNPRINTF)(char *buf, size_t size, const char *fmt, va_list ap); +typedef int (*__VSSCANF)(const char *fp, const char *fmt0, va_list ap); + +typedef double (*__ATOF)(const char *); +typedef int (*__ATOI)(const char *); +typedef long int (*__ATOL)(const char *); +typedef long long (*__ATOLL)(const char *); +typedef double (*__STRTOD)(const char *, char **); +typedef float (*__STRTOF)(const char *, char **); +typedef long double (*__STRTOLD)(const char *, char **); +typedef long int (*__STRTOL)(const char *, char **, int); +typedef unsigned long int (*__STRTOUL)(const char *, char **, int); +typedef long long (*__STRTOLL)(const char *, char **, int); +typedef unsigned long long (*__STRTOULL)(const char *, char **, int); +typedef int (*__RAND)(void); +typedef void (*__SRAND)(unsigned int); +typedef void *(*__CALLOC)(size_t, size_t); +typedef void (*__FREE)(void *); +typedef void *(*__MALLOC)(size_t); +typedef void *(*__BSEARCH)(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); +typedef void (*__QSORT)(void *, size_t, size_t, int (*)(const void *, const void *)); +typedef int (*__ABS)(int); +typedef div_t (*__DIV)(int, int); +typedef long int (*__LABS)(long int); +typedef ldiv_t (*__LDIV)(long int, long int); +typedef long long (*__LLABS)(long long); +typedef lldiv_t (*__LLDIV)(long long, long long); +typedef int (*__MBLEN)(const char *, size_t); +typedef int (*__MBTOWC)(wchar_t *, const char *, size_t); +typedef int (*__WCTOMB)(char *, wchar_t); +typedef size_t (*__MBSTOWCS)(wchar_t *, const char *, size_t); +typedef size_t (*__WCSTOMBS)(char *, const wchar_t *, size_t); + +typedef double (*__ACOS)(double); +typedef double (*__ASIN)(double); +typedef double (*__ATAN)(double); +typedef double (*__ATAN2)(double, double); +typedef double (*__COS)(double); +typedef double (*__SIN)(double); +typedef double (*__TAN)(double); +typedef double (*__COSH)(double); +typedef double (*__SINH)(double); +typedef double (*__TANH)(double); +typedef double (*__EXP)(double); +typedef double (*__FREXP)(double, int *); +typedef double (*__LDEXP)(double, int); +typedef double (*__LOG)(double); +typedef double (*__LOG10)(double); +typedef double (*__MODF)(double, double *); +typedef double (*__POW)(double, double); +typedef double (*__SQRT)(double); +typedef double (*__CEIL)(double); +typedef double (*__FABS)(double); +typedef double (*__FLOOR)(double); +typedef double (*__FMOD)(double, double); +typedef double (*__ACOSH)(double); +typedef double (*__ASINH)(double); +typedef double (*__ATANH)(double); +typedef double (*__CBRT)(double); +typedef double (*__ERF)(double); +typedef double (*__ERFC)(double); +typedef double (*__EXPM1)(double); +typedef double (*__HYPOT)(double, double); +typedef int (*__ILOGB)(double); +typedef int (*__ILOGBF)(float); +typedef int (*__ILOGBL)(long double); +typedef double (*__LGAMMA)(double); +typedef double (*__LOG1P)(double); +typedef double (*__LOGB)(double); +typedef float (*__LOGBF)(float); +typedef long double (*__LOGBL)(long double); +typedef double (*__NEXTAFTER)(double, double); +typedef float (*__NEXTAFTERF)(float, float); +typedef long double (*__NEXTAFTERL)(long double, long double); +typedef double (*__NEXTTOWARD)(double, long double); +typedef float (*__NEXTTOWARDF)(float, long double); +typedef long double (*__NEXTTOWARDL)(long double, long double); +typedef double (*__REMAINDER)(double, double); +typedef double (*__RINT)(double); +typedef double (*__SCALBLN)(double, long int); +typedef float (*__SCALBLNF)(float, long int); +typedef long double (*__SCALBLNL)(long double, long int); +// typedef double (*__SCALBN)(double, int); +// typedef float (*__SCALBNF)(float, int); +typedef long double (*__SCALBNL)(long double, int); +typedef float (*__FABSF)(float); +typedef float (*__SINF)(float); +typedef float (*__COSF)(float); +typedef float (*__TANF)(float); +typedef float (*__ACOSF)(float); +typedef float (*__ASINF)(float); +typedef float (*__ATANF)(float); +typedef float (*__ATAN2F)(float, float); +typedef float (*__SINHF)(float); +typedef float (*__COSHF)(float); +typedef float (*__TANHF)(float); +typedef float (*__EXPF)(float); +typedef float (*__LOGF)(float); +typedef float (*__LOG10F)(float); +typedef float (*__POWF)(float, float); +typedef float (*__SQRTF)(float); +typedef float (*__LDEXPF)(float, int); +typedef float (*__FREXPF)(float, int *); +typedef float (*__CEILF)(float); +typedef float (*__FLOORF)(float); +typedef float (*__FMODF)(float, float); +typedef float (*__MODFF)(float, float *); + +/* C99 long double versions of functions. */ +typedef long double (*__ACOSL)(long double); +typedef long double (*__ASINL)(long double); +typedef long double (*__ATANL)(long double); +typedef long double (*__ATAN2L)(long double, long double); +typedef long double (*__CEILL)(long double); +typedef long double (*__COSL)(long double); +typedef long double (*__COSHL)(long double); +typedef long double (*__EXPL)(long double); +typedef long double (*__FABSL)(long double); +typedef long double (*__FLOORL)(long double); +typedef long double (*__FMODL)(long double, long double); +typedef long double (*__FREXPL)(long double, int *); +typedef long double (*__LDEXPL)(long double, int); +typedef long double (*__LOGL)(long double); +typedef long double (*__LOG10L)(long double); +typedef long double (*__MODFL)(long double, long double *); +typedef long double (*__POWL)(long double, long double); +typedef long double (*__SINL)(long double); +typedef long double (*__SINHL)(long double); +typedef long double (*__SQRTL)(long double); +typedef long double (*__TANL)(long double); +typedef long double (*__TANHL)(long double); + +typedef float (*__ACOSHF)(float); +typedef long double (*__ACOSHL)(long double); +typedef float (*__ASINHF)(float); +typedef long double (*__ASINHL)(long double); +typedef float (*__ATANHF)(float); +typedef long double (*__ATANHL)(long double); +typedef long double (*__COPYSIGNL)(long double, long double); +typedef float (*__CBRTF)(float); +typedef long double (*__CBRTL)(long double); +typedef float (*__ERFF)(float); +typedef long double (*__ERFL)(long double); +typedef float (*__ERFCF)(float); +typedef long double (*__ERFCL)(long double); +typedef float (*__EXPM1F)(float); +typedef long double (*__EXPM1L)(long double); +typedef float (*__LOG1PF)(float); +typedef long double (*__LOG1PL)(long double); +typedef float (*__HYPOTF)(float, float); +typedef long double (*__HYPOTL)(long double, long double); +typedef float (*__LGAMMAF)(float); +typedef long double (*__LGAMMAL)(long double); +typedef float (*__REMAINDERF)(float, float); +typedef long double (*__REMAINDERL)(long double, long double); +typedef float (*__RINTF)(float); +typedef long double (*__RINTL)(long double); + +typedef double (*__EXP2)(double); /* * 2.^x. */ +typedef float (*__EXP2F)(float); +typedef long double (*__EXP2L)(long double); +typedef double (*__FDIM)(double, double); +typedef float (*__FDIMF)(float, float); +typedef long double (*__FDIML)(long double, long double); + +typedef double (*__FMA)(double, double, double); +typedef float (*__FMAF)(float, float, float); + +typedef double (*__FMAX)(double, double); +typedef float (*__FMAXF)(float, float); +typedef long double (*__FMAXL)(long double, long double); +typedef double (*__FMIN)(double, double); +typedef float (*__FMINF)(float, float); +typedef long double (*__FMINL)(long double, long double); +typedef double (*__LOG2)(double); /* * log base 2 of x. */ +typedef float (*__LOG2F)(float); +typedef long double (*__LOG2L)(long double); +typedef long (*__LRINT)(double); +typedef long (*__LRINTF)(float); + +typedef long long (*__LLRINT)(double); +typedef long long (*__LLRINTF)(float); + +typedef long (*__LROUND)(double); +typedef long (*__LROUNDF)(float); + +typedef long long (*__LLROUND)(double); +typedef long long (*__LLROUNDF)(float); + +typedef double (*__NAN)(const char *); +typedef float (*__NANF)(const char *); + +typedef double (*__NEARBYINT)(double); +typedef float (*__NEARBYINTF)(float); +typedef long double (*__NEARBYINTL)(long double); +typedef double (*__REMQUO)(double, double, int *); +typedef float (*__REMQUOF)(float, float, int *); + +typedef double (*__ROUND)(double); +typedef float (*__ROUNDF)(float); +typedef long double (*__ROUNDL)(long double); +typedef double (*__TGAMMA)(double); /* * The gamma function of x. */ +typedef float (*__TGAMMAF)(float); +typedef long double (*__TGAMMAL)(long double); +typedef double (*__TRUNC)(double); +typedef float (*__TRUNCF)(float); +typedef long double (*__TRUNCL)(long double); + +struct LIBC_ROM_T +{ + // string.h + __MEMCPY memcpy; + __MEMMOVE memmove; + __STRCPY strcpy; + __STRNCPY strncpy; + __STRCAT strcat; + __STRNCAT strncat; + __MEMCMP memcmp; + __STRCMP strcmp; + __STRNCMP strncmp; + __STRCASECMP strcasecmp; + __STRNCASECMP strncasecmp; + __STRCOLL strcoll; + __STRXFRM strxfrm; + __MEMCHR memchr; + __STRCHR strchr; + __STRCSPN strcspn; + __STRPBRK strpbrk; + __STRRCHR strrchr; + __STRSPN strspn; + __STRSTR strstr; + __STRTOK strtok; + //__STRTOK_R strtok_r; + __MEMSET memset; + __STRERROR strerror; + __STRLEN strlen; + __STRLCPY strlcpy; + __STRLCAT strlcat; + + // stdio.h + //__PRINTF printf; + //__SCANF scanf; + __SPRINTF sprintf; + __SNPRINTF snprintf; + __SSCANF sscanf; + __VSSCANF vsscanf; + __VSPRINTF vsprintf; + __VSNPRINTF vsnprintf; + + // stdlib.h + __ATOF atof; + __ATOI atoi; + __ATOL atol; + __ATOLL atoll; + __STRTOD strtod; + __STRTOF strtof; + __STRTOLD strtold; + + __STRTOL strtol; + __STRTOUL strtoul; + __STRTOLL strtoll; + __STRTOULL strtoull; + __RAND rand; + __SRAND srand; + + //__CALLOC calloc; + //__FREE free; + //__MALLOC malloc; + + __BSEARCH bsearch; + __QSORT qsort; + __ABS abs; + __DIV div; + __LABS labs; + __LDIV ldiv; + __LLABS llabs; + __LLDIV lldiv; + + //__MBLEN mblen; + //__MBTOWC mbtowc; + //__WCTOMB wctomb; + //__MBSTOWCS mbstowcs; + //__WCSTOMBS wcstombs; + + // math.h + + __ACOS acos; + __ASIN asin; + __ATAN2 atan2; + __ATAN atan; + __CEIL ceil; + __COS cos; + __COSH cosh; + __EXP exp; + __FABS fabs; + __FLOOR floor; + __FMOD fmod; + __FREXP frexp; + __LDEXP ldexp; + __LOG10 log10; + __LOG log; + __MODF modf; + __POW pow; + __SIN sin; + __SINH sinh; + __SQRT sqrt; + __TAN tan; + __TANH tanh; + /* C99 float and long double versions in already-C89-reserved namespace */ + __ACOSF acosf; + __ACOSL acosl; + __ASINF asinf; + __ASINL asinl; + __ATAN2F atan2f; + __ATAN2L atan2l; + __ATANF atanf; + __ATANL atanl; + __CEILF ceilf; + __CEILL ceill; + __COSF cosf; + __COSHF coshf; + __COSHL coshl; + __COSL cosl; + __EXPF expf; + __EXPL expl; + __FABSF fabsf; + __FABSL fabsl; + __FLOORF floorf; + __FLOORL floorl; + __FMODF fmodf; + __FMODL fmodl; + __FREXPF frexpf; + __FREXPL frexpl; + __LDEXPF ldexpf; + __LDEXPL ldexpl; + __LOG10F log10f; + __LOG10L log10l; + __LOGF logf; + __LOGL logl; + __MODFF modff; + __MODFL modfl; + __POWF powf; + __POWL powl; + __SINF sinf; + __SINHF sinhf; + __SINHL sinhl; + __SINL sinl; + __SQRTF sqrtf; + __SQRTL sqrtl; + __TANF tanf; + __TANHF tanhf; + __TANHL tanhl; + __TANL tanl; + __ACOSH acosh; + __ASINH asinh; + __ATANH atanh; + __CBRT cbrt; + + __ERF erf; + __ERFC erfc; + __EXPM1 expm1; + __HYPOT hypot; + //__ILOGB ilogb; + //__ILOGBF ilogbf; + //__ILOGBL ilogbl; + //__LGAMMA lgamma; + __LOG1P log1p; + //__LOGB logb; + //__LOGBF logbf; + //__LOGBL logbl; + //__NEXTAFTER nextafter; + //__NEXTAFTERF nextafterf; + //__NEXTAFTERL nextafterl; + //__NEXTTOWARD nexttoward; + //__NEXTTOWARDF nexttowardf; + //__NEXTTOWARDL nexttowardl; + __REMAINDER remainder; + __RINT rint; + __SCALBLN scalbln; + __SCALBLNF scalblnf; + __SCALBLNL scalblnl; + //__SCALBN scalbn; + //__SCALBNF scalbnf; + //__SCALBNL scalbnl; + + __ACOSHF acoshf; + __ACOSHL acoshl; + __ASINHF asinhf; + __ASINHL asinhl; + __ATANHF atanhf; + __ATANHL atanhl; + __COPYSIGNL copysignl; + __CBRTF cbrtf; + __CBRTL cbrtl; + __ERFF erff; + __ERFL erfl; + __ERFCF erfcf; + __ERFCL erfcl; + __EXPM1F expm1f; + __EXPM1L expm1l; + __LOG1PF log1pf; + __LOG1PL log1pl; + __HYPOTF hypotf; + __HYPOTL hypotl; + //__LGAMMAF lgammaf; + //__LGAMMAL lgammal; + __REMAINDERF remainderf; + __REMAINDERL remainderl; + __RINTF rintf; + __RINTL rintl; + + /* Functions new in C99. */ + __EXP2 exp2; + __EXP2F exp2f; + __EXP2L exp2l; + __FDIM fdim; + __FDIMF fdimf; + __FDIML fdiml; + __FMA fma; + __FMAF fmaf; + + __FMAX fmax; + __FMAXF fmaxf; + __FMAXL fmaxl; + __FMIN fmin; + __FMINF fminf; + __FMINL fminl; + __LOG2 log2; + __LOG2F log2f; + __LOG2L log2l; + __LRINT lrint; + __LRINTF lrintf; + __LLRINT llrint; + __LLRINTF llrintf; + __LROUND lround; + __LROUNDF lroundf; + __LLROUND llround; + __LLROUNDF llroundf; + __NAN nan; + __NANF nanf; + __NEARBYINT nearbyint; + __NEARBYINTF nearbyintf; + __NEARBYINTL nearbyintl; + __REMQUO remquo; + __REMQUOF remquof; + __ROUND round; + __ROUNDF roundf; + __ROUNDL roundl; + __TGAMMA tgamma; + __TGAMMAF tgammaf; + __TGAMMAL tgammal; + __TRUNC trunc; + __TRUNCF truncf; + __TRUNCL truncl; +}; + +void update_libc_rom_table(void); + +#ifdef __cplusplus +} +#endif + +#endif + +#endif /* LIBC_ROM_H__ */ -- Gitblit v1.9.3