首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >定义HAL以上或下方驱动层?

定义HAL以上或下方驱动层?
EN

Stack Overflow用户
提问于 2012-11-27 05:00:14
回答 1查看 1.7K关注 1票数 0

在定义嵌入式系统架构时,在定义HAL时有两种选择-

  • 定义驱动程序层之上的HAL (这意味着需要为您移植到的每个平台重写驱动程序)
  • 定义驱动程序层下面的HAL (这意味着需要为您移植到的每个平台重写HAL )

哪个更好,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-27 08:01:09

简短回答:是的。

拥有HAL (或驱动程序下面的稳定驱动程序ABI )对应用程序程序员来说很好,特别是对于驱动程序编写人员来说)。

两者都可以:查看Unix设备驱动程序;相当可移植。

哪个更好地取决于嵌入式体系结构的产品开发路线图。

让我们来看看一些例子。

假设这是一种商业产品,您的公司不认为需要跨平台移植。在这种情况下你不在乎。

如果你的公司正在使用它,例如一台电视机,而且它的平台预计会改变,但设备将保持不变(电视是一台电视,但最便宜的微型将随着时间的推移而变化),那么你会选择低于驱动的hal,并保持你对司机的投资。

如果你的公司制造,例如智能手机,处理器也会改变,设备也会发生变化,当分辨率改变时,额外的传感器就会增加.因此,在这种情况下,您可以使用hal-以上驱动程序,并保持大部分软件负载是通用的。

如果你投入两个HAL的嵌入式系统,你就有可能变成一个建筑宇航员。如果两个HALs (运行时和设计时间)的成本超过了跨平台移植所节省的劳动力,那么这是浪费时间和金钱。

在HAL中投入多少精力也是一种权衡。在一个微小的嵌入式系统中,过多的抽象是无法承受的。

同样,这种权衡取决于一个小小的平台对你的应用程序来说是正确的选择,这最终取决于市场时间和功能相对于每台设备的成本的重要性。对于交易量市场来说,需要便宜的说法很多,但没有提供多少科学证据。最赚钱的嵌入式设备制造商之一是苹果,而不是使用一个微小的平台。(见鬼,他们已经不在纳斯达克了,因为他们扭曲了它)

如果您没有HAL,并且您必须改变平台,例如,您的处理器将结束生命,您将有一个很大的困难重写。

如果你尝试应用YAGNI规则(你不会需要它)而不进行权衡研究,那么你以后可能会花费公司一大笔钱。

现在,如果你对你没有预料到的技术发展感到盲目,那么你的权衡研究将是错误的,你的公司也会受到影响。

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

https://stackoverflow.com/questions/13577660

复制
相关文章

相似问题

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