《基于嵌入式技术的智能监控系统显示模块的驱动与应用开发-毕业设计.doc》由会员分享,可在线阅读,更多相关《基于嵌入式技术的智能监控系统显示模块的驱动与应用开发-毕业设计.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、信息科学与技术学院学士学位论文JIU JIANG UNIVERSITY毕 业 论 文 题 目 基于嵌入式技术的智能监控系统显示模块的驱动与应用开发 英文题目 Driven/Application Development of Display Module in Intelligent Monitoring System Based on Em- bedded Technology 院 系 信息科学与技术学院 专 业 计算机科学与技术 姓 名 唐芳杰 班级学号 信A081150 指导教师 刘华中 二一二年五月42摘 要基于嵌入式技术的智能监控系统在当今社会被广泛应用于办公以其家居和公共场所,其显
2、示模块主要以LCD屏来进行显示,LCD也被广泛的应用与手机、平板电脑等场合。系统从整个架构上可以分为硬件和软件两部分,硬件部分在系统中关注的是S3C2410开发板和LCD屏,软件部分主要是U-boot、Linux操作系统与根文件系统。驱动与应用是基于Linux内核上所进行的开发。系统主要对基于嵌入式技术的智能监控系统显示模块的驱动与应用进行开发,主要完成开发板上的Linux+ARM嵌入式系统搭建,并开发LCD驱动,还做了智能监控系统显示模块相关的服务器搭建。系统采用嵌入式Linux操作系统,在系统进行开发之前,首先需要搭建嵌入式系统开发环境。在搭建好嵌入式系统开发环境之后,再对显示模块的驱动进
3、行开发,在内核中将显示模块的驱动进行加载,然后以开发板作为服务器端搭建服务器。最后在PC机上以客户端或者在服务器端本地进行显示操作。关键字:嵌入式,智能监控系统,LCD显示屏AbstractBased on embedded technology of intelligent monitoring system in todays society is widely used in office with its household and public places, the display module mainly to LCD screen to that LCD is widely
4、applied with the mobile phone, tablet computer and so on.From the whole framework system hardware and software can be divided into two parts, hardware part of our attention is S3C2410 development board and LCD screen, software of main is U-boot, Linux operating system with root file system. Drive an
5、d application is based on the Linux kernel of the development. System mainly based on embedded technology to the intelligent monitoring system display module driver and application development, mainly on the board finish development Linux + ARM embedded system set up, and the development of LCD driv
6、e, also do intelligent monitoring system of the display module related server structures. The system uses the embedded Linux operating system, in this system before development, we first need to build embedded system development environment. In apparent embedded system developing environment, then t
7、o display module driver of development, will show in the kernel modules of the drive for loading, and then, with development board to serve as the server build server. Finally in the PC to the client on the server or local show operation. Keywords: Embedded, Intelligent monitoring system, LCD目 录摘 要I
8、AbstractII1 绪论1.1选题背景(1)1.2 选题意义(2)1.3 课题国内外研究现状(2)1.4论文主要工作(3)1.5论文结构(4)2 系统总体架构设计2.1硬件架构设计(5)2.2软件架构设计(7)2.3本章小结(8)3 硬件原理分析3.1 LCD屏工作时序分析(9)3.2 LCD控制器分析(10)3.3本章小结(12)4 驱动设计与开发4.1嵌入式ARM-Linux环境建立(13)4.2 LCD驱动结构设计(17)4.3 LCD驱动程序的开发(20)4.4 LCD设备驱动的加载(26)4.5本章小结(27)5 显示模块在系统中的应用实现5.1搭建BOA服务器(28)5.2服务
9、器端的实现(29)5.3客户端的实现(31)5.4本章小结(32)6 系统测试与维护6.1系统测试(33)6.2本章小结(37)总 结(38)致 谢(40)参考文献(41)信息科学与技术学院学士学位论文1 绪论监控系统是用于指定场景区域进行监视,并把其视频信息传递给监控者,使其能根据情况采取适当的措施。监控技术是随着计算机技术、信息技术的发展而发展的,传统的监控系统包括模拟场景监控和数字视频监控。它们都能准确地反映被监控场景的情况,满足人们对安全性的需要。而且随着计算机视觉与人工智能技术发展,新一代的智能监控技术产生了。智能监控系统采用智能监控技术,与计算机视觉进行紧密的结合,从而实现了不需要
10、人为干预,依靠计算机自动分析感知器记录的视频序列图像,对动态场景中运动目标的定位、识别与跟踪的目的,在此基础上分析和判断目标的行为,在发生异常时做出反应,它具有类似人一样的智能,能代替人完成一些监视任务1。智能化是视频监控技术的最高境界,监控系统由目视解释转化为自动解释是视频监控技术的飞跃,是安防技术发展的必然。随着先进理论的不断应用,智能监控系统将会在未来的安防领域中发挥更加重要的作用。1. 1选题背景近些年来,智能监控技术在很多方面得到了广泛的应用:(1)物业管理。据公安部2011年发布的不完全统计,60%的刑事案件为入室盗窃,对此,人民越来越关注自身家居的安全性2。而智能监控系统发展到现
11、在,只要在相关的硬件和软件便可实现。(2)交通管理。随着我国私家车的快速增长,城市交通管理也成为各大城市管理的一大难题。而智能监控系统能通过远程视频准确的了解各个街道的交通状态,从而充分利用现有的道路资源,提高交通管理的能力。(3)军事领域。我国是个幅员辽阔的大国,有着上万公里的海岸线和边界线,因此,及时的掌握边防区域的情况有着很重要的意义。通过建立智能监控系统,能提高情报获取的实时性和综合处理能力。1.2 选题意义智能视频监控系统是计算机嵌入式领域一个新兴的应用方向和备受关注的前沿课题。伴随着网络技术和数字视频技术的飞速发展,监控技术正向着数字化、智能化、网络化方向不断前进3。智能视频监控系
12、统的需求主要来自于那些对安全要求敏感的场合,如军队、银行、商店、停车场、居民小区、交通路口、商业大楼等。当盗窃、追赶、滞留等异常行为发生时,该类系统能够向保卫人员准确及时地发出警报,从而避免犯罪的发生,同时也减少了雇佣大批监视人员所需要的人力、物力与财力的投入4。1. 3 课题国内外研究现状智能视频监控系统发展了短短二十几年时间,从最早模拟监控到前些年火热数字监控再到现在方兴未艾网络视频监控,发生了翻天覆地变化。在IP技术逐步统一全球今天,从技术角度出发,智能视频监控系统发展划分为第一代模拟视频监控系统,到第二代基于“PC+多媒体卡”数字视频监控系统,到第三代完全基于IP网络视频监控系统5。第
13、一代视频监控是传统模拟闭路视频监控系统,依赖摄像机、缆、录像机和监视器等专用设备。例如,摄像机通过专用同轴缆输出视频信号。缆连接到专用模拟视频设备,如视频画面分割器、矩阵、切换器、卡带式录像机及视频监视器等。这存在大量局限性,有限监控能力只支持本地监控,受到模拟视频缆传输长度和缆放大器限制。有限可扩展性系统通常受到视频画面分割器、矩阵和切换器输入容量限制。录像负载重用户必须从录像机中取出或更换新录像带保存,且录像带易于丢失、被盗或无意中被擦除6。录像质量不高录像是主要限制因素。录像质量随拷贝数量增加而降低。第二代视频监控是当前“模拟-数字”监控系统,“模拟-数字”监控系统是以数字硬盘录像机DV
14、R为核心半模拟-半数字方案,从摄像机到DVR仍采用同轴缆输出视频信号,通过DVR同时支持录像和回放,并可支持有限IP网络访问,由于DVR产品五花八门,没有标准,所以这一代系统是非标准封闭系统,DVR系统仍存在大量局限,复杂布线“模拟-数字”方案仍需要在每个摄像机上安装单独视频缆,导致布线复杂性7。有限可扩展性DVR典型限制是一次最多只能扩展16个摄像机。有限可管理性您需要外部服务器和管理软件来控制多个DVR或监控点。有限远程监视/控制能力您不能从任意客户机访问任意摄像机。您只能通过DVR间接访问摄像机。 磁盘发生故障风险与RAID冗余和磁带相比,“模拟-数字”方案录像没有保护,易于丢失。第三代
15、视频监控是未来完全IP视频监控系统IPVS,全IP视频监控系统与前面两种方案相比存在显著区别。该系统优势是摄像机内置Web服务器,并直接提供以太网端口。这些摄像机生成JPEG或MPEG4数据文件,可供任何经授权客户机从网络中任何位置访问、监视、记录并打印,而不是生成连续模拟视 频信号形式图像8。全IP视频监控系统它巨大优势是:简便性-所有摄像机都通过经济高效有线或者无线以太网简单连接到网络,使您能够利用现有局域网基础设施9。您可使用5类网络缆或无线网络方式传输摄像机输出图像以及水平、垂直、变倍(PTZ)控制命令(甚至可以直接通过以太网供)。强大中心控制一台工业标准服务器和一套控制管理应用软件就
16、可运行整个监控系统。易于升级与全面可扩展性-轻松添加更多摄像机。中心服务器将来能够方便升级到更快速处理器、更大容量磁盘驱动器以及更大带宽等10。全面远程监视-任何经授权客户机都可直接访问任意摄像机。您也可通过中央服务器访问监视图像11。坚固冗余存储器-可同时利用SCSI、RAID以及磁带备份存储技术永久保护监视图像不受硬盘驱动器故障影响。1. 4论文主要工作(1)针对S3C2410处理器的FS2410平台设计基于嵌入式技术智能监控系统方案;(2)针对S3C2410处理器和LCD屏硬件原理开发显示模块的驱动,并将驱动加载到已经准备安装到开发板上的Linux内核中;(3)针对S3C2410开发平台
17、,构建嵌入式交叉开发环境,移植Uboot、Linux内核,创建根文件系统;(4)构建嵌入式BOA服务器,通过客户端浏览器和视频服务器的交互来实现对服务器的相关设置,在客户端用浏览器或在服务器本地进行视频显示。1. 5论文结构本论文重点介绍了智能监控系统显示模块的驱动与应用开发,包括相关硬件的原理分析、驱动设计等。全文共分六章:第1章绪论,介绍了系统的开发背景及研究现状,本文所作的工作;第2章系统总体架构,主要介绍了系统硬件和软件的组成部分;第3章主要是硬件原理分析,分析了LCD屏的发展过程与硬件结构原理;第4章驱动设计分析,主要介绍了Linux下驱动的设计及帧缓冲,及搭建环境的具体过程,然后从
18、硬件原理分析设计出相关的驱动程序;第5章系统实现,主要介绍了BOA服务器的搭建及视频流的传输过程,并将LCD驱动应用到系统当中;第6章系统测试及维护,对整个系统进行验证,看本模块的功能是否支持整个系统的所需求的功能。2 系统总体架构设计本系统的架构可以分为硬件和软件两部分,以下分别从硬件和软件两方面来进行阐述。系统总体架构如图2-1所示。系统软件硬件根文件系统Linux操作系统U-bootLCD屏FS2410应用程序驱动程序图2-1系统总体架构图2. 1硬件架构设计要完成本系统,我们就要关注本系统所要用到的硬件,在本系统中,主要用到的硬件为FS2410开发板和和TFT型LCD屏。(1)FS24
19、10开发板FS2410 采用SAMSUNG S3C2410A 微处理器,它的处理器主频为203MHz,系统采用的开发板由处理器、存储器、调试接口、I/O接口、按键、电源及其他的一些小配件组成。其硬件资源如表2-1所示。表2-1 FS2410开发板硬件资源表名称描述处理器SAMSUNG S3C2410,ARM9TDMI,主频203MHz存储器64M Bytes NAND FLASH (K9F1208)2M Bytes NOR FLASH (SST39VF1601)EEPROM (AT24C02)64M Bytes SDRAM调试接口20芯标准JTAG接口I/O接口音频接口,立体声音频输入接口(U
20、DA1341)50芯LCD接口引出了LCD控制器和触摸屏的全部信号两个标准5线串行接口,波特率高达115200bps10M网口(CS8900Q3,带发送和接受指示灯)内部实时时钟(带后备锂电池)一个USB 1.1 DEVICE接口两个USB 1.1 HOST 接口SD卡接口按键复位按键16个小按键电源开关电源供电,输入直流电压范围是712V,带电源指示灯其他一个EEPROM (AT24C02)用来验证IIC总线读写四个高亮LED一个蜂鸣器 (带使能控制的短路块)一个精密可调电阻接到ADC引脚上用来验证模数转换一个50芯2毫米间距双排标准连接器用作扩展口,引出了地址线、数据线、读写、片选、中断、
21、IO口、ADC、5V和3.3V电源、地等用户扩展可能用到的信号(2)TFT-LCD屏TFT技术是二十世纪九十年代发展起来的,采用新材料和新工艺的大规模半导体全集成电路制造技术,是液晶(LC)、无机和有机薄膜电致发光(EL和 OEL)平板显示器的基础。TFT是在玻璃或塑料基板等非单晶片上(当然也可以在晶片上)通过溅射、化学沉积工艺形成制造电路必需的各种膜,通过对膜的加 工制作大规模半导体集成电路(LSIC)。采用非单晶基板可以大幅度地降低成本,是传统大规模集成电路向大面积、多功能、低成本方向的延伸。在大面积玻璃 或塑料基板上制造控制像元(LC或OLED)开关性能的TFT比在硅片上制造大规模IC的
22、技术难度更大。对生产环境的要求(净化度为100级),对原材料 纯度的要求(电子特气的纯度为99.999985%),对生产设备和生产技术的要求都超过半导体大规模集成,是现代大生产的顶尖技术。2. 2软件架构设计软件架构设计从总体上可以分为三个部分:U-boot,Linux操作系统与根文件系统,其中Linux内核又可以分为驱动程序与应用程序两种。(1)U-boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似。U-Boot不仅仅支持嵌入式Linux系统的引导
23、,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统12。U-boot在操作系统之前运行。它首先定义了一个入口,由于一个可以执行的镜像文件必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作通过修改连接器脚本来完成。在定义完入口之后,设置异常向量,并设置CPU的速度、时钟频率和中断控制寄存器。然后初始化内存控制器,将ROM中的程序复制到RAM中,再初始化堆栈,最后跳转到RAM。在RAM中U-boot调用一系列初始化函数,初始化flash设备和系统内存分配函数,如果目标
24、用于nand设备,再初始化该类设备,最后初始化相关网络设备,填写ip地址等,进入命令循环,接收用户从串口输入的命令,进行相应的工作初。(2) Linux操作系统,它是是一款免费的操作系统,用户可以通过多种途径免费获得,并且可以任意修改其源代码。正是由于这一点,本系统才选择Linux操作系统作为软件开发的系统。Linux系统的内核完全开放,并且有强大的网络支持功能,它拥有一整套的工具链,很容易自行建立嵌入式系统的开发环境和交叉运行环境,并且拥有广泛的硬件支持特性。无论是RISC还是CISC、32位或者64位的处理器都能在Linux下运行。Linux还具有装载和卸载程序的能力,所有应用程序都以文件
25、的方式存在文件系统中,在必要的时候被装载到内核中,以节省RAM。并且Linux移植非常方便,适合各种的开发环境。Linux操作系统是系统中重要的组成部分之一,它从功能上来说可以分为驱动程序与应用程序两部分,而LCD驱动也属于Linux系统中驱动程序的一部分,所做的系统也是基于Linux操作系统而开发的13。它将存储器与外设分为三类:字符设备、块设备和网络设备。LCD驱动就属于字符设备,除网络设备外,字符设备与块设备都被映射到Linux系统的文件和目录,都是通过文件系统的系统调用接口opne()/write()/read()/close()等访问字符设备和块设备。(3) 根文件系统,由于系统选定
26、的操作系统为Linux,而Linux操作系统支持多种文件系统,为了对各类文件系统进行统一的管理,Linux引入了虚拟文件系统VFS,为各类文件系统提供统一的操作界面和应用编程接口。但是不同的文件系统有不同的特点,因此得根据存储设备的硬件特性、系统需求等有不同的应用场合。系统中所采用的根文件系统用busybox制作。根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给Linux带来了许多强大和灵活的功能,同时也带来了一些复杂性。在做开发的时候需要清楚的了解根文件系统的基本结构,以及细心的选择所需要的系统库
27、、内核模块和应用程序等,并配置好各种初始化脚本文件,以及选择合适的文件系统类型并把它放到实际的存储设备的合适位置。2. 3本章小结本章从硬件和软件两方面来对整个系统的架构进行了设计。硬件方面系统所需的开发板配置与LCD屏。软件方面介绍了U-boot、嵌入式操作系统与根文件系统的选择并进行了简单的说明介绍。3 硬件原理分析在了解某一硬件怎么工作时,必须先分析该硬件的原理及构造。若不对该硬件原理进行了解,就不能真正满足系统所需求的驱动程序。因此深入了解硬件原理构造是硬件驱动开发的前途条件,本章主要从硬件原理对智能监控系统的显示模块进分析。3. 1 LCD屏工作时序分析TFT屏是目前嵌入式系统应用的
28、主流,为TFT-LCD屏的典型时序如图3-1所示。时序图中的VCLK、HSYNC和VSYNC分别表示像素时钟信号、行同步信号和帧同步信号,VDEN为数据有效标志信号,VD为图像的数据信号。 VSYNC HSYNC VDEN 1 FRAME 1 LINE HSYNC VCLK VD VDEN图3-1 TFT-LCD屏工作时序图像素时钟信号VCLK每发出一个脉冲代表着一个新的像素的图像数据开始发送,作为行同步信号的HSYNC,每发出一个脉冲表明新的一行图像资料开始发送,而作为帧同步信号的VSYNC,每发出一个脉冲,就代表这有新的一帧图像数据开始发送。在帧同步信号以及行同步信号的头尾都必须留有回扫时
29、间。这样的时序安排起源于CRT显示器电子枪偏转所需要的时间,但后来已经变成了实际上的工业标准,因此在TFT-LCD屏中也包含了回扫时间。LCD控制器中应该设置的TFT-LCD屏的参数如图3-2所示。其中上边界和下边界为帧切换的回扫时间,左边界和右边界为行切换的回扫时间,水平同步和垂直同步分别是行同步和帧同步本身所需要的时间。xres为屏幕的水平分辨率,yres为屏幕的垂直分辨率,系统所采用的分辨率为320*240。 上边界 y rex 左边界 右边界 垂直 同步 x rex 下边界 水平 同步图3-2 LCD控制器中的时序参数设置3. 2 LCD控制器分析LCD控制器的功能是产生显示驱动信号,
30、驱动LCD显示器。用户只需要通过读写一系列的寄存器,完成配制和显示控制。S3C2410 LCD控制器支持STN和TFT屏,对于TFT屏,其特性如下:支持单色、4级灰度、256色的调色板显示模式。支持64K和16M色非调色板显示模式。支持分辨率为640*480,320*240及其他多种规格的LCD。S3C2410的LCD控制器内部逻辑结构如图3-3所示。REGBANK是LCD控制器的寄存器组,用来对LCD控制器的各项参数进行设置。而LCDCDMA则是LCD控制器专用的DMA信道,负责将视频资料从系统总线(System Bus)上取来,通过VIDPRCS从VD23:0发送给LCD屏。同时TIMEG
31、EN和LPC3600负责产生LCD屏所需要的控制时序(如VSYNC,HSYNC,VCLK,VDEN),然后从VIDEO MUX送给LCD屏。VIDEOMUXTIMEGEN VCLK /LCD_HCLKREGBANK VLINE/HSYNC/CPV LPC3600 VFRAME/VSYNC/STV VM/VDEN/TP System . Bus LCDVF0:3LCDCDMAVIDPRCS VD23:0 LPC3600 is a timing control logic unit for LTS35Q1-PD1 or LTS350Q1-PD2 图3-3 S3C2410的LCD控制器内部逻辑结构通
32、常使用的LCD控制管脚的定义如下:VCLK:像素时钟信号;VD 23:0:LCD像素输出端口;VM/VDEN/TP: LCD驱动器的AC偏置信号(STN)数据使能信号(TFT)SEC TFT源驱动器数据加载脉冲信号复用端口。S3C2410 LCD控制器内部的寄存器可以控制LCD控制器接口的工作模式,LCD驱动编写的主要工作就是正确地设置所用LCD屏的CPU寄存器。S3C2410中与LCD相对应的寄存器如表3-1所示,给出了各个寄存器的简要描述。(LCDCON15是最重要的控制寄存器,其详细说明可以参看S3C2410处理器的详细说明书)。表3-1 LCD主要控制器LCD控制器LCDCON10X4
33、D000000WR/WLCD控制器1LCDCON20X4D000004LCD控制器2LCDCON30X4D000008LCD控制器3LCDCON40X4D00000CLCD控制器4LCDCON50X4D000010LCD控制器5LCDSADDR10X4D000014帧缓冲区起始地址1LCDSADDR20X4D000018帧缓冲区起始地址2LCDSADDR30X4D00001C虚拟屏地址设置REDLUT0X4D000020STN:红色查找表GREENLUT0X4D000024STN:绿色查找表BLUELUT0X4D000028STN:蓝色查找表DITHMODE0X4D00004CSTN:抖动模式
34、TPAL0X4D000050TFT:临时调色板LCDINTPND0X4D000054LCD中断请求LCDSRCPND0X4D000058LCD中断源LCDINTMSK0X4D00005CLCD中断屏蔽LPCSEL0X4D000060LPC3600控制3. 3本章小结本章主要介绍了LCD屏的发展及LCD一些工作原理,由于篇幅有限,并没有很详细的对LCD的硬件结构进行说明,只是对后面跟驱动开发有关的方面进行了一下说明。4 驱动设计与开发设备驱动程序是操作系统内核和机器硬件之间的接口,设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可 以像操作普通文件一
35、样对硬件设备进行操作。设备驱动程序是内核的一部分,它主要完成的功能有:对设备进行初始化和释放;把数据从内核传送到硬件和从硬件读 取数据;读取应用程序传送给设备文件的数据、回送应用程序请求的数据以及检测和处理设备出现的错误。4.1嵌入式ARM-Linux环境建立4.1.1 LCD驱动开发环境的搭建在开发LCD驱动之前必须要现在Ubuntu里面建立交叉编译工具。以下是制作交叉编译工具gcc-3.4.5-glibc-2.3.6的具体步骤:(1)安装crosstool工具依赖的软件包$ sudo apt-get install build-essential gawk autotools-dev au
36、tomake texinfo libtool gcjcvs patch bison flex cvsd libncurses5-dev$ sudo apt-get install gcc-4.1然后$ sudo rm /usr/bin/gcc(删除GCC,它只是个到gcc-4.3.2的软链接文件)$ sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc(建立GCC到gcc-4.1的软链接)(2)创建工作目录并拷贝相关的软件包$ mkdir /home/farsight/downloads把需要用到的工具包拷贝到downloads目录中。用到的工具包有如下:gcc-3
37、.4.5.tar.gz;glibc-2.3.6.tar.gz;linux-2.6.14.tar.gz;crosstool-0.43.tar.gz;binutils-2.15.tar.gz;glibc-linuxthreads-2.3.3.tar.gz;linux-libc-headers-2.6.12.0.tar.bz2;gdb-6.6.tar.bz2将这些工具包拷贝到/home/farsight/downloads里面。(3)解压软件包,修改脚本文件在demo-arm-softfloat.sh里修改文件:set-exTARBALLS_DIR=$HOME/downloads #表示下载的源码的
38、存放目录RESULT_TOP=/opt/crosstool #表示生成的工具链的存放目录export TARBALLS_DIR RESULT_TOP在eval cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.6.dat sh all.sh -notest 后加-gdb 由于交叉编译器是编译2.6.14的内核,那么在gcc-3.4.5-glibc-2.3.6.data中修改LINUX_DIR=linux-2.6.14,并添加GDB调试功能。在arm-softfloat.dat文件中修改TARGET=arm-linux-gnu,在all.sh文件里面修改TOOL
39、COMBO=3.4.5,将PREFIX=$PREFIX-$RESULT_TOP/$TOOLCOMBO。(4)执行./demo-arm-softfloat.sh进行编译,得到交叉编译工具。4.1.2 制作bootloader工具在制作好交叉编译工具之后,用交叉编译工具编译u-boot得到bootloader工具。具体步骤如下:(1) 进入U-boot所在目录下的board/samsung/,cp smdk2410 fs2410-a;(2) 进入fs2410目录,mv smdk2410.c fs2410.c;(3) 在Makefile下修改,COBJS:=fs2410 flash.o;(4) 回到
40、顶层Makefile里面修改增加的内容,并修改交叉编译工具为arm-linux-gnu-;(5) 在include/configs/fs2410.h中设置内核加载地址、NOR FLASH支持与NAND FLASH支持,然后编译U-boot得到u-boot.bin;(6) 利用H-jtag将u-boot烧写在fs2410开发板上的Nand flash上;(7) 打开开发板,进入命令状态设置环境变量,设置好之后重启开发板则得到了bootloader工具。4.1.3 Linux内核的移植在bootloader制作好之后,我们就可以对内核进行编译,具体步骤如下:(1) 在/home/farsight目
41、录,将Linux源代码解压至该目录下,本课题用到的内核为Linux-2.6.14内核;(2) 对内核进行最初始的配置,在内核中修改映射地址与平台信息;(3) 编译内核,在arch/arm/boot 目录下将会生成ARM Linux内核镜像文件uImage,将其拷贝到根目录文件下的tftpboot文件夹下。4.1.4 根文件系统的制作在内核编译完成的情况下可以制作根文件系统,并通过NFS服务器进行挂接,具体步骤是:(1) 从网下下载一个busybox-1.17.3.tar.gz,在Ubuntu里面进行解压操作;(2) 配置源码,通过make menuconfig来配置,在BusyboxSettings选项里的BuildOptions选择BuildBusyBox as a static binary(no shared libs),并在Cross Compiler prefix选项里填入交叉编译工具的链接路径;(3) make编译;(4) 安装busybox,make install,则在busybox默认安装路径下生成一个_install文件夹,此文件夹里面会生产四个最初始的四个文件夹:bin、linuxrc、sbin、usr;(5) 添加其他所需目录,mkdir dev