实验四-LED跑马灯_第1页
实验四-LED跑马灯_第2页
实验四-LED跑马灯_第3页
实验四-LED跑马灯_第4页
实验四-LED跑马灯_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验 四 LED 跑马灯 实验 一 实验目的 一 实验目的 1 掌握 EXYNOS 4412 处理器与 LED 指示灯的电路原理 2 掌握 linux 驱动对 EXYNOS 4412 GPIO 的控制原理及使用方法 二 实验设备 二 实验设备 TINY4412 开发板 学生自带笔记本 USB 转串口线 电源 网线 三 三 实验地点及时间实验地点及时间 地点 地点 A2 303a 时间 教学周第八周时间 教学周第八周 四四 实验内容 实验内容 1 在 ARM 开发板上面 在驱动程序中利用 linux 定义的 GPIO M4 口编写对应管脚电 平控制程序 并进行测试验证所学内容 2 在 ARM 开发板上面 在上面程序的基础上采用动态 IO 映射的方法 编写程序 并进行测试验证所学内容 3 在 ARM 开发板上面 在驱动程序中利用内核定时器 编写程序 并进行测试验证 insmod module 后 LED 跑 2 圈的结果 4 在 ARM 开发板上面 利用 2 的驱动程序 编写应用程序测试验证 LED 跑马灯的结 果 五 实验原理 五 实验原理 1 GPIO端口原理端口原理 EXYNOS 4412 有 300 多个输入 输出端口 这些端口都具有多功能 通过引脚配置寄 存器 可以将其设置为所需要的功能 如 I O 功能 中断功能等等 大多数采用 EXYNOS 4412 的典型 LED 指示灯电路设计基本都使用 M4 口 GPM4 共 8 个输入 输出口 作为其 控制端口 端口寄存器及引脚配置端口寄存器及引脚配置 每一个端口都有 6 个寄存器 它们是 引脚配置寄存器 数据寄存器 引脚上拉寄存 器等 Register Address Offset Description Reset Value GPM4CON 0 x02E0 Port group GPM4 configuration register 配置寄存器 0 x0000 0000 GPM4DAT 0 x02E4 Port group GPM4 data register 数据 寄存器 0 x00 GPM4PUD 0 x02E8 Port group GPM4 pull up pull down register 上拉寄存器 0 x5555 GPM4DRV 0 x02EC Port group GPM4 drive strength control register 0 x00 0000 GPM4CONPDN 0 x02F0 Port group GPM4 power down mode configuration register 0 x0000 GPM4PUDPDN 0 x02F4 Port group GPM4 power down mode pull up pull down register 0 x0000 端口端口 M4 引脚配置寄存器引脚配置寄存器 GPM4CON 0 x110002E0 Base Address 0 x1100 0000 Address Base Address 0 x02E0 Reset Value 0 x0000 0000 NameName BitBit TypeType DescriptionDescription ResetReset ValueValue GPM4CON 7 31 28 RW 0 x0 Input 0 x1 Output 0 x2 CAM SPI MOSI 0 x3 CAM GPIO 17 0 x4 to 0 xE Reserved 0 xF EXT INT12 7 0 x00 GPM4CON 6 27 24 RW 0 x0 Input 0 x1 Output 0 x2 CAM SPI MISO 0 x3 CAM GPIO 16 0 x4 to 0 xE Reserved 0 xF EXT INT12 6 0 x00 GPM4CON 5 23 20 RW 0 x0 Input 0 x1 Output 0 x2 CAM SPI nSS 0 x3 CAM GPIO 15 0 x4 to 0 xE Reserved 0 xF EXT INT12 5 0 x00 GPM4CON 4 19 16 RW 0 x0 Input 0 x1 Output 0 x2 CAM SPI CLK 0 x3 CAM GPIO 14 0 x4 to 0 xE Reserved 0 xF EXT INT12 4 0 x00 GPM4CON 3 15 12 RW 0 x0 Input 0 x1 Output 0 x2 CAM I2C1 SDA 0 x3 CAM GPIO 13 0 x4 CAM SPI1 nSS 0 x5 to 0 xE Reserved 0 xF EXT INT12 3 0 x00 GPM4CON 2 11 8 RW 0 x0 Input 0 x1 Output 0 x2 CAM I2C1 SCL 0 x3 CAM GPIO 12 0 x4 CAM SPI1 CLK 0 x5 to 0 xE Reserved 0 xF EXT INT12 2 0 x00 GPM4CON 1 7 4 RW 0 x0 Input 0 x1 Output 0 x2 CAM I2C0 SDA 0 x3 CAM GPIO 11 0 x4 to 0 xE Reserved 0 xF EXT INT12 1 0 x00 GPM4CON 0 3 0 RW 0 x0 Input 0 x1 Output 0 x2 CAM I2C0 SCL 0 x3 CAM GPIO 10 0 x4 to 0 xE Reserved 0 xF EXT INT12 0 0 x00 端口端口 M4 数据寄存器数据寄存器 GPM4DAT 0 x110002E4 为准备输出或输入的数据 其值为 8 位 7 0 2 LED指示灯电路原理图指示灯电路原理图 从上述原理图可以清楚地看出 通过控制 GPM4 0 GPM4 3 管脚的电平就可以点亮或 熄灭对应发光二极管 3 linux驱动驱动GPIO原理原理 动态映射动态映射 map desc 方式方式 对 I O 内存的操作需按如下步骤完成 i 申请 struct resource request mem region unsigned long start unsigned long len char name ii 映射 void ioremap unsigned long phys addr unsigned long size iii 访问 unsigned ioread8 void addr void iowrite8 u8 value void addr iv 释放 void iounmap void addr example 定义 define S3C2410 PA IIS 0 x55000000 映射 our card regs ioremap S3C2410 PA IIS 0 x100 访问 readl our card regs writel value our card regs 静态映射静态映射 map desc 方式方式 linux 内核已经定义好了内核已经定义好了 讲解的例子就是 讲解的例子就是 采用这种方式 采用这种方式 通过通过 map desc 结构体静态创建结构体静态创建 I O 资源映射表资源映射表 内核或驱动中访问该内核或驱动中访问该 I O 资源时则无需再进行资源时则无需再进行 ioreamp 动态映射 可以直接通过映射动态映射 可以直接通过映射 后的后的 I O 虚拟地址去访问虚拟地址去访问 include asm arm mach map h struct map desc unsigned long virtual 映射后的虚拟地址 unsigned long pfn I O 资源物理地址所在的页帧号 unsigned long length I O 资源长度 unsigned int type I O 资源类型 static struct map desc s3c2410 iodesc initdata virtual unsigned long S3C24XX VA LCD pfn phys to pfn S3C24XX PA LCD length S3C24XX SZ LCD type MT DEVICE 在这里 map desc 结构体的 virtual 成员被初始化为 S3C24XX VA LCD pfn 成员值通过 phys to pfn 内核函数计算 只需要传递给它该 I O 资源的物理地址就行 Length 为映射 资源的大小 MT DEVICE 为 I O 类型 通常定义为 MT DEVICE 这里最重要的即 virtual 成员的值 S3C24XX VA LCD 这个值即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论