在定义嵌入式系统架构时,在定义HAL时有两种选择-
哪个更好,为什么?
发布于 2012-11-27 08:01:09
简短回答:是的。
拥有HAL (或驱动程序下面的稳定驱动程序ABI )对应用程序程序员来说很好,特别是对于驱动程序编写人员来说)。
两者都可以:查看Unix设备驱动程序;相当可移植。
哪个更好地取决于嵌入式体系结构的产品开发路线图。
让我们来看看一些例子。
假设这是一种商业产品,您的公司不认为需要跨平台移植。在这种情况下你不在乎。
如果你的公司正在使用它,例如一台电视机,而且它的平台预计会改变,但设备将保持不变(电视是一台电视,但最便宜的微型将随着时间的推移而变化),那么你会选择低于驱动的hal,并保持你对司机的投资。
如果你的公司制造,例如智能手机,处理器也会改变,设备也会发生变化,当分辨率改变时,额外的传感器就会增加.因此,在这种情况下,您可以使用hal-以上驱动程序,并保持大部分软件负载是通用的。
如果你投入两个HAL的嵌入式系统,你就有可能变成一个建筑宇航员。如果两个HALs (运行时和设计时间)的成本超过了跨平台移植所节省的劳动力,那么这是浪费时间和金钱。
在HAL中投入多少精力也是一种权衡。在一个微小的嵌入式系统中,过多的抽象是无法承受的。
同样,这种权衡取决于一个小小的平台对你的应用程序来说是正确的选择,这最终取决于市场时间和功能相对于每台设备的成本的重要性。对于交易量市场来说,需要便宜的说法很多,但没有提供多少科学证据。最赚钱的嵌入式设备制造商之一是苹果,而不是使用一个微小的平台。(见鬼,他们已经不在纳斯达克了,因为他们扭曲了它)
如果您没有HAL,并且您必须改变平台,例如,您的处理器将结束生命,您将有一个很大的困难重写。
如果你尝试应用YAGNI规则(你不会需要它)而不进行权衡研究,那么你以后可能会花费公司一大笔钱。
现在,如果你对你没有预料到的技术发展感到盲目,那么你的权衡研究将是错误的,你的公司也会受到影响。
https://stackoverflow.com/questions/13577660
复制相似问题