diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Kconfig | 3 | ||||
| -rw-r--r-- | src/SConscript | 2 | ||||
| -rw-r--r-- | src/cpu.c | 20 | ||||
| -rw-r--r-- | src/idle.c | 6 | ||||
| -rw-r--r-- | src/thread.c | 4 |
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']) @@ -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 |
