Zephyr内核——内核服务(其它)——浮点服务

浮点服务

内核允许线程在支持这些寄存器的板载配置上使用浮点寄存器。

注意:

浮点服务目前仅适用于基于支持浮点扩展的ARMCortex-MSoC、Intelx86体系结构、SPARC体系结构和支持浮点扩展的ARCv2SoC的电路板。所提供的服务是特定于体系结构的。

内核不支持通过isr使用浮点寄存器。

概念

内核可以配置为仅提供应用程序所需的浮点服务。支持三种操作模式,如下所述。此外,还可以根据需要包括或省略内核对SSE寄存器的支持。

无FP寄存器模式

当应用程序没有使用浮点寄存器的线程时,将使用此模式。它是内核的默认浮点服务模式。

如果一个线程使用任何浮点寄存器,内核就会生成一个致命的错误条件并中止该线程。

非共享FP寄存器模式

当应用程序只有一个使用浮点寄存器的线程时,将使用此模式。

在x86平台上,内核初始化浮点寄存器,以便它们可以被任何线程使用(在ARMCortex-M平台和ARCv2平台上跳过的初始化)。每当发生上下文切换时,浮点寄存器将保持不变。

注意:

如果两个或多个线程尝试使用浮点寄存器,则该行为未定义,因为内核不尝试检测(或阻止)多个线程使用这些寄存器。

共享FP寄存器模式

当应用程序有两个或多个使用浮点寄存器的线程时,将使用此模式。根据底层CPU架构,内核支持以下一个或多个线程子类:

  • 非用户:不能使用任何浮点寄存器的线程
  • FPU用户:一个可以使用标准浮点寄存器的线程
  • SSE用户࿱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值