




免费预览已结束,剩余26页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM的图像采集系统_毕业论文 基于ARM的图像采集系统摘 要近年来随着科学技术的不断发展人们对于生活的安全方便快捷的要求越来越高图像采集已经越来越多地用于智能家居图像识别环境监控等领域本文通过研究当前数字图像采集系统的研究成果和发展趋势设计了一种 基于ARM的数字图像采集系统论文重点研究了系统的软件实现 为了克服传统图像采集系统的不足本文采用常见的USB摄像头作为图像采集设备利用FS_s5pc100开发板进行操作系统移植 采用s5pc100芯片直接控制USB摄像头进行图像数据采集经格式转化后通过LCD控制器在液晶显示屏上显示该系统使用主控芯片完成了图像采集和传送实现的系统贴近于生活具有一定的实用价值关键词嵌入式图像采集s5pc100USBImage Capture System Based on ARMAbstractIn recent years with the continuous development of science and technologypeople have increasingly higher demands for security convenience speedy of life Image acquisition has been increasingly used in smart home image recognition environmental monitoring and other fieldsIn this paper I will design a digital image acquisition system based on ARM by studying the current research results and developing trend of digital image acquisition systemand I focus on the software implementation of the system In order to overcome the deficiency of the traditional image acquisition system I choose USB camera as the image acquisition device and transplant OS into the FS_s5pc100 board in this paper The main control chip s5pc100 controls the USB camera to capture image firstand then it changes the image format and controls the LCD displayer to show the picture With the only main control chip the system can capture and display images this makes the system have practical implications and more closer to our true life Keywordmage Acquisitions5pc100USB目 录第 1 章 前言1第 2 章 相关器件321 摄像头322 显示器5第 3章 总体设计931功能需求932工作原理933软硬件规划10com 硬件规划10com 软件规划10第 4 章 硬件设计1141开发板主控芯片s5pc10011411 s5pc100芯片介绍11com 开发板简介1242 图像数据采集设备1543 显示设备15第 5 章 软件设计1651 Linux 开发环境搭建16com Linux系统及Linux内核简介16com Linux环境搭建步骤概述16com Linux交叉编译环境搭建17com Bootloader移植19com Linux内核移植与配置19com Linux文件系统2152 linux设备驱动移植23com识23com绍23com动2553 图像采集27com 软件流程27com 程序设计27结 论33致 谢34参考文献35第 1 章 前言图像采集起源于20世纪80年代中期在发展初期现实世界画面的存储通过胶片式高速摄像机记录下来随着技术的不断进步图像采集经过了几个发展阶段早期的采集系统庞大而难以扩展在上个世纪末期单片机的问世使数据采集系统发生了翻天覆地的变化但此时处理数据的速度很慢后来高速单片机以及更高速的处理芯片DSPFPGA以及ARM纷纷问世这让数据采集速度得到了飞速的发展同时基于PC的高速数据采集也日趋成熟现在图像采集系统广泛应用于可视电话远程监控以及网络会议等领域而在各种图像处理视频压缩与传输系统中它更是必不可少的组件对图像进行采集处理历来都是一个热点也是一个难点在众多的图像采集系统中大多数都针对特定的用途选择专用的摄像头和视频处理芯片这种传统的方式存在不易购买可扩展性不强价格昂贵等问题近年来对图像采集系统的设计要求日益提高在日常生活科学研究工业生产中都迫切需要廉价易扩展功能强劲的图像采集系统随着计算机与网络技术的飞速发展普通PC所使用的USB摄像头由于价格低廉容易安装使用等优点得到迅速普及然而这种利用通用PC机来进行图像采集的方式会随之带来体积大成本高无法嵌入对象内部等显著问题如何将USB摄像头应用于基于单片机的嵌入式系统中构建出低成本高性能的图像采集系统越来越引起人们的广泛关注然而在PC上使用USB摄像头时通常都需要安装由其生产厂商提供的Windows操作系统下的专用驱动程序想在单片机系统中直接应用非常困难近年来由于网络通信多媒体技术的飞速发展对高性能嵌入式CPU的需求十分迫切为顺应这种潮流各种高速的32位嵌入式微处理器应运而生使得嵌入式系统又进入了一个新的历史发展阶段在嵌入式系统的高端应用中进行多年技术准备的ARM公司适时推出了32位的ARM系列微处理器以明显的性能优势迅速奠定了其主流地位在无线通信网络及消费类电子产品中ARM都获得了广泛的应用在流行的数字音频播放器数字机顶盒和游戏机中都已经从采用DSP转而大量利用ARM技术来实现一直以来普通PC所使用的USB摄像头要想在嵌入式系统中应用十分困难但随着嵌入式操作系统的广泛应用嵌入式系统与PC机上的开发技术渐渐融合加上近年来中星微等免驱摄像头芯片的推出使得这个难题逐渐有了解决之道由于ARM在嵌入式微处理器市场上的主导地位所以本课题将研究如何把USB摄像头应用到基于ARM的嵌入式系统中基于ARM和Linux操作系统的应用开发是近年来最为流行的一门新技术被公认为是嵌入式系统的重要发展方向本文基于ARM Cortex A8 架构的s5pc100芯片强大而稳定的性能linux操作系统对USB的强大支持结合LCD显示屏构建图像采集系统通过USB摄像头对图像采集经由ARM处理器传输控制显示在显示器上第 2 章 相关器件21 摄像头摄像头 CAMERA 又称为电脑相机电脑眼等是一种视频输入设备被广泛的运用于视频会议远程医疗及实时监控等方面摄像头的工作原理大致为景物通过镜头 LENS 生成的光学图像投射到图像传感器表面上然后转为电信号经过AD2 模数转换 转换后变为数字图像信号再送到数字信号处理芯片 DSP 中加工处理再通过USB接口传输到电脑中处理通过显示器就可以看到图像了图1-1 摄像头工作流程摄像头可分为数字摄像头和模拟摄像头两大类数字摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号进而将其储存在计算机里模拟摄像头捕捉到的视频信号必须经过特定的视频捕捉卡将模拟信号转换成数字模式并加以压缩后才可以转换到计算机上运用数字摄像头可以直接捕捉影像然后通过串并口或者USB接口传到计算机里虽然摄像头看起来很简单但摄像头从诞生以后不断在进行着巨大变化在此期间PC摄像头共经历了三次行业革命性技术发展USB11接口摄像头到USB20接口摄像头的技术化变革从看同一台PC上摄像头的成像效果主要受到图像传感器数字信号处理芯片和USB接口三个方面的影响其中USB接口的带宽可以说是图像传感器和数字信号处理芯片无法逾越的瓶颈如果不改进USB接口其他内部芯片的数据传输量就必然受到限制所以最先发起的摄像头技术变革就是USB接口的全面升级相比USB11接口快40倍传输速率的USB20接口推动了高清数码摄像头的普及应用加上同期宽带的飞速发展电脑摄像头的本地和远程视频效果都有了大幅度提升电脑摄像头从com也成为了一次里程碑式的行业技术提升需要驱动的摄像头到免驱摄像头的人性化变革自USB20接口摄像头面世以来电脑摄像头从10万硬件像素飚升到200万硬件像素此时电脑摄像头的芯片方案已经超过了100多种电脑摄像头的芯片方案多达百种2007年1月Windows VISTA系统面世除了炫丽的界面之外它还包含了USB Video Class简称UVC功能其内容为电脑硬件不需要安装驱动程序的情况下即插即用正是在这种背景下免驱摄像头蓬勃发展免驱摄像头成为电脑摄像头行业的第二次技术性革命这次变革堪称人性化变革免驱摄像头到HD CAM摄像头的应用变革视频捕获能力是用户最为关心的功能之一很多厂家都声称能达到30帧秒的视频捕获能力但实际使用时并不能尽如人意视频捕获对电脑的要求比较高如CPU的处理能力要足够的快等其次对画面要求大小和清晰度的不同捕获能力也不尽相同对于很多厂商宣传的视频捕获速度只是一种理论指标用户应根据自己的切实需要选择合适的产品以达到预期的效果如今的电脑摄像头已经具备了免驱高清等功能但在实际应用中消费者还是发现了许多技术问题电脑摄像头在室外只能看到白茫茫的一片电脑摄像头帧数过慢而产生模糊的现象俗称鬼影为了满足不断提升的应用需求 2008年12月蓝色妖姬率先在电脑摄像头行业发布拥有速影技术SpeedKing的高清摄像头HD CAM在应用层面速影摄像头HD CAM与普通摄像头相比 1成像速度提升4倍由30帧升级到120帧 2提供双通道成像模式室内户外效果平衡解决普通摄像头户外见光死问题通常也被称为监视器显示器是属于电脑的IO设备即输入输出设备它可以分为CRTLCD等多种它是一种将一定的电子文件通过特定的传输设备显示到屏幕上再反射到人眼的显示工具Organic Light-Emitting Diode 发光二极管LED属于半导体器件是主动发光器件因为半导体易于在很小的晶片上集成大规模电路所以一个LED可以制造得很小以至于LED可以制成显示屏也可以作为灯使用LED使用冷技术发热量比普通照明灯低很多LED耗电相当低一般LED的工作电压是2-36V工作电流002-com的光源利用红绿蓝三基色原理在计算机技术控制下使三种颜色具有256级灰度任意混合产生25625625616777216种颜色形成不同光色组合实现丰富多彩的动态变化效果各种图像目前市面上的 LCD液晶显示器主要有两类DSTNdua scan twisted nematic双扫描交错液晶显示和TFTthin film transistor薄膜晶体管显示也就是被动矩阵无源矩阵和主动矩阵有源矩阵两种扭曲向列型TNTwisted Nmatic超扭曲向列型STNSuper TN双层超扭曲向列型DSTNDual Scan Tortuosity NomographTNLCDSTNLCD和DSYNLCD的基本显示原理都相同只是液晶分子的扭曲角度不同而已STNLCD的液晶分子扭曲角度为180度甚至270度而TFT的液晶显示器较为复杂主要是由萤光管导光板偏光板滤光板玻璃基板配向膜液晶材料薄模式晶体管等等构成首先液晶显示器必须先利用背光源也就是萤光灯管投射出光源这些光源会先经过一个偏光板然后再经过液晶这时液晶分子的排列方式就会改变穿透液晶的光线角度然后这些光线还必须经过前方彩色的滤光膜与另一块偏光板因此只要改变刺激液晶的电压值就可以控制最后出现的光线强度与色彩这样就能在液晶面板上出不同色调的颜色组合了等离子显示板Plasma Display Panel采用等离子管作为发光元件屏幕上每一个等离子管对应一个像素屏幕以玻璃作为基板基板间隔一定距离四周经气密性封接形成一个个放电空间放电空间内充氖氙等混合惰性气体作为工作媒质在两块玻璃基板内侧面上涂有金属氧化物导电薄膜作激励电极当向电极加电压放电空间内混合气体发生等离子体放现象气体等离子体放电产生紫外线紫外线激发荧光屏荧光屏发射出可见光显现出图像有机发光二极管是指有机半导体材料和发光材料在电场驱动下通过载流子注入和复合导致发光的现象其原理是用ITO透明电极和金属电极分别作为器件的阳极和阴极在一定电压驱动下电子和空穴分别从阴极和阳极注入到电子和空穴传输层电子和空穴分别经过电子和空穴传输层迁移到发光层并在发光层中相遇形成激子并使发光分子激发后者经过辐射弛豫而发出可见光辐射光可从ITO一侧观察到金属电极膜也起了反射作用OLED没有视角范围的限制可视角度一般可达到160度OLED比LED更亮OLED制造起来更加容易但是其寿命有限而且制造难度大成本高OLED遇水会永久性的损坏23 ARM架构 ARM是Advanced RISC Machines的缩写是嵌入式微处理器的种同时它还是一个公司的名字成立于英国剑桥主要出售ARM芯片设计技术授权采用ARM知识产权0P 核的微处理器都被称为ARM处理器如三星公司生产的S3C44BOX3C2410ANXP的LPC系列以及ATMELSTFreescale等公司推出的各种ARM处理器适用于多种领域比如嵌入控制消费教育类多媒体DSP和1 体积小低功耗低成本高性能第 3章 总体设计31功能需求 根据项目需求要实现的图像采集系统应该具有如下的功能高性能 设计是应尽量减少不必要的模块以及算法使系统在对硬件的 依赖性上做到尽力最低 2高可靠性由于图像采集系统会运用在各种环境下又饿环境很恶劣因 此需要系统具有高可靠性高稳定性以及长期连续工作的能力 3实现对采集现场的图像实时采集 4实现将实时采集的图像显示在液晶显示屏上5采集的图像应该满足后期图像处理的需求32工作原理如图 2-1 所示在采集图像时首先光线会照射到被拍摄物体上物体将光线反射到USB摄像头中的CMOS传感器传感器中的感光二极管接收到光照产生模拟的电信号经过预中放电路放大AGC自动增益控制于由图像处理芯片处理的是数字信号所以经模数转换到图像数字信号处理ICDSP同步信号发生器主要产生同步时钟信号由晶体振荡电路来完成即产生垂直和水平的扫描驱动信号到图像处理IC然后经数模转换电路通过输出端子输出一个标准的复合视频信号 图3-1 系统框图33软硬件规划com 硬件规划硬件部分包括嵌入式处理器图像采集模块图像显示模块嵌入式处理器是整个嵌入式系统的核心部分目前世界上的嵌入式处理器早已超过1000种不同的处理器有各自不同的功能以及优势低成本低功耗高性能是嵌入式应用的首要要求ARM Cortex-A8 控制器是第一款基于ARMv7架构的应用处理器并且是有史以来ARM开发的性能最高最具功率效率的处理器jlib然后通过摄像头驱动v4l2提供的函数以及命令对摄像头操作包括图像采集对图像的格式转换然后通过操作帧缓存进行图像实时显示控制这样设计将硬件的初始化全部固定在底层驱动操作在程序编写时就无需设计硬件不仅易于程序设计而且很好的实现了层次隔离划分分工明确第 4 章 硬件设计 41开发板主控芯片s5pc100411 s5pc100芯片介绍随着ARM公司在ARM 11内核架构基础上升级推出了第一代基于ARMv7指令集的Cortex-A8内核架构之后三星也及时跟进推出了基于Cortex-A8内核架构的S5PC100型处理器除了内核架构更为先进之外三星S5PC100也采用了更为先进的65nm工艺制程技术核心主频可达667MHz最高可达833MHz如图4-1是s5pc100架构图解S5PClO0处理器采用64位内部总线构架包括强大的硬件加速器如动态视频处理显示控制和缩放支持多种格式的硬件编解码MPEFl24H263H264CV-1D1vX其硬件加速功能支持实时的视频会议和模拟电视输出支持NTSCDPAL模式的HDMI提供了24bitLCD接口TVout接口Ca mera输入接口4路串口SD卡接口SPI1OOM网口USB2O一0TG接口USBHost接口音频输入输出接口按键接口12C接口等硬件资源具有更高的主频和更丰富外设能适用于对性能和处理能力有更高要求的嵌入式系统应用场合UTS5PC100专为消费类电子工业控制车载导航行业PDA等电子产品的开发而设计主要供广大企业用户进行产品前期软硬件性能评估验证设计参考用图4-1 S5PC100结构图如图4-2所示是核心处理器S5pc100的电路图图4-2 S5PC100 芯片电路图com 开发板简介FS_S5PC100开发平台用三星公司先进的基于Cortex-A8 内核S5PC100处理器设计而成图4-3 开发板实物图表4-1 开发板硬件列表 处理器 Samsung 公司的S5pc100处理器 NAND Flash 256MB NAND Flash Nor Flash 2MB DDR2内存 256MB 显示输出接口 LCD接口VGA接口TVout接口HDMI接口 视频输入接口 Camera接口 串口 2路5线串口1路3线串口 SD卡接口 支持大容量SD卡 SPI Flash 用于SPI实验 温度传感器 基于I2C接口 电位器 用于模拟量输入 4路USB Host 1路 USB20-OTG 蜂鸣器 用于PWM实验 100M网络接口 DM9000AE WIFI接口 Marvell8686 AC97音频接口 WM9714芯片 按键 6个按键 LED 4个LED 音频功放接口 可直接驱动喇叭 1 2 图4-4 串口电路图2 VGA接口 1 2 图4-5 LCD接口电路3 USB接口图4-6 USB接口电路图42 图像数据采集设备本文采用的图像采集设备是普通家用USB摄像头如图4-7所示为本文采用摄像头实物图最高像素可达100万满足本文研究图像采集需求图4-7 图像采集设备实物图43 显示设备本文所用显示设备为AUO的A043FW02液晶屏43寸电阻触摸屏图4-8 LCD显示屏 第 5 章 软件设计51 Linux 开发环境搭建com Linux系统及Linux内核简介一个完整的系统主要5部分组成硬件Bootloader操作系统内核操作系统服务和用户应用程序用户应用程序是指那一个系统的组成些字处理程序互联网应用程序或其它用户自行编制的各种应用程序操作系统服务程序是指向用户提供的系统调用等接口程序Bootloader主要完成硬件检测和系统引导操作系统内核是操作系统的主要核心部分是整个系统的灵魂操作系统服务程序操作系统内核及Bootloader被看作是操作系统部分Linux内核主要由进程调度模块内存管理模块文件系统模块进程间通信模块和网络接口模块5个模块构成如图5-1所示图5-1 Linux内核系统模块结构及相互依赖关系Linux是开放源代码的Linux操作系统设计本身具有的不同平台之间的可移植性而且所需的存储空间也很小Linux内核是Linux最底层最核心的部分Linux操作系统就是在Linux内核上发展壮大起来的而内核的移植则是任何嵌入式Linux开发中最关键部分所有的内核源程序都可以在usrsrclinux下找到大部分应用软件也都是遵循GPI而设计遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持com Linux环境搭建步骤概述1 从网络上下载Linux源码及ARM平台上的补丁2 给Linux内核打补丁使其源码符合ARM的系统结构3 对Linux内核进行配置与裁减4 建立交叉编译环境5 交叉编译和链接6 最后通过一些手段把生成的映象文件烧写 安装 到我们目标平台中com Linux交叉编译环境搭建由于嵌入式系统没有足够的内存和存储资源来编译可执行代码这要求建立好的交叉开发环境中进行交叉编译和链接交叉编译环境就是在一个平台上生 成另一个平台的可执行代码在同一个体系结构下可以运行不同的操作系统 交叉编译开发环境一般由宿主机目标机和两者之间通信信道组成在开发过程一般使用Intel公司X86系列CPU作为宿主机而ARM微处理器作为目标机目标板和宿主机之间的通信连接方式通常可以使用串口以太网接口USB接口以及JTAG接口等在宿主机上可以安装开发工具编辑目标板的Linux 引导程序内核和文件系统然后在目标机上运行如图4-2所示 图5-2 交叉编译开发环境模型 Linux内核必须使用GNU的C编译器gcc来编译而不是任何一种C编译器都可以使用gcc编译器对标准C进行了必要的扩展这使得它更适合开发操作系统内核Linux内核与编译器的关系非常紧密甚至不同的内核版本需要依赖于特定的gcc编译器通常GNU工具以源代码的方式发行针对不同的硬件体系结构GNU通过网络向用户提供相应的软件开发包开发者只需从ARM Linux的免费站点下载 在httpcomuk下载交叉编译包在相应目录下解压并设置系统环境变量PATH编辑etcprofile在其中export PATH前加入交叉编译器路径然后在终端中执行命令source etcprofile这样系统每次都能自己找到已经设置好的交叉编译器包的路径用户就能直接使用arm -one-1inux-gnueabi-gcc命令了com NFS与TFTP服务器搭建网络文件系统NFS NetworkFileSystem 最早是SUN开发的一种文件系统它允许一个系统在网络上共享目录和文件在系统有了网络以后很多调试工作就能方便许多NFS的设计是为了在不同的系统问使用文件所以其通信协议的设计与主机及操作系统无关当使用者想使用远程文件时只要使用挂载命 mount 就可把远程文件系统挂载在自己的文件系统之下这就使得系统对远程文件的使用和本地文件没有区别Linux系统支持NFS并且可以配置启动NFS网络服务安装NFS服务以centos步骤为例在线安装NFS命令yum install nfs-utils portmap配置NFSvim etcexports添加rootrootnfs Client_IP rwsync no_root_squash 3设置NFS服务自启动4在NFS-Server上为mountd rquotad lockd配置固定的端口因为NFS会为以上三个服务分配临时端口所以很难在防火墙上控制要开放哪些端口所以要将几个端口固定住TFTP是一个传输文件的简单协议它基于UDP协议而实现但是我们也能确定有些TFTP协议是基于其它传输协议完成的此协议设计的时候是进行小文件传输的因此它不具备通常的FTP的许多功能它只能从文件服务器上获得或写入文件不能列出目录不进行认证它传输8位数据传输中有三种模式netascii这是8位的ASCII码形式另一种是octet这是8位源数据类型最后一种mail已经不再支持它将返回的数据直接返回给用户而不是保存为文件yum install xinetd tftp tftp-server2修改配3重启服务4测试com Bootloader移植在嵌入式系统中Bootloader的作用与PC机上的BIOS类似通过Bootloade可以完成对系统板上的主要部件如CPUSDRAMFlash串行门等进行初始化也可以下载文件到系统板上对Flash进行擦除与编程当运行操作系统时它会在操作系统内核运行之前运行通过它可以分配内存空间的映射从而将系统的软硬件环境带到一个合适的状态以便为最终调用操作系统准备好正确的环境通常Bootloader是依赖于硬件而实现的特别是在嵌入式系统中因此在嵌入式系统里建立一个通用的Bootloader几乎是不可能的但是仍然可以对Bootloader归纳出一些通用的概念来以指导用户特定的Bootloader设计与实现正确建立Linux移植的前提条件是具备一个与Linux内核配套的易于使用的Bootloader它能够正确完成硬件系统的初始化和Linux系统引导ARM处理器体系中嵌入式Linux下常使用的Bootloader包括BIobviviU B00tARMb00tRedBoot等本系统采用uboot然后编译Bootloader在uboot目录下配置系统相关的设置执行make menuconfig再执行make就可以在当前目录下生成u-bootbin在初次烧写u-boot时系统利用usb线来烧录整个过程需要5分钟左右在以后的烧写中一般利用uboot本身来烧录设置好tftp服务器ip开发板ip利用tftp传输u-bootbin文件到开发板通过nanderase擦除用nandwrite写入便可更新uboot可以提高烧写的效率com Linux内核移植与配置1Licom配置Linux内核的重要的特点是可移植性 Portability 支持大多数的硬件平台在大多数体系结构上都可以运行Linux26的内核吸收了一些新技术在性能可量测性支持和可用性方面不断提高本系统移植的内核为其中的一个版本Licom从网站上可以下载内核licomtarbz2的源码包使用命令tar xzvf licomtarbz2将内核解压缩到指定的目录下Linux内核源代码是通过Makefile组织编译的进入该目录用vi编辑器打开Makefile文件修改其中内容ARCH arm和CROSS COMPILE 解压目录arm-none-linux-gnueabi-ARCH是指定此内核的体系结构是arm类型CROSSCOMPILE指定交叉编译器的类型为arm-none-linux-gnueabi-这样生成的映像文件就能在ARM上运行在真正移植内核到ARM平台之前还需要对内核进行配置和移植相应的设备驱动程序2 Licom配置编译在众多配置界面中makexconfig的界面最为友好如果机器可以使用Xwindow推荐使用这个命令如果不能使用Xwin-dow那么就可以使用makemenueonfig界面虽然比上面一个差点总比makeconfig的要好多了所有内核配置菜单都是通过configh经由不同脚本解释器产生config在内核配置完成后就就会在当前目录下产生一个config的配置文件当然也可以直接修改此文件来配置内核选择相应的配置时有三种选择它们分别代表的含义如下Y为将该功能编译进内核N为不将该功能编译进内核M为将该功能编译成可以在需要时动态插入到内核中的模块在配置时大部分选项可以使用其缺省值只有小部分需要根据用户不同需要选择选择的原则是将与内核其它部分关系较远且不经常使用的功能代码编译成为可加载模块以减小内核的长度减小内核消耗的内存简化该功能相应的环境改变时对内核的影响不需要的功能就不要选与内核点紧密且经常使用的部分功能代码直接编译到内核中配置完毕后用make命令编译内核内核的编译就是一个非常简单的过程执行1 make clean这条命令是在正式编译你的内核之前先把环境给清理干净保证没有不正确的依赖文件存在2 make dep由于内核源码树中的大多数文件都与一些头文件有依赖关系因此要将内核源码树中每个子目录产生的depend文件建立起依赖关系3 make zlmage建立压缩的linux内核映像编译完毕在archarmboot目录下将会生成ARMLinux内核映像文件zlmage这就是将要移植到目标机的内核映像文件4 make modules这条命令是编译在配置时选择为模块的即选项前为M的如果内核配置选项中有选择编译为模块的就需要此命令如果将来还要对内核重新进行编译则需执行命令makedistclean去除依赖关系并清除以前编译产生的文件然后重复上述步骤即可内核映像分为压缩的内核映像和未压缩的内核映像压缩的内核映像通常名为zlmage位于archarmboot目录中而未压缩的内核映像通常名为vmlinux位于源码树的根目录中把这个映像文件下载到开发板中开发板提供了一套比较完整的通用系统的外围设备配置bootloader的启动参数就能运行起来licom核com Linux文件系统1文件系统简述文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构即在磁盘上组织文件的方法也指用于存储文件的磁盘或分区或文件系统种类操作系统中负责管理和存储文件信息的软件机构称为文件管理系统简称文件系统文件系统由三部分组成与文件管理有关软件被管理文件以及实施文件管理所需数据结构从系统角度来看文件系统是对文件存储器空间进行组织和分配负责文件存储并对存入的文件进行保护和检索的系统具体地说它负责为用户建立文件存入读出修改转储文件控制文件的存取当用户不再使用时撤销文件等Linux的文件结构是单个的树状结构可以用tree进行展示在Ubuntu下安装treesudo apt-get install tree并可通过命令来查看n这样就会生成一个8M大小的rootfsjffs2的镜像它也正是JFFS2文件系统的镜像关于这个命令行里的选项的内容可以用man a mkfsjffs2命令来查看内容将rootfs文件拷贝到NFS工作目录中开发板上设置启动参数挂载文件系统将rootfsjffs2文件下载到开发板固化之后修改启动参数便可52 linux设备驱动移植com识驱动硬件是操作系统最基本的功能它为应用程序提供了统一的方式来访问各种硬件设备设备驱动程序为用户屏蔽了各种各样的硬件设备是内核的一部分是操作系统最基本的组成部分比如在Linux的内核源程序中设备驱动程序就占60以上因此熟悉驱动的编写是很重要的Linux有两种使用设备驱动程序的方式分别是直接编译到内核中或在运行时加载 也就是内核模块操作系统是通过各种驱动程序来驾驭硬件设备的 本文中系统功能并不繁琐采用将驱动直接编译进内核的方式直接将硬件驱动程序写入内核的优点是用户可随时对它进行调用而无须安装大大简化了操作众所周知Linux把内存分为内核空间和用户空间操作系统内核和驱动程序在内核空间运行可以访问内核空间也可通过系统调用访问用户空间而用户程序在用户空间中运行只能访问自己的用户空间对内核空间的访问具有严格的限制内核模块module简单地说就是提供了某一项功能的程序段这种程序段可以按需要随时装入内核空间和从内核空间卸载因此内核模块是为了给内核动态增减功能而设计的并不仅限于驱动程序但在一个操作系统中驱动程序是变化最大的部分所以往往把驱动程序编译成内核模块com绍字符设备字符设备是指存取时没有缓存的设备可像文件一样访问字符设备字符设备驱动程序负责实现这些行为这样的驱动程序通常会实现opencloseread和write系统调用系统控制台和并口就是字符设备的例子它们可很好地用流的概念来描述通过文件系统节点可以访问字符设备字符设备和普通文件系统问的惟一区别是普通文件允许在其上来回读写而大多数字符设备仅仅是数据通道只能顺序读写当然也存在这样的字符设备看起来像一个数据区可来回读取其中的数据2 块设备块设备是与字符设备完全不同的另一种设备它的服务对象不是以字节为单位而是以一整块的数据为单位应用程序在访问字符设备时一般都采用直接读写的方法但在访问块设备时就要通过系统里的缓冲区缓存了块设备上一般都容纳着文件系统可以通过指定要读写的数据块对块设备进行随机访问这与字符设备形成鲜明的对比字符设备只允许进行顺序的非随机访问因此它不能用于提供文件系统的存储Linux并不严格区分块设备和字符设备甚至提供给它们的接口都是相同的图5-6示出了字符设备和块设备的区别图5-5 字符设备和块设备的区别3 网络设备任何网络事务处理都是通过接口 可与其它宿主交换数据的设备 实现的通常接口是一个硬件设备但也有像loopback 环回 接口这样的软件工具网络接口是由内核网络子系统驱动的它负责发送和接收数据包由于网络接口不是面向流的设备一所以它不能像devttyl那样简单地被映射到文件系统的节点上Linux调用这些接口的方式是给它们分配一个独立的名字 如eth0 这样的名字在文件系统中并没有对应项内核和网络设备驱动程序之间的通信与字符设备驱动程序和块设备驱动程序与内核间的通信是完全不同的内核不再调用read和write它调用与数据包传送相关的函数4 其它设备Linux中还有一些设备不属于以上3类如SCSI设备驱动程序对于大多数情况来说我们不太会编写这类设备驱动程序因此这里就不做研究了com动在掌握了Linux设备驱动的基础知识以后便可以开始进行驱动的移植对比于PC的驱动嵌入式Linux驱动程序经过交叉编译后运行在嵌入式系统中上1USB Host驱动本文采用USB摄像头采集图像数据对应的就应该在内核中进行USB驱动的移植USB作为一个驱动层在内核代码中是很独立的一个模块在往内核中添加USB的支持时需要改动控制这部分代码编译连接的文件USB驱动分为USB主机驱动和USB设备驱动本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家事业单位招聘2025中国农业科学院植物保护研究所农药环境风险评估及控制创新任务科研助理笔试历年参考题库附带答案详解
- 台州市2025年浙江天台县委政法委下属事业单位选聘工作人员笔试历年参考题库附带答案详解
- 仓山区2025福建福州市仓山区委宣传部编外人员招聘1人笔试历年参考题库附带答案详解
- 2025陕西建工新能源有限公司校园招聘(27人)笔试参考题库附带答案详解
- 2025辽宁沈阳地铁集团有限公司所属公司招聘11人笔试参考题库附带答案详解
- 2025福建省船舶工业集团有限公司招聘5人笔试参考题库附带答案详解
- 2025年芜湖城市园林集团股份有限公司招聘30人笔试参考题库附带答案详解
- 2025年湖南长沙振望投资发展有限公司招聘8人笔试参考题库附带答案详解
- 2025年榆林市公共交通总公司招聘(57人)笔试参考题库附带答案详解
- 2025年山东电工电气集团有限公司社会招聘(44人)笔试参考题库附带答案详解
- 世界避孕日培训
- 政务摄影培训课件模板
- 职业健康卫生培训课件
- 快递行业包裹分拣操作流程模拟题
- 辅助生殖妊娠营养干预
- 模块六 点的投影(课件)-中职高考《机械制图》一轮复习(高教版第5版)
- 健康素养促进项目课件
- 2024湘美版小学书法三年级上册教学设计(附目录)
- 固定摊位合租协议书
- 2025年国企人力资源管理岗招聘考试真题卷(含岗位说明书)
- 中国药典2025年版1~4部目录
评论
0/150
提交评论