学位论文 > 优秀研究生学位论文题录展示

基于μClinux平台的SATA硬盘控制器SIL3114驱动移植的方法研究

作 者: 陆银丽
导 师: 黄智伟
学 校: 南华大学
专 业: 物理电子学
关键词: 驱动移植 编译 测试 μClinux SATA硬盘控制器SIL3114 S3C2510 DVR
分类号: TP333.35
类 型: 硕士论文
年 份: 2012年
下 载: 26次
引 用: 0次
阅 读: 论文下载
 

内容摘要


本课题是嵌入式数字视频录像机(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中,实现了驱动移植,可以明显提高效率,缩短开发周期。本文所介绍的驱动移植方法,也可以为那些不熟悉内核编码规则以及具体硬件工作原理的开发人员,提供一种有效的驱动移植途径。

全文目录


摘要  3-4
Abstract  4-9
第一章 绪论  9-14
  1.1 课题背景和意义  9-13
    1.1.1 课题背景  9-12
    1.1.2 研究意义  12-13
  1.2 本文概述  13-14
第二章 搭建及配置开发平台  14-26
  2.1 安装与配置 Linux 平台  14-19
    2.1.1 安装虚拟机 VMware Workstation  15
    2.1.2 安装嵌入式操作系统 Ubuntu  15-16
    2.1.3 配置 Linux 平台  16-19
  2.2 配置 PC 机平台  19-20
    2.2.1 配置 FTP 客户端  19
    2.2.2 设置 DNW  19-20
    2.2.3 安装 Source Insight  20
  2.3 建立交叉编译环境及测试  20-25
    2.3.1 安装交叉编译工具  21-22
    2.3.2 修改环境变量  22-23
    2.3.3 示例程序的编写与测试  23-25
  2.4 小结  25-26
第三章 移植 SIL3114 的驱动  26-65
  3.1 嵌入式系统开发的流程  26
  3.2 SIL3114 驱动移植流程图的设计  26-28
    3.2.1 静态编译与动态编译  26-28
    3.2.2 SIL3114 驱动移植流程图的设计  28
  3.3 μClinux 内核的配置系统  28-35
    3.3.1 make 工具及工作原理  30-31
    3.3.2 Makefile 基本结构  31
    3.3.3 Makefile 规则  31-33
    3.3.4 Config.in 功能及简单语法  33-35
  3.4 Gcc 编译流程  35-37
  3.5 获取标准μClinux 内核  37-38
  3.6 源内核环境下的模块编译  38-45
    3.6.1 确定处理器和编译器类型  39
    3.6.2 编写 Makefile  39-41
    3.6.3 分析头文件的搜索路径  41-43
    3.6.4 分析内核中的条件编译  43-44
    3.6.5 引用头文件  44-45
    3.6.6 编译结果及分析  45
  3.7 目标内核下的模块编译  45-52
    3.7.1 建立目标内核下模块编译条件  45-46
    3.7.2 分析解析错误(parse error)  46-48
    3.7.3 分析隐式声明  48-50
    3.7.4 分析内建函数  50-52
    3.7.5 编译结果及分析  52
  3.8 目标内核下的静态编译  52-64
    3.8.1 修改配置文件 Makefile 和 Config.in  52-53
    3.8.2 分析 Makefile 的隐晦规则  53-54
    3.8.3 编译目标内核  54-56
    3.8.4 分析链接过程  56-59
    3.8.5 导出全局符号  59-62
    3.8.6 分析未定义变量  62-63
    3.8.7 结果及分析  63-64
  3.9 小结  64-65
第四章 测试  65-75
  4.1 嵌入式系统的软件组成  65
  4.2 常见 Bootloader 的启动过程  65-66
  4.3 分析 ARMboot 启动代码  66-70
  4.4 ROMFS 文件系统  70-71
  4.5 测试  71-74
    4.5.1 利用 H-JTAG 烧写 Bootloader  72-73
    4.5.2 烧写内核和文件系统  73-74
  4.6 小结  74-75
第五章 总结与展望  75-77
参考文献  77-82
致谢  82-83
攻读硕士学位期间发表的论文  83

相似论文

  1. 半球谐振陀螺误差分析与测试方法设计,V241.5
  2. 基于无线通信的弹载计算机系统BIT设计,TJ414
  3. 基于无线传感器网络的电动汽车电池组综合测试技术研究,U469.72
  4. 低轨卫星移动信道特性模拟硬件实现,TN927.23
  5. 基于WEB的仿真互操作性测试工具研究,TP391.9
  6. 测量微波材料介电常数的新方法研究,O441.6
  7. 电子产品质量监控测试设备设计,TN06
  8. 物料悬浮速度智能测试系统的设计研究,S220.2
  9. 基于形式化UML测试序列生成方法研究,TP311.53
  10. 温压炸药爆炸温度场存储测试技术研究,TQ560.7
  11. 基于PC+运动控制卡的雕铣系统开发及铣削仿真研究,TG54
  12. 电动缸的测试系统设计及建模,TH137.51
  13. 悬臂梁时变系统设计及虚拟实验研究,TJ303
  14. 面向方面软件开发与编译器技术分析研究,TP311.52
  15. 双动力汽车控制器智能测试系统的设计与实现,TP274
  16. 横组合知识强化,中国大学生二语心理词库重构与二语习得,H09
  17. 统计方法在我国外语测试领域应用的调查研究,H319
  18. 完形填空应用于口语测试的效度研究,H319
  19. 高中英语写作直接测试与间接测试效度差异研究,G633.41
  20. 串联混合动力城市客车整车控制器研制与应用,U469.7
  21. 嵌入式通信管理装置的设计与研究,TP368.1

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 电子数字计算机(不连续作用电子计算机) > 存贮器 > 磁存贮器及其驱动器 > 磁盘存贮器
© 2012 www.xueweilunwen.com