gpt4 book ai didi

linux - 用于内核中浮点值的 Printk

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:55 25 4
gpt4 key购买 nike

有没有办法记录/打印内核中的 float 值。它是否取决于运行内核的 FPU?

编译 printk(KERN_DEBUG "error = %f ",floatvalue) 时,出现错误:

对 __aeabi_f2d 的 undefined reference

最佳答案

在 Linux 内核中使用任何类型的浮点运算都是一个错误。

如果您运行的处理器没有 FPU,则无法执行您尝试执行的计算(软件 FPU 由内核驱动,无法在内核中运行)。

如果您运行的处理器确实有 FPU,情况会更糟——因为内核在任务之间切换上下文,它需要保存每个任务的上下文(寄存器集)。 conetxt 切换所需的时间取决于需要保存多少上下文。作为一种优化,内核仅在调度进出使用 PFU 的任务时保存和恢复 FPU 的上下文,而不是在系统调用或中断触发上下文切换到内核并且同一任务保持当前状态时保存和恢复 FPU 的上下文任务。

这意味着如果您在内核中编写使用 FPU 的代码,则可能会破坏当前正在运行的用户空间任务的 FPU 状态。

关于linux - 用于内核中浮点值的 Printk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19654546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com