主要内容基于凌动平台的linux系统下的

上传人:ldj****22 文档编号:45899679 上传时间:2018-06-20 格式:PDF 页数:7 大小:454.17KB
返回 下载 相关 举报
主要内容基于凌动平台的linux系统下的_第1页
第1页 / 共7页
主要内容基于凌动平台的linux系统下的_第2页
第2页 / 共7页
主要内容基于凌动平台的linux系统下的_第3页
第3页 / 共7页
主要内容基于凌动平台的linux系统下的_第4页
第4页 / 共7页
主要内容基于凌动平台的linux系统下的_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《主要内容基于凌动平台的linux系统下的》由会员分享,可在线阅读,更多相关《主要内容基于凌动平台的linux系统下的(7页珍藏版)》请在金锄头文库上搜索。

1、2010-7-231基于凌动平台基于凌动平台的的LinuxLinux系统系统下的下的 软硬件开发软硬件开发软件学院软件学院章亦葵章亦葵Linux内核驱动模块设计与加载 USB接口 触摸屏 看门狗 其他外围接口及系统编程主要内容主要内容Linux 驱动程序设计Linux 中的驱动设计是嵌入式 Linux 开发中 十分重要的部分 驱动程序是应用程序与硬件之间的一个中 间软件层 驱动程序主要需要考虑下面三个方面: 1. 提供尽量多的选项给用户 2. 提高驱动程序的速度和效率 3. 尽量使驱动程序简单,使之易于维护Linux 驱动程序设计 Linux内核层次分割Linux 驱动程序设计Linux内核驱

2、动的两种模式一种是直接编译到内核,再运行新的内核来测 试;此方法效率较低,但在某些场合是唯一的 方法 二是编译为模块的形式,单独加载运行调试。 模块方式调试效率很高,它使用 insmod 工具 将编译的模块直接插入内核,如果出现故障, 可以使用 rmmod 从内核中卸载模块。Linux 驱动程序设计Linux驱动程序的三种基本类型 Char module: 适合于字符型流数据,如打 印机、扫描仪。 Block module:适合于随机存取的数据,如 硬盘和CD-ROM。 Network module: 网络接口,通过接口可与 其他主机交换数据。2010-7-232Linux 驱动程序设计Lin

3、ux驱动文件(Device File) Linux系统为了使应用程序使用“驱动程序”,使用了“ 驱动文件”的接口方式来达到这一目的。在Linux系统的 /dev目录下的文件就是“驱动文件” 驱动程序与驱动文件通过“主设备号”和“次设备号”进 行关联。一般“主设备号”用设备种类来识别。 “次设 备号”由同一类型的多个设备来区别。它们可以是0到255 的数值。 驱动文件要在文件系统中预先使用mknod命令做成,全部 放在/dev目录下。mknod 驱动文件 名主设备号 次设备号 删除时使用rmod命令。Linux 驱动程序设计Linux驱动文件(Device File) Linux系统为了使应用程

4、序使用“驱动程序”,使用了“驱动文件” 的接口方式来达到这一目的。在Linux系统的/dev目录下的文件就是“ 驱动文件” 驱动程序与驱动文件通过“主设备号”和“次设备号”进行关联。一 般“主设备号”用设备种类来识别。 “次设备号”由同一类型的多个 设备来区别。它们可以是0到255的数值。 主设备号相同的设备使用相同的驱动程序,次设备号用于区分具体设 备的实例。 驱动文件要在文件系统中预先使用mknod命令做成,全部放在/dev目 录下。mknod 驱动文件 名主设备号 次设备号 删除时使用rmod命令。Linux 驱动程序设计驱动程序与应用程序的区别 应用程序一般有一个 main 函数,从头

5、到尾执行一个任务; 驱动程序却不同,它没有main 函数,通过使用宏 module_init(初始化 函数名); 系统将驱动程序初始化函数加入内核全局初始化函数列表中,在内核 初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之 后驱动便停止,等待被应用软件调用。 驱动程序中有一个宏 moudule_exit(退出处理函数名)注册退出处理函 数,它在驱动退出时被调用。 应用程序可以和 GLIBC库连接,因此可以包含标准的头文件,比如,在驱动程序中是不能使用标准 C 库的,因此不能 调用所有的 C 库函数。比如输出打印函数只能使用内核的 printk 函数 ,包含的头文件只能是内核的头文

6、件,比如。Linux 驱动程序设计最简单的驱动程序“Hello World”#include #include MODULE_LICENSE(“Dual BSD/GPL“); static int hello_init(void) printk(KERN_ALERT “Hello, worldn“); return 0; static void hello_exit(void) printk(KERN_ALERT “Goodbye, cruel worldn“); module_init(hello_init); module_exit(hello_exit);invoked when the

7、 module is loaded intothekernelinvoked when the module is removedmodule_init and module_exit lines use special kernel macros to indicate the role of these two functions.macro (MODULE_LICENSE) is used to tell the kernel that this module bears a free license; 驱动程序设计驱动程序模块的编译、加载、卸载% make make1: Enterin

8、g directory /usr/src/linux-2.6.10 CC M /home/ldd3/src/misc-modules/hello.o Building modules, stage 2. MODPOST CC /home/ldd3/src/misc-modules/hello.mod.o LD M /home/ldd3/src/misc-modules/hello.ko make1: Leaving directory /usr/src/linux-2.6.10 % su root# insmod ./hello.ko Hello, world root# rmmod hell

