工作上使用英飞凌的芯片,英飞凌也提供了的类似ST的HAL库的SDL库,年前以太网外设出了点问题,最后查出了是产品上英飞凌SDL库没有及时更新,bug没修复。
和同事讨论了为什么各大芯片厂商都在搞类似HAL库的这种高度封装的库
- 首先为客户省去了开发底层驱动工程师的费用
- 第二点我觉得比较重要,就是可靠性的问题。
一个产品,如果量很大,那么将隐患爆出来的几率也就越高,对于代码,几乎不可能没有bug,应用上这个逻辑就是,这套代码用的产品越多,隐患也就能够更多地被发现,被解决,这套代码也就更可靠。
应用这个思路,对于底层驱动来说:如果各个公司自己开发自己的底层驱动,那么这套代码的使用范围就仅限于这个公司的产品,
但是如果由芯片原厂来提供这个库,这套底层的代码就不是这一个公司用了,而是很多公司共同使用。那么等于是这些公司的工程师们一起在自己的产品上测试这这个代码的可靠性,这套代码随着用的越来越多会变得越来越可靠。
这也是大公司为什么底层的代码和硬件都在搞平台化的思维,开发一次,让多个产品使用,可靠性提升,也节省成本。