|
目前的芯片的集成度越来越高,最典型的是动态内存越来越大,存储空间越来越大,这样所造成的结果是硬件的工作量相比之前有所减少,但是软件的工作量急剧增加,对软件的工作者的能力提出了一定的考验。
目前开发板厂商普遍的一个现象是大家都是拿着官方的公板子做模板,这个无可厚非,毕竟芯片是官方的,板子也基本玩不出其他花样来。还有就是拿着官方给的软件例子给客户。这样在软件上客户会遇到很多的技术问题,下面举几个例子来说明这一点。
1 官方的公板可能有几种,软件驱动库里面的代码需要更改针对不同的公板,lpc4357这块是一个典型的例子。
2 客户的外设使用的和官方的不同,比如官网的网卡使用的是DP83848,而客户使用的是lan8720, 其它的还有声音的芯片,spi flash 等等都可能因为客户的环境而有所不同。直接造成了需要更改客户的软件驱动来符合应用需求。
3 即使客户所使用的硬件和官方公板的完全一致,也会有驱动集成的问题。官方的演示例子都是基于单个例子的,有的驱动是采取轮询模式的,比如lpc4357的网卡驱动测试,客户集成了多个驱动之后,为了符合其应用的架构也需要对驱动进行改造。
上面所说的情况是最基本的裸机的情况下的驱动,为了提高系统的响应能力以及应用其它的各种开源协议栈,lpc4357这种芯片往往会跑实时操作系统,加入了实时操作系统之后客户所面临的软件困境会成几何倍增加。下面举几个例子说明。
1 为了同时使用网络协议栈以及图形界面。诸如lwip, 图形界面 ucgui或者emwin 这种,客户逼迫要上实时操作系统。这种情况下会带来3种困难,第一种是网卡驱动需要改动来符合lwip的设计,第二种是移植lwip的rtos层的接口,第三种是使用的困难。
2由于使用了rtos后,为了提高系统的响应,裸机情况下的轮询驱动模式需要全面改换方式,即使串口发送这种驱动也要采用中断去做了而不是简单地轮询发送出去,因为会占用很多的时间。所以客户面临的困境是需要全面的改造官方的驱动库!是的,你没听错。因为官方的驱动库是基于裸机设计的,跑rtos需要对驱动层面的改造来符合系统整个响应程度。这种会消耗客户大量的时间,一般是大公司玩的方式,小公司玩不了。
3由于客户需求的多变性,往往需要功能更好的软件,比如矢量字体,更多的客户会喜欢矢量字体相比传统的点阵字体,为什么呢?显示的效果好,而且省空间,设计又方便。这种会带来一种困难,移植矢量字体的开源软件成为一种困难,导致很多客户继续使用点阵字体。
以上举的一些例子充分反映出来了目前大部分的开发板厂商和客户的软件需求之间产生了相当大的隔膜,很多开发板厂商只是卖卖开发板,真正到了解决核心技术问题的时候,往往采取躲避不回答的方式。接触了一些客户之后,本人的经验是很多客户的项目不成功90%以上的原因在软件上出了问题,现在接触到的一些客户硬件都能自己设计,但是软件规模一大,就手忙脚乱,病急乱投医,外包出去之后,很多钱打水漂了。很多从51单片机上客户转到m3,m4 这块实时操作系统之后,需要有一个长时间的适应过程。
综上所述开发板厂商应该更注重对软件这一块的技术支持能力,有实力的开发板厂商甚至可以解决客户面临的所有驱动以及中间层协议栈,客户只需要专心设计自己的应用层业务逻辑即可。
|
|