summaryrefslogtreecommitdiff
path: root/src/components.c
diff options
context:
space:
mode:
authorshaojinchun <[email protected]>2018-11-22 14:40:43 +0800
committershaojinchun <[email protected]>2018-11-22 18:16:47 +0800
commitfc6bc1ad398d5fa2085320cab6cc33905f5f943d (patch)
treea6a24a6e516add6fe47fa5a58f7307ee0cd3f6e8 /src/components.c
parent8ea5b770117cacea7f17b2b08305f360ed71bca7 (diff)
Add smp support to RT-Thread 4.0
Diffstat (limited to 'src/components.c')
-rw-r--r--src/components.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/components.c b/src/components.c
index 68e5799f59..d77ef8300f 100644
--- a/src/components.c
+++ b/src/components.c
@@ -14,6 +14,7 @@
* 2015-05-04 Bernard Rename it to components.c because compiling issue
* in some IDEs.
* 2015-07-29 Arda.Fu Add support to use RT_USING_USER_MAIN with IAR
+ * 2018-11-22 Jesven Add secondary cpu boot up
*/
#include <rthw.h>
@@ -180,6 +181,9 @@ void main_thread_entry(void *parameter)
/* RT-Thread components initialization */
rt_components_init();
+#ifdef RT_USING_SMP
+ rt_hw_secondary_cpu_up();
+#endif
/* invoke system main function */
#if defined(__CC_ARM) || defined(__CLANG_ARM)
$Super$$main(); /* for ARMCC. */
@@ -243,6 +247,10 @@ int rtthread_startup(void)
/* idle thread initialization */
rt_thread_idle_init();
+#ifdef RT_USING_SMP
+ rt_hw_spin_lock(&_cpus_lock);
+#endif /*RT_USING_SMP*/
+
/* start scheduler */
rt_system_scheduler_start();