diff options
| author | wangqinglin <[email protected]> | 2023-06-05 16:43:31 +0800 |
|---|---|---|
| committer | guo <[email protected]> | 2023-06-11 07:08:53 +0800 |
| commit | 0c29bed30f81f79f3265813b186d1091e4411dc4 (patch) | |
| tree | d043e5881e8e6ff1f57a62668690459e97ba8eaa | |
| parent | 09ea44a37017f02ddf3e5b4a4ad765fbf5fd7954 (diff) | |
内核Kconfig增加AMP选项, api:rt_hw_cpu_id和 RT_USING_SMP宏解耦,增加rt_hw_ipi_send对RT_USING_AMP的依赖
| -rw-r--r-- | include/rthw.h | 16 | ||||
| -rw-r--r-- | src/Kconfig | 18 |
2 files changed, 26 insertions, 8 deletions
diff --git a/include/rthw.h b/include/rthw.h index 0fe01f3073..21b28072ce 100644 --- a/include/rthw.h +++ b/include/rthw.h @@ -160,6 +160,15 @@ void rt_hw_exception_install(rt_err_t (*exception_handle)(void *context)); */ void rt_hw_us_delay(rt_uint32_t us); +int rt_hw_cpu_id(void); + +#if defined(RT_USING_SMP) || defined(RT_USING_AMP) +/** + * ipi function + */ +void rt_hw_ipi_send(int ipi_vector, unsigned int cpu_mask); +#endif + #ifdef RT_USING_SMP #include <cpuport.h> /* for spinlock from arch */ @@ -172,8 +181,6 @@ void rt_hw_spin_lock_init(rt_hw_spinlock_t *lock); void rt_hw_spin_lock(rt_hw_spinlock_t *lock); void rt_hw_spin_unlock(rt_hw_spinlock_t *lock); -int rt_hw_cpu_id(void); - extern rt_hw_spinlock_t _cpus_lock; extern rt_hw_spinlock_t _rt_critical_lock; @@ -186,11 +193,6 @@ extern rt_hw_spinlock_t _rt_critical_lock; #define RT_DECLARE_SPINLOCK(x) /** - * ipi function - */ -void rt_hw_ipi_send(int ipi_vector, unsigned int cpu_mask); - -/** * boot secondary cpu */ void rt_hw_secondary_cpu_up(void); diff --git a/src/Kconfig b/src/Kconfig index 4a4b06413a..2cc250de38 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -38,6 +38,22 @@ config RT_USING_SMART help RT-Thread Smart is a microkernel based operating system on RT-Thread. +config RT_USING_AMP + bool "Enable AMP(Asymmetric Multi-Processing)" + default n + if RT_USING_AMP + choice + prompt "Select the AMP role" + default RT_AMP_SLAVE + + config RT_AMP_MASTER + bool "amp role MASTER" + + config RT_AMP_SLAVE + bool "amp role SLAVE" + endchoice + endif + config RT_USING_SMP bool "Enable SMP(Symmetric multiprocessing)" default n @@ -50,7 +66,7 @@ config RT_USING_SMP config RT_CPUS_NR int "Number of CPUs" default 2 - depends on RT_USING_SMP + depends on RT_USING_SMP || RT_USING_AMP help Number of CPUs in the system |
