summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorguo <[email protected]>2021-12-02 10:09:37 +0800
committerGitHub <[email protected]>2021-12-02 10:09:37 +0800
commitfda37d55f8363d97dfc31c8e86b014c04cda2c10 (patch)
tree66742824f17fc0f221732fde4d1a15402b7a8554 /src
parent1d4594c6fcad494ef256c9bbd8aa7d64132a0995 (diff)
parent1cf8370b1ba5eca639e4b976f1e878753ee41548 (diff)
Merge pull request #5319 from RT-Thread/master
【PSE分支】同步master到PSE分支
Diffstat (limited to 'src')
-rw-r--r--src/Kconfig222
-rw-r--r--src/kservice.c44
-rw-r--r--src/thread.c1
-rw-r--r--src/timer.c4
4 files changed, 127 insertions, 144 deletions
diff --git a/src/Kconfig b/src/Kconfig
index 427a65eb74..8647d35698 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -115,37 +115,40 @@ config RT_USING_TIMER_SOFT
thread.
if RT_USING_TIMER_SOFT
-config RT_TIMER_THREAD_PRIO
- int "The priority level value of timer thread"
- default 4
-
-config RT_TIMER_THREAD_STACK_SIZE
- int "The stack size of timer thread"
- default 512
+ config RT_TIMER_THREAD_PRIO
+ int "The priority level value of timer thread"
+ default 4
+ config RT_TIMER_THREAD_STACK_SIZE
+ int "The stack size of timer thread"
+ default 512
endif
menu "kservice optimization"
-config RT_KSERVICE_USING_STDLIB
- bool "Enable kservice to use standard C library"
- default n
+ config RT_KSERVICE_USING_STDLIB
+ bool "Enable kservice to use standard C library"
+ default n
-config RT_KSERVICE_USING_TINY_SIZE
- bool "Enable kservice to use tiny size"
- default n
+ config RT_KSERVICE_USING_TINY_SIZE
+ bool "Enable kservice to use tiny size"
+ default n
-config RT_USING_ASM_MEMCPY
- bool
- default n
+ config RT_USING_ASM_MEMCPY
+ bool
+ default n
-config RT_USING_ASM_MEMSET
- bool
- default n
+ config RT_USING_ASM_MEMSET
+ bool
+ default n
-config RT_USING_TINY_FFS
- bool "Enable kservice to use tiny ffs"
- default n
+ config RT_USING_TINY_FFS
+ bool "Enable kservice to use tiny finding first bit set method"
+ default n
+
+ config RT_PRINTF_LONGLONG
+ bool "Enable rt_printf-family functions to support long long format"
+ default n
endmenu
@@ -155,121 +158,122 @@ menuconfig RT_DEBUG
if RT_DEBUG
-config RT_DEBUG_COLOR
- bool "Enable color debugging log"
- default n
+ config RT_DEBUG_COLOR
+ bool "Enable color debugging log"
+ default n
-config RT_DEBUG_INIT_CONFIG
- bool "Enable debugging of components initialization"
- default n
+ config RT_DEBUG_INIT_CONFIG
+ bool "Enable debugging of components initialization"
+ default n
-config RT_DEBUG_INIT
- int
- default 1 if RT_DEBUG_INIT_CONFIG
+ config RT_DEBUG_INIT
+ int
+ default 1 if RT_DEBUG_INIT_CONFIG
-config RT_DEBUG_THREAD_CONFIG
- bool "Enable debugging of Thread State Changes"
- default n
+ config RT_DEBUG_THREAD_CONFIG
+ bool "Enable debugging of Thread State Changes"
+ default n
-config RT_DEBUG_THREAD
- int
- default 1 if RT_DEBUG_THREAD_CONFIG
+ config RT_DEBUG_THREAD
+ int
+ default 1 if RT_DEBUG_THREAD_CONFIG
-config RT_DEBUG_SCHEDULER_CONFIG
- bool "Enable debugging of Scheduler"
- default n
+ config RT_DEBUG_SCHEDULER_CONFIG
+ bool "Enable debugging of Scheduler"
+ default n
-config RT_DEBUG_SCHEDULER
- int
- default 1 if RT_DEBUG_SCHEDULER_CONFIG
+ config RT_DEBUG_SCHEDULER
+ int
+ default 1 if RT_DEBUG_SCHEDULER_CONFIG
-config RT_DEBUG_IPC_CONFIG
- bool "Enable debugging of IPC"
- default n
+ config RT_DEBUG_IPC_CONFIG
+ bool "Enable debugging of IPC"
+ default n
-config RT_DEBUG_IPC
- int
- default 1 if RT_DEBUG_IPC_CONFIG
+ config RT_DEBUG_IPC
+ int
+ default 1 if RT_DEBUG_IPC_CONFIG
-config RT_DEBUG_TIMER_CONFIG
- bool "Enable debugging of Timer"
- default n
+ config RT_DEBUG_TIMER_CONFIG
+ bool "Enable debugging of Timer"
+ default n
-config RT_DEBUG_TIMER
- int
- default 1 if RT_DEBUG_TIMER_CONFIG
+ config RT_DEBUG_TIMER
+ int
+ default 1 if RT_DEBUG_TIMER_CONFIG
-config RT_DEBUG_IRQ_CONFIG
- bool "Enable debugging of IRQ(Interrupt Request)"
- default n
+ config RT_DEBUG_IRQ_CONFIG
+ bool "Enable debugging of IRQ(Interrupt Request)"
+ default n
-config RT_DEBUG_IRQ
- int
- default 1 if RT_DEBUG_IRQ_CONFIG
+ config RT_DEBUG_IRQ
+ int
+ default 1 if RT_DEBUG_IRQ_CONFIG
-config RT_DEBUG_MEM_CONFIG
- bool "Enable debugging of Small Memory Algorithm"
- default n
+ config RT_DEBUG_MEM_CONFIG
+ bool "Enable debugging of Small Memory Algorithm"
+ default n
-config RT_DEBUG_MEM
- int
- default 1 if RT_DEBUG_MEM_CONFIG
+ config RT_DEBUG_MEM
+ int
+ default 1 if RT_DEBUG_MEM_CONFIG
-config RT_DEBUG_SLAB_CONFIG
- bool "Enable debugging of SLAB Memory Algorithm"
- default n
+ config RT_DEBUG_SLAB_CONFIG
+ bool "Enable debugging of SLAB Memory Algorithm"
+ default n
-config RT_DEBUG_SLAB
- int
- default 1 if RT_DEBUG_SLAB_CONFIG
+ config RT_DEBUG_SLAB
+ int
+ default 1 if RT_DEBUG_SLAB_CONFIG
-config RT_DEBUG_MEMHEAP_CONFIG
- bool "Enable debugging of Memory Heap Algorithm"
- default n
+ config RT_DEBUG_MEMHEAP_CONFIG
+ bool "Enable debugging of Memory Heap Algorithm"
+ default n
-config RT_DEBUG_MEMHEAP
- int
- default 1 if RT_DEBUG_MEMHEAP_CONFIG
+ config RT_DEBUG_MEMHEAP
+ int
+ default 1 if RT_DEBUG_MEMHEAP_CONFIG
-config RT_DEBUG_MODULE_CONFIG
- bool "Enable debugging of Application Module"
- default n
+ config RT_DEBUG_MODULE_CONFIG
+ bool "Enable debugging of Application Module"
+ default n
-config RT_DEBUG_MODULE
- int
- default 1 if RT_DEBUG_MODULE_CONFIG
+ config RT_DEBUG_MODULE
+ int
+ default 1 if RT_DEBUG_MODULE_CONFIG
endif
menu "Inter-Thread communication"
-config RT_USING_SEMAPHORE
- bool "Enable semaphore"
- default y
+ config RT_USING_SEMAPHORE
+ bool "Enable semaphore"
+ default y
-config RT_USING_MUTEX
- bool "Enable mutex"
- default y
+ config RT_USING_MUTEX
+ bool "Enable mutex"
+ default y
-config RT_USING_EVENT
- bool "Enable event flag"
- default y
+ config RT_USING_EVENT
+ bool "Enable event flag"
+ default y
-config RT_USING_MAILBOX
- bool "Enable mailbox"
- default y
+ config RT_USING_MAILBOX
+ bool "Enable mailbox"
+ default y
-config RT_USING_MESSAGEQUEUE
- bool "Enable message queue"
- default y
+ config RT_USING_MESSAGEQUEUE
+ bool "Enable message queue"
+ default y
+
+ config RT_USING_SIGNALS
+ bool "Enable signals"
+ select RT_USING_MEMPOOL
+ default n
+ help
+ A signal is an asynchronous notification sent to a specific thread
+ in order to notify it of an event that occurred.
-config RT_USING_SIGNALS
- bool "Enable signals"
- select RT_USING_MEMPOOL
- default n
- help
- A signal is an asynchronous notification sent to a specific thread
- in order to notify it of an event that occurred.
endmenu
menu "Memory Management"
@@ -375,10 +379,6 @@ menu "Kernel Device Object"
config RT_CONSOLE_DEVICE_NAME
string "the device name for console"
default "uart"
-
- config RT_PRINTF_LONGLONG
- bool "rt_kprintf support long long"
- default n
endif
endmenu
diff --git a/src/kservice.c b/src/kservice.c
index aa5b39075c..8b959cbd68 100644
--- a/src/kservice.c
+++ b/src/kservice.c
@@ -593,7 +593,6 @@ RTM_EXPORT(rt_show_version);
/* private function */
#define _ISDIGIT(c) ((unsigned)((c) - '0') < 10)
-#ifdef RT_PRINTF_LONGLONG
/**
* This function will duplicate a string.
*
@@ -603,44 +602,38 @@ RTM_EXPORT(rt_show_version);
*
* @return the duplicated string pointer.
*/
+#ifdef RT_PRINTF_LONGLONG
rt_inline int divide(long long *n, int base)
+#else
+rt_inline int divide(long *n, int base)
+#endif /* RT_PRINTF_LONGLONG */
{
int res;
/* optimized for processor which does not support divide instructions. */
if (base == 10)
{
+#ifdef RT_PRINTF_LONGLONG
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;
-
- /* optimized for processor which does not support divide instructions. */
- if (base == 10)
- {
res = (int)(((unsigned long)*n) % 10U);
*n = (long)(((unsigned long)*n) / 10U);
+#endif
}
else
{
+#ifdef RT_PRINTF_LONGLONG
+ res = (int)(((unsigned long long)*n) % 16U);
+ *n = (long long)(((unsigned long long)*n) / 16U);
+#else
res = (int)(((unsigned long)*n) % 16U);
*n = (long)(((unsigned long)*n) / 16U);
+#endif
}
return res;
}
-#endif /* RT_PRINTF_LONGLONG */
rt_inline int skip_atoi(const char **s)
{
@@ -659,7 +652,6 @@ rt_inline int skip_atoi(const char **s)
#define SPECIAL (1 << 5) /* 0x */
#define LARGE (1 << 6) /* use 'ABCDEF' instead of 'abcdef' */
-#ifdef RT_PRINTF_PRECISION
static char *print_number(char *buf,
char *end,
#ifdef RT_PRINTF_LONGLONG
@@ -669,20 +661,10 @@ static char *print_number(char *buf,
#endif /* RT_PRINTF_LONGLONG */
int base,
int s,
+#ifdef RT_PRINTF_PRECISION
int precision,
- int type)
-#else
-static char *print_number(char *buf,
- char *end,
-#ifdef RT_PRINTF_LONGLONG
- long long num,
-#else
- long num,
-#endif /* RT_PRINTF_LONGLONG */
- int base,
- int s,
- int type)
#endif /* RT_PRINTF_PRECISION */
+ int type)
{
char c, sign;
#ifdef RT_PRINTF_LONGLONG
diff --git a/src/thread.c b/src/thread.c
index ab5264053e..6256deaf82 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -31,6 +31,7 @@
#include <rthw.h>
#include <rtthread.h>
+#include <stddef.h>
#ifdef RT_USING_HOOK
static void (*rt_thread_suspend_hook)(rt_thread_t thread);
diff --git a/src/timer.c b/src/timer.c
index 25ba175306..846c33263b 100644
--- a/src/timer.c
+++ b/src/timer.c
@@ -560,12 +560,12 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg)
if(timer->parent.flag & RT_TIMER_FLAG_ACTIVATED)
{
/*timer is start and run*/
- *(rt_tick_t *)arg = RT_TIMER_FLAG_ACTIVATED;
+ *(rt_uint32_t *)arg = RT_TIMER_FLAG_ACTIVATED;
}
else
{
/*timer is stop*/
- *(rt_tick_t *)arg = RT_TIMER_FLAG_DEACTIVATED;
+ *(rt_uint32_t *)arg = RT_TIMER_FLAG_DEACTIVATED;
}
break;