9、o Goodbye cruel world root#编译加载卸载Linux内核驱动模块设计与加载 USB接口 触摸屏 看门狗 其他外围接口及系统编程主要内容主要内容2010-7-233USB体系简介USB 是一种支持热插拔的高速串行传输总 线,它使用差分信号来传输数据,USB2.0 的最高速度可达 480Mb/S。 USB 体系包括“主机”、“设备”以及“ 物理连接”三个部分。 设备包括:USB功能设备和 USB HUB,最 多支持 127 个设备。每个设备都有 PID 和 VID 。USB体系四种传输类型USB 体系定义了四种类型的传输: 控制传输:主要用于在设备连接时对设备进行枚 举以及

10、其他因设备而已的特定操作。中断传输:用于对延迟要求严格、小量数据的可 靠传输,如键盘、游戏手柄等。批量传输:用于对延迟要求宽松,大量数据的可 靠传输,如 U 盘等。 同步传输:用于对可靠性要求不高的实时数据传 输,如摄像头、USB 音响等。USB设备的逻辑组织逻辑组织4 个层次 设备、配置、接口、端点USB设备的逻辑组织逻辑组织的结构描述 1. 设备通常有一个或多个配置; 2. 配置通常有一个或多个接口; 3. 接口通常有一个或多个设置; 4. 接口有零或多个端点。 5. 每一个配置、接口、设置和端点都有一个 相应的描述符结构体进行描述,Linux 下 USB驱动基本接口Linux 下 USB

11、驱动基本接口: usb_skel_init :需要实现向 linux 内核注册 USB 驱动, usb_skel_exit:需要实现取消注册 USB 驱动。 urb和 USB接口函数 :urb(USB request block,USB 请求块)用于驱动程序向 USB 核心传 递请求。每当完成一项操作,USB驱动都必须先 建立 urb,之后将 urb 发送给 USB 核心,并等待 USB 核心回调。软件架构及流程软件架构及流程 1) 接口层次结构2010-7-234软件架构及流程2) 驱动执行流程 第一对被定义的接口 usb_skel_init 和 usb_skel_exit,这是整个驱动的入

12、口。在这两个 函数中,分别向 linux 内核注册 USB driver。系 统会根据枚举到的设备信息查找相关的驱动程序 ,并且调用probe 函数。 probe 函数中会检查 USB 设备的状态,如果出 现错误,返回空指针,否则返回一个包含更具体 的接口函数的结构体指针。至此,USB 设备的 初始化完成。习题参照UP-ATOM510 实验指导书完成以下两 个实验 USB驱动模块的修改试验 测定USB 存储设备的访问速度Linux内核驱动模块设计与加载 USB接口 触摸屏 看门狗 其他外围接口及系统编程主要内容主要内容触摸屏实现原理触摸屏实现原理(将在WindowsXP环境详述) 触摸屏利用压

13、力感应进行控制。 按照触摸屏的工作原理和传输信息的介质 ,触摸屏可分为四种类型:电阻式、电容感应式、红外线式和表面声波式 。其中,电阻式触摸屏的历史最早,使用最多 ,而且其工作原理也极其简单。在ATOM510 平台上,使用的就是电阻式触摸屏。触摸屏矫正原理触摸屏矫正原理 触摸屏与 LCD显示屏是两个不同的物理器件。LCD处理的是像素 ,例如我们通常所说的分辨率是600x800,实际就是指每行的宽 度是 600 个像素,高度是 800个像素,而触摸屏处理的数据是点 的物理坐标,该坐标是通过触摸屏控制器采集到的。两者之间需 要一定的转换。触摸屏矫正原理电阻式触摸屏的材料本身有差异而且随着时间的推移

14、,其 参数也会有所变化,因此需要经常性的校正。 电容式触摸屏只需要一次校正即可 ,这是由两者不同的 材料原理造成的。触摸屏的校正过程一般为:依次在屏幕的几个不同位置显 示某种标记(如“+”),用触摸笔点击这些标记,完成校正 。如果 PT(x, y)表示触摸屏上的一个点, PL(x, y)表示 LCD上的一个点,校正的结果就是得到一个转换矩阵 M, 使 PL(x, y) = M PT(x, y)。我们知道二维几何变换包含三 种平移、旋转和缩放。2010-7-235触摸屏矫正原理平移 MT:缩放 MS:旋转 MR:PL =MR MT MS PT,M= MR MT MS 展开得到LCD 上的坐标(上

15、的坐标(XL 、YL) 触摸屏上的坐标(触摸屏上的坐标(XT 、YT) 是已知的是已知的触摸屏矫正原理化简:求解:其中:假设 LCD 三个点的坐标为 (XL1,YL1), (XL2,YL2), (XL2,YL2), 对应触摸屏上的三个点是 (XT1,YT1), (XT2, YT2), (XT3, YT3)得到 6 个系数:A、B、C、D、E、F。 触摸屏得到的所有坐标,带入公式(1)中就可以得 到 LCD 上以像素表示的坐标。公式(1)习题参照UP-ATOM510 实验指导书完成以下实 验 在Linux下的命令行方式进行触摸屏校验Linux内核驱动模块设计与加载 USB接口 触摸屏 看门狗 其

16、他外围接口及系统编程主要内容主要内容看门狗(Watch Dog Timer)Atom平台的看门狗硬件(WDT)结构: ATOM平台通过外接 Winbond的W83627 接口芯片来实现的。W83627HFW83627HFLPC(Low Pin Count)总线)总线 与与CPU外部总线相连接外部总线相连接Watch Dog功能功能工作原理看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一 个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作 的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清 零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防 止MCU死机. 看门狗的作用就是防止程序发生死循环,或 者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器, 看门狗就

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号