经验1:
1:方向分解:硬件,驱动,功能操作API接口,应用。
在前期开发的时候,驱动,驱动,API接口,应用都需要编写,在后期开发移植就就简单。
目前大部分芯片厂商把最底层寄存器的操作已经封装,那么我们在写驱动的时候会简单一些。
2:如果做好API ,把功能细化,数据封装,外部接口的调用做好。
3:如果程序开发时做到了结构的划分,那么更换平台时要做的只有与处理器相关的部分(数据类型,驱动)。
经验2:
开发平台主要需要考虑两个因素:通用性,高效率。现在很多稍大一点的公司常把平台开发和应用开发分开来,由两拨人分别做。这样的好处是平台可以在不同应用、不同器件之间复用,增加了通用性。根据以往的经验,平台开发人员在通用性上常常下了比较大的功夫,能取得比较好的效果,但应用开发工程师常常抱怨平台的效率不够高,占用了过多的cycle和内存。嵌入式产品对处理密度(最终反映到产品的成本、功耗等关键指标上)的要求常常很高,对平台的cycle和内存使用有比较高的要求,而高效的实现方式常常要结合具体应用才能得出。建议平台开发工程师多从应用(主要指的是framework)角度考虑,在通用性和高效率之间找到合适的平衡点。 |