summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author周传福 <[email protected]>2019-05-19 14:37:34 +0800
committerGitHub <[email protected]>2019-05-19 14:37:34 +0800
commit24f38acf5265a7bc53b81014d91ce43d7db5e777 (patch)
tree251ad85c701eb8b92944b6d5520d4acf4bcf5a61 /src
parent6ebb2c75d956449fa535481c42933bdb94b691c8 (diff)
parentc8efc0032de0e5f93218bf4a118f7b696d54d254 (diff)
Merge branch 'master' into stm32_uart_tx_dma
Diffstat (limited to 'src')
-rw-r--r--src/Kconfig2
-rw-r--r--src/kservice.c29
2 files changed, 30 insertions, 1 deletions
diff --git a/src/Kconfig b/src/Kconfig
index 21b1d63806..d301d25f55 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -331,7 +331,7 @@ endmenu
config RT_VER_NUM
hex
- default 0x40001
+ default 0x40002
help
RT-Thread version number
diff --git a/src/kservice.c b/src/kservice.c
index c940e86d0b..322fb61e28 100644
--- a/src/kservice.c
+++ b/src/kservice.c
@@ -545,6 +545,26 @@ RTM_EXPORT(rt_show_version);
/* private function */
#define isdigit(c) ((unsigned)((c) - '0') < 10)
+#ifdef RT_PRINTF_LONGLONG
+rt_inline int divide(long long *n, int base)
+{
+ int res;
+
+ /* optimized for processor which does not support divide instructions. */
+ if (base == 10)
+ {
+ res = (int)(((unsigned long long)*n) % 10U);
+ *n = (long long)(((unsigned long long)*n) / 10U);
+ }
+ else
+ {
+ res = (int)(((unsigned long long)*n) % 16U);
+ *n = (long long)(((unsigned long long)*n) / 16U);
+ }
+
+ return res;
+}
+#else
rt_inline int divide(long *n, int base)
{
int res;
@@ -563,6 +583,7 @@ rt_inline int divide(long *n, int base)
return res;
}
+#endif
rt_inline int skip_atoi(const char **s)
{
@@ -584,7 +605,11 @@ rt_inline int skip_atoi(const char **s)
#ifdef RT_PRINTF_PRECISION
static char *print_number(char *buf,
char *end,
+#ifdef RT_PRINTF_LONGLONG
+ long long num,
+#else
long num,
+#endif
int base,
int s,
int precision,
@@ -592,7 +617,11 @@ static char *print_number(char *buf,
#else
static char *print_number(char *buf,
char *end,
+#ifdef RT_PRINTF_LONGLONG
+ long long num,
+#else
long num,
+#endif
int base,
int s,
int type)