论文部分内容阅读
本课题是嵌入式数字视频录像机(DVR,Digital Video Recorder)项目中的一部分,根据项目要求,需要将标准μClinux2.4.27(以下称为源内核)中SATA硬盘控制器SIL3114的驱动代码移植到μClinux2.4.17(以下称为目标内核)中。依据课题开发要求,搭建及配置了嵌入式开发平台。对静态编译和动态编译的特点进行了分析,动态编译了SIL3114的驱动代码,之后再编译到目标内核空间,成功实现了SIL3114驱动代码在μClinux不同版本之间的移植。在所选择的嵌入式开发平台上,配置了Windows和Linux开发环境,建立交叉编译环境,并进行了测试。Windows平台的配置包括FTP客户端以及DNW和Source Insight的软件配置。在Linux开发环境的配置过程中,进行了网络服务、VMware Tools、共享文件、FTP服务端、root用户登录以及全屏显示等配置。根据嵌入式DVR项目的具体要求,结合内核的编译原理,设计了SIL3114驱动代码在μClinux不同版本之间移植的流程图。依据流程图,SIL3114驱动代码的移植主要分三步来完成:首先,实现基于源内核环境下SIL3114驱动代码的动态编译;然后,实现基于目标内核环境下SIL3114驱动代码的动态编译;最后,根据静态编译原理,将SIL3114的驱动代码静态编译到目标内核,成功生成二进制内核可执行文件linux.bin。在测试过程中,进行了启动代码ARMboot的分析,确定如何支持SATA硬盘控制器。然后,利用H-JTAG工具将ARMboot、目标内核二进制文件以及文件系统烧入Flash中,实现了理论分析与测试。采用上述方法将μClinux2.4.27内核中SATA硬盘控制器SIL3114的驱动移植到μClinux2.4.17中,实现了驱动移植,可以明显提高效率,缩短开发周期。本文所介绍的驱动移植方法,也可以为那些不熟悉内核编码规则以及具体硬件工作原理的开发人员,提供一种有效的驱动移植途径。