|
ThreadX通常以非对称多处理(Asymmetric Multiprocessing, AMP)方式使用,其中ThreadX和应用程序(或其它系统)的单独在每个内核上执行,并通过共享内存或处理器间通信机制来相互通信,比如OpenAMP(ThreadX支持OpenAMP)。这是使用ThreadX的最典型多核配置,如果应用程序能够有效地加载处理器,则它可能是最高效的。
对于处理器高度动态加载的环境,ThreadX对称多处理(Symetric Multiprocessing,SMP)可用于以下内核:
ARM Cortex-Ax
ARM Cortex-Rx
ARM Cortex-A5x 64位
MIPS 34K,1004K和interAptiv
PowerPC
Synopsys ARC HS
x86
ThreadX SMP在n个处理器之间执行动态负载平衡,并允许任何Core上的任何线程访问所有ThreadX资源(队列,信号量,事件标志,内存池等)。ThreadX SMP在所有内核上启用完整的API,并引入了适用于SMP操作的以下新API:
- UINT tx_thread_smp_core_exclude(TX_THREAD *thread_ptr, ULONG exclusion_map);
- UINT tx_thread_smp_core_exclude_get(TX_THREAD *thread_ptr, ULONG *exclusion_map_ptr);
- UINT tx_thread_smp_core_get(void);
- UINT tx_timer_smp_core_exclude(TX_TIMER *timer_ptr, ULONG exclusion_map);
- UINT tx_timer_smp_core_exclude_get(TX_TIMER *timer_ptr, ULONG *exclusion_map_ptr);
复制代码
|
|