gpt4 book ai didi

c++ linux设备驱动开发

转载 作者:IT王子 更新时间:2023-10-28 23:27:57 25 4
gpt4 key购买 nike

我想了解更多关于使用 c++ for Linux box 编写图形设备驱动程序和音频设备驱动程序的详细信息。我是开发设备驱动程序的新手,请提供相同的开发/文档详细信息。

谢谢

-普拉文

最佳答案

迟到了这个页面,问题本身已由 Chris Stratton 回答,但重要的是要纠正 Chris Becke 在这里提出的一些不熟悉 C++ 的人常见的误解:

  • C++ 不会根据您的要求创建隐式代码或数据。即使对于普通的 C++ 程序员,也不会有额外的代码或数据。我通过了解 C++ 背后的 asm 发现了这一点,但只要阅读 Scott Meyers 的书籍就足够了。
  • 不仅异常在 C++ 中是可选的,而且它们的整个代码都可以在链接中排除在几乎所有工具的链接中。这实际上是在 RT 应用中完成的。

这是为了解决此处发布的误解。但是要添加更多:

1) 新手 C++ 程序员可能会胡说八道,但是新手 C 程序员试图在内核中一次又一次地实现多态性和继承,而不是这样调用它,将会做更多低效不可调试的废话。

2) 话虽如此,在基本 C++ 中唯一可以创建的东西是一个虚拟指针,如果你需要它并指定“虚拟”,然后 C 程序员通常也只是创建这样一个指针,自己操作它添加查找表并因此而获得更难的错误。与 C++ 中的往常一样,如果您不提及“虚拟”,那么您甚至都不会得到这个指针。继承和封装当然完全没有开销。

3) 如果您不明确请求特殊功能,C++ 会创建与 C 相同数量的 asm 和内存,但是有一个C++ 更高效的常见情况 - 传递函数指针时。如果您使用 C++ 的仿函数,您可以内联指向的函数。这在嵌入式应用程序中非常有用。

4) 如果嵌入式 RT 使用 C++,为什么 linux 不使用?只是因为神话,所以请仔细阅读此消息,并引用 scott meyers 或更好的是 asm 本身。我在 RT 工作了 20 年,并且在 14 年前切换时对 C++ 有同样的怀疑,但事实并不能证实任何这种不信任。

TL;DR - 在 C++ 中编写高效且在常见情况下更高效的代码非常容易,关于这个主题的研究、大量行业经验和书籍比比皆是。

关于c++ linux设备驱动开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374103/

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