summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Kconfig3
-rw-r--r--src/SConscript2
-rw-r--r--src/cpu.c20
-rw-r--r--src/idle.c6
-rw-r--r--src/thread.c4
5 files changed, 9 insertions, 26 deletions
diff --git a/src/Kconfig b/src/Kconfig
index 36d6229a07..49fcf256c0 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -66,8 +66,7 @@ config RT_USING_SMP
config RT_CPUS_NR
int "Number of CPUs"
- default 2
- depends on RT_USING_SMP || RT_USING_AMP
+ default 1
help
Number of CPUs in the system
diff --git a/src/SConscript b/src/SConscript
index 499747de84..9d74d6a8e4 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -25,7 +25,7 @@ if GetDepend('RT_USING_DEVICE') == False:
SrcRemove(src, ['device.c'])
if GetDepend('RT_USING_SMP') == False:
- SrcRemove(src, ['cpu.c','scheduler_mp.c'])
+ SrcRemove(src, ['cpu.c', 'scheduler_mp.c'])
if GetDepend('RT_USING_SMP') == True:
SrcRemove(src, ['scheduler_up.c'])
diff --git a/src/cpu.c b/src/cpu.c
index 77ce65d69f..0ecf67d1e5 100644
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -68,7 +68,6 @@ static void _cpu_preempt_enable(void)
/* enable interrupt */
rt_hw_local_irq_enable(level);
}
-#endif /* RT_USING_SMP */
/**
* @brief Initialize a static spinlock object.
@@ -77,9 +76,7 @@ static void _cpu_preempt_enable(void)
*/
void rt_spin_lock_init(struct rt_spinlock *lock)
{
-#ifdef RT_USING_SMP
rt_hw_spin_lock_init(&lock->lock);
-#endif
}
RTM_EXPORT(rt_spin_lock_init)
@@ -93,12 +90,8 @@ RTM_EXPORT(rt_spin_lock_init)
*/
void rt_spin_lock(struct rt_spinlock *lock)
{
-#ifdef RT_USING_SMP
_cpu_preempt_disable();
rt_hw_spin_lock(&lock->lock);
-#else
- rt_enter_critical();
-#endif
}
RTM_EXPORT(rt_spin_lock)
@@ -109,12 +102,8 @@ RTM_EXPORT(rt_spin_lock)
*/
void rt_spin_unlock(struct rt_spinlock *lock)
{
-#ifdef RT_USING_SMP
rt_hw_spin_unlock(&lock->lock);
_cpu_preempt_enable();
-#else
- rt_exit_critical();
-#endif
}
RTM_EXPORT(rt_spin_unlock)
@@ -130,7 +119,6 @@ RTM_EXPORT(rt_spin_unlock)
*/
rt_base_t rt_spin_lock_irqsave(struct rt_spinlock *lock)
{
-#ifdef RT_USING_SMP
unsigned long level;
_cpu_preempt_disable();
@@ -139,9 +127,6 @@ rt_base_t rt_spin_lock_irqsave(struct rt_spinlock *lock)
rt_hw_spin_lock(&lock->lock);
return level;
-#else
- return rt_hw_interrupt_disable();
-#endif
}
RTM_EXPORT(rt_spin_lock_irqsave)
@@ -154,14 +139,10 @@ RTM_EXPORT(rt_spin_lock_irqsave)
*/
void rt_spin_unlock_irqrestore(struct rt_spinlock *lock, rt_base_t level)
{
-#ifdef RT_USING_SMP
rt_hw_spin_unlock(&lock->lock);
rt_hw_local_irq_enable(level);
_cpu_preempt_enable();
-#else
- rt_hw_interrupt_enable(level);
-#endif
}
RTM_EXPORT(rt_spin_unlock_irqrestore)
@@ -261,3 +242,4 @@ void rt_cpus_lock_status_restore(struct rt_thread *thread)
}
}
RTM_EXPORT(rt_cpus_lock_status_restore);
+#endif
diff --git a/src/idle.c b/src/idle.c
index 500b16c779..dac65eb744 100644
--- a/src/idle.c
+++ b/src/idle.c
@@ -39,11 +39,7 @@
#endif /* (RT_USING_IDLE_HOOK) || defined(RT_USING_HEAP) */
#endif /* IDLE_THREAD_STACK_SIZE */
-#ifdef RT_USING_SMP
#define _CPUS_NR RT_CPUS_NR
-#else
-#define _CPUS_NR 1
-#endif /* RT_USING_SMP */
static rt_list_t _rt_thread_defunct = RT_LIST_OBJECT_INIT(_rt_thread_defunct);
@@ -335,6 +331,8 @@ void rt_thread_idle_init(void)
32);
#ifdef RT_USING_SMP
rt_thread_control(&idle_thread[i], RT_THREAD_CTRL_BIND_CPU, (void*)i);
+
+ rt_cpu_index(i)->idle_thread = &idle_thread[i];
#endif /* RT_USING_SMP */
/* startup */
rt_thread_startup(&idle_thread[i]);
diff --git a/src/thread.c b/src/thread.c
index 353f2fcf46..334c8803ed 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -269,6 +269,10 @@ static rt_err_t _thread_init(struct rt_thread *thread,
rt_list_init(&thread->signal.sig_queue.siginfo_list);
rt_memset(&thread->user_ctx, 0, sizeof thread->user_ctx);
+
+ /* initialize user_time and system_time */
+ thread->user_time = 0;
+ thread->system_time = 0;
#endif
#ifdef RT_USING_CPU_USAGE