首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux设备驱动程序中允许和不允许做什么?

问在linux设备驱动程序中允许和不允许做什么?
EN

Stack Overflow用户
提问于 2019-06-04 19:06:58
回答 1查看 150关注 0票数 0

我有一个关于linux设备驱动程序的一般性问题。更常见的情况是,我弄不清楚在linux设备驱动程序中允许或不允许执行哪些操作?

是否有任何规则或查找列表可遵循?

例如,下面的例子是不允许的?

代码语言:javascript
复制
msleep(1000);
al = kmallock(sizeof(val));
printk(KERN_ALERT "faild to print\n";
ret = adc_get_val()*0.001;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-06 05:11:00

在linux设备驱动程序编程中,这取决于您所处的上下文。有两种情况需要加以区分:

  • 过程上下文
  • IRQ上下文。

睡眠只能在流程上下文中完成,或者您将工作安排到以后的执行中(有几种机制可用于执行此操作)。这是一个无法在段落中描述的复杂主题。

分配内存可以休眠,这取决于调用哪些参数/标志kmalloc。

打印总是可以被调用(一旦内核被调用),否则使用early_printk。

我不知道add_get_val的功能是什么。它不是linux内核的一部分。正如已经注释过的那样,浮点值在内核中不容易使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56449919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档