整个嵌入式系统移植中核心就是驱动程序的开发,驱动程序的开发一般按照板载芯片来划分,比如蓝牙,红外,网卡,键盘等等。
驱动程序的开发相比与一般的程序开发有一些特点,从直观的意义上来说,驱动开发需要具备硬件和软件条件,硬件包含开发板,必要的硬件调试工具。软件包含参考的同类驱动的结构,下层依赖接口或者其他驱动如总线驱动。还需要了解上层服务接口,尤其在异步服务中,如何通讯是很重要的问题。需要对操作系统内核比较了解,驱动程序是牵一发动全身的部件,具有很强蝴蝶效应。文档,测试程序和代码复查必要要严谨。
驱动程序的开发如果基于同类芯片不同开发板的情况,可以按照正常的瀑布型进行。如果是重新开发一个新的驱动,一般原型法和增量型开发较多,尤其以原型法常见,快速的检验控制方式。需要注意的是必须要抛弃原型重新设计定制驱动的框架。考虑周全。
不论那种方式,需要格外注意的是对硬件和依赖的其他驱动接口需要仔细测试。确保开发的软硬件基础是好的。针对驱动需要开发测试程序,这个也应该写入需求文档中,详细地进行驱动的单元测试并记录结果。
另外对于异常情况的处理也是很重的,统一异常处理的方式和格式。按照整个操作系统的风格分类错误,正确处理。
驱动程序的开发相比与一般的程序开发有一些特点,从直观的意义上来说,驱动开发需要具备硬件和软件条件,硬件包含开发板,必要的硬件调试工具。软件包含参考的同类驱动的结构,下层依赖接口或者其他驱动如总线驱动。还需要了解上层服务接口,尤其在异步服务中,如何通讯是很重要的问题。需要对操作系统内核比较了解,驱动程序是牵一发动全身的部件,具有很强蝴蝶效应。文档,测试程序和代码复查必要要严谨。
驱动程序的开发如果基于同类芯片不同开发板的情况,可以按照正常的瀑布型进行。如果是重新开发一个新的驱动,一般原型法和增量型开发较多,尤其以原型法常见,快速的检验控制方式。需要注意的是必须要抛弃原型重新设计定制驱动的框架。考虑周全。
不论那种方式,需要格外注意的是对硬件和依赖的其他驱动接口需要仔细测试。确保开发的软硬件基础是好的。针对驱动需要开发测试程序,这个也应该写入需求文档中,详细地进行驱动的单元测试并记录结果。
另外对于异常情况的处理也是很重的,统一异常处理的方式和格式。按照整个操作系统的风格分类错误,正确处理。