Zephyr内核——内核服务(调度,中断和同步)——对称多处理器

本文介绍了Zephyr内核在对称多处理器(SMP)环境下的支持,包括SMP配置、同步原语如自旋锁的使用,以及CPU掩码、SMP引导进程和多处理器中断的处理。Zephyr在SMP下的行为和单处理器系统有所不同,特别是在中断和锁的管理上,强调了自旋锁在SMP中的重要性以及其与传统IRQ锁的区别。
摘要由CSDN通过智能技术生成

对称多处理器

在多处理器架构上,Zephyr支持使用运行Zephyr应用程序代码的多个物理cpu。这种支持是“对称的”,因为默认情况下没有专门处理特定的CPU。任何处理器都能够运行任何Zephyr线程,并支持访问所有标准的Zephyr api。

不需要编写特殊的应用程序代码来利用此特性。如果在受支持的双处理器设备上有两个可运行的Zephyr应用程序线程,它们将同时运行。

SMP配置由CONFIG_SMP k配置变量控制。必须将其设置为“y”才能启用SMP特性,否则将构建一个单处理器内核。一般来说,平台默认值将在任何受支持的地方启用它。当启用时,可用的物理cpu的数量在构建时作为CONFIG_MP_NUM_CPUS可见。同样地,默认的这将是平台上可用的cpu的数量,预计典型的应用程序不会改变它。但是,出于特殊目的(例如,用于测试,或保留一个物理CPU来运行非zephyr代码),将其设置为更小(但显然不是更大)号是合法的和支持的。

同步

在应用程序级别上,核心ZephyrIPC和同步原语在SMP内核下的行为都相同的。例如,用于实现阻塞互斥的符号仍然是一个适当的应用程序选择。

然而,在最低级别上,Zephyr代码经常使用irq_lock()/irq_unlock()原语来使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值