长 沙 学 院
课 程 设 计 说 明 书
题
学
目 Linux 移植及驱动应用程序
院
计算机工程与应用数学
专 业 ( 班 级 )
姓
学
名
号
指 导 教 师
起 止 日 期
2019.5.27~2019.6.7
课程设计任务书
课程名称:操作系统原理课程设计
设计题目:Linux 移植及驱动应用程序
已知技术参数和设计要求
1. 问题描述(功能要求)
物联网设备报警功能有很多应用场合,如野外现场监控报警、视频监控报警、设备异常报警等等。
本课题任务是移植安装 Linux 操作系统,开发 LED 或蜂鸣器报警应用设备的驱动程序及其应用程序。要
求完成的任务和实现的功能有:
(1) 以 FS4412 开发板为开发平台,移植 Linux 操作系统,含引导程序、Linux 操作系统内核、文
件系统。具体任务有搭建嵌入式 Linux 开发环境、编译 Bootloader、裁剪和编译 Linux 内核、制作和
挂载 NFS 文件系统。
(2) 开发 Linux 按键驱动程序,驱动开发板上三个按键。
(3) 开发 LED 驱动程序或者 PWM 驱动程序。要求 LED 驱动程序能驱动开发板上 4 个 LED,能接收应
用程序控制参数选择 LED、变换 LED 工作模式。PWM 驱动程序能驱动蜂鸣器发声。
(4) 开发 Linux 驱动应用程序,根据控制数据或按键数据控制 LED 或蜂鸣器工作。
2. 运行环境要求
微型计算机:启天 M4500-D600。
Microsoft Windows 7 x64 操作系统
华清远见 FS4412 嵌入式 ARM9 开发板。
3. 技术要求
(1) 移植的 Linux 操作系统版本不低于 Ubuntu 12.04。
(2) Linux 内核需自己配置和编译。
(3) 控制数据以文本文件形式存储,驱动应用程序读取该文件进行控制。
(4) LED 驱动和 PWD 驱动可二选其一。
(5) 要求 LED 至少有 3 种显示方式,具体方式自行设计,此处不做统一规定。
(6) 要求蜂鸣器至少两种鸣叫方式,具体方式自行设计,此处不做统一规定。
设计工作量
40 课时
工作计划
1. 班级
2. 课时及教室安排
课题任务与开发环境:2 课时,致远楼 1301
ARM9 接口编程:4 课时,致远楼 1301
引导程序移植:2 课时,致远楼 1301
Linux 系统移植:4 课时,致远楼 1301
文件系统构建:2 课时,致远楼 1301
驱动程序开发:16 课时,致远楼 1301
应用程序开发:4 课时,致远楼 1301
系统测试:2 课时,致远楼 1301
文档撰写:2 课时,致远楼 1301
检查与答辩:2 课时,致远楼 1301
详细安排请参看“操作系统原理课程设计指导课表”。
注意事项
■提交文档
长沙学院课程设计任务书 (每学生 1 份)
长沙学院课程设计说明书 (每学生 1 份)
长沙学院课程设计鉴定表 (每学生 1 份)
指导教师签名:
教研室主任签名:
院长签名:
日期:
日期:
日期:
摘要
本实验基于 FS4412 开发板实现课程设计,完成对开发板移植 Linux 操作系统,烧录
引导程序、安装 Linux 操作系统内核、文件系统的操作。具体完成搭建嵌入式 Linux 开发
环境、编译 Bootloader、裁剪和编译 Linux 内核、制作和挂载 NFS 文件系统。
基于以上基础,再去编写 Linux 按键驱动程序,驱动开发板上三个按键。编写 LED 驱
动程序,驱动开发板上 4 个 LED。编写 PWM 驱动程序,驱动蜂鸣器发声。最后设计 Linux
驱动应用程序,实现开发板能接收应用程序控制参数,完成控制 LED 亮灭和蜂鸣器工作。
关键词:FS4412, Linux,驱动程序
目录
第 1 章 前言 ...........................................................................................................................................................1
1.1 编写目的 .................................................................................................................................................1
1.2 任务概述 .................................................................................................................................................1
第 2 章 需求规格说明 ...........................................................................................................................................1
2.1 运行环境规定 ........................................................................................................................................ 1
2.2 对功能的规定 ........................................................................................................................................ 2
2.3 输入输出要求 ........................................................................................................................................ 3
2.4 外部接口需求 ........................................................................................................................................ 3
第 3 章 开发环境搭建 ...........................................................................................................................................6
3.1 Windows 开发环境搭建 ......................................................................................................................... 6
3.2 Linux 开发环境搭建 ............................................................................................................................. 6
3.3 Linux 交叉开发环境搭建 ..................................................................................................................... 6
第 4 章 Linux 系统移植 ....................................................................................................................................... 7
4.1 引导程序的移植.................................................................................................................................... 7
4.2 Linux 内核的移植 ................................................................................................................................. 7
4.3 Linux 文件系统移植 ............................................................................................................................. 8
第 5 章 系统设计 ...................................................................................................................................................9
5.1 硬件概略图.............................................................................................................................................9
5.2 程序结构 ...............................................................................................................................................10
5.3 模块函数设计 .......................................................................................................................................11
5.3.1 中断处理函数 ....................................................................................................................................11
第 6 章 编码与实现 .............................................................................................................................................14
6.1 LED 驱动 ................................................................................................................................................14
6.2 蜂鸣器驱动...........................................................................................................................................16
6.3 按键驱动 ...............................................................................................................................................19
6.4 报警驱动应用程序 .............................................................................................................................. 22
第 7 章 系统测试用例 ........................................................................................................................................ 23
7.1 按键驱动测试用例 .............................................................................................................................. 23
结论 .......................................................................................................................................................................24
参考文献 ...............................................................................................................................................................25
附录 程序源代码.................................................................................................................................................26
第 1 章 前言
1.1 编写目的
需求规格说明书是系统设计的开端,一份好的需求规格说明书能在编写项目策划、概
要设计和详细设计等文档是起到龙头的作用,同时也是编写测试用例和进行系统测试的关
键性依据。本文档是对 Linux 移植及驱动应用程序的指导性文档,该文档明确对 Linux 移
植及驱动应用程序的需求和支持项目的阅读,此文档的主要功能就是详细的说明本次设计
的内容、开发的环境、预期的结果等。适用于本系统的设计人员和开发人员。
1.2 任务概述
物联网设备报警功能有很多应用场合,如野外现场监控报警、视频监控报警、设备异
常报警等等。本系统目标是开发 LED 报警或蜂鸣器报警应用设备的驱动程序。适用于物联
网设备的报警应用。完成系统移植和报警驱动程序的开发。
本系统基于 Linux 操作系统,通过移植到开发板上搭建嵌入式的 Linux 开发环境编译
Bootloader、裁剪和编译 Linux 内核、制作和并挂载 NFS 文件系统。本系统由 Linux 系统
移植到 FS4412 开发板上使用。
第 2 章 需求规格说明
2.1 运行环境规定
2.1.1 设备
列出运行该系统所需要的硬件设备。包括:设备名称与型号、数量;处理器型号、内
存容量、外存容量、输入输入出接口等。
微型计算机:启天 M4500-D600。
Microsoft Windows 7 x64 操作系统
华清远见 FS4412 嵌入式 ARM9 开发板 8KB 内存
2.1.2 支持软件
1
列出支持软件,包括要用到的操作系统、编译程序、测试支持软件等。
Linux 操作系统 Ubuntu 12.0.4
Microsoft Windows 7 x64 操作系统
Linux 编译器:gcc
串口调试工具:PUTTY.exe
Window 驱动:Fastboot、USB to UART CH340
2.2 对功能的规定
如表 2.1 所示。
表 2.1 系统功能表
功能名称
用户
功能描述
输入
系统响应
输出
Linux 移植 管理员 将 Linux 系
统移植到目
标开发板
LED 驱动程
序
管理员 开发板启动
led 灯点亮
ls /dev
无
dev 文件下的设备目
录
无
无
Led 灯点亮
编
号
0
1
2 按键驱动
管理员 按键控制
按键按下 无
Led 灯点亮或蜂鸣器
响起
程序
led 灯的亮
灭和蜂鸣器
3 蜂鸣器驱
动程序
管理员 开发板启动
蜂鸣器响起
无
无
蜂鸣器响起
Linux 系统移植:将 Linux 系统通过烧写移植到 FS4412 型号开发板,实现小型计算机
功能,并能够挂载文件系统和编译内核文件。
LED 驱动程序:将在 Linux 环境下编译完成的程序烧录到开发板,使开发板完成 LED
灯亮灭的基本功能。
蜂鸣器驱动程序:将在 Linux 环境下编译完成的程序烧录到开发板,使开发板完成蜂
鸣器响和停的基本功能。
按键驱动程序:结合 LED 和蜂鸣器驱动,利用按键控制 LED 和蜂鸣器,完成按键 1 按
下 LED 灯的亮灭控制,按键 2 按下蜂鸣器响或停的控制。
2
2.3 输入输出要求
说明程序需处理的数据实体及其属性,数据名称,数据格式,数据结构,数据取值范
围,数据存储要求,数据处理过程。表格说明示例如表 2.2 所示。
属性名称
类型
长度 取值范围 精度
是否为空 唯一标识
说明
表 2.2 数据实体名称
ret
key_flag
keyval
major
minor
devno
int
int
int
int
int
int
8
8
8
8
8
8
所有数值 低
0/1
-1/1/2
0-260
0-260
0-260
低
低
低
低
低
否
否
否
否
否
否
是
是
是
是
是
是
函数返回值
标志
按键标志
主设备号
次设备号
通过 major
和 minor 构
建设备号
2.4 外部接口需求
2.4.1 用户界面
界面的原则要求,如方便、简洁、美观、一致等。整个系统的界面风格定义,某些功
能模块的特殊的界面要求。
(1)输入设备:按键、电源开关;
(2)输出设备:LCD 显示器、LED 指示灯、蜂鸣器;
(3)显示风格:字符界面、菜单导航方式;
(4)显示方式:1024*768、640*480 等;
(5)输出格式:显示布局、打印格式由设计者确定,以尽可能在一屏显示更多信息
为原则。系统要求显示设备状态信息、环境信息、文件目录信息、终端信息。
3