第七章
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章相关的知识,希望对你有一定的参考价值。
第七章
1.不是 Linux 驱动直接向硬件中的内存写数据 , 而是与本机的 I/O内存进行交互
2.控制开发板上的 LED
# adb shell ”echo ‘1’> /dev/ s3c6410_leds" 打开第 1 个 LEO,其他的 LED 都关闭
# adb shell ” echo ‘1010 ’> /dev/s3c6410_leds" 第 1 个和第 3 个LED打开,第 2 个和第 4 个 LED 关闭
# adb shell ”echo ‘1111’> /dev/s3c6410_leds ” 打开所有的 LED
3.创建设备文件
(1)使用 cdev_init 函数初始化 cdev
(2)指定设备号
(3)使用 cdev_add 函数将字符设备添加到内核中的字符设备数组中
(4)使用 class_create 宏创建 struct class
(5)使用 device_create 函数创建设备文件
4.LED 有两个引脚: GPBO 和 GPBI。
控制 LED 需要通过 3 个寄存器来完成:GPMCON(端口配置寄存器)GPMBAT(端口数据寄存器)GPMBUD(端口上拉电路寄存器)。
使用 GPMDAT寄存器的低4位控制4个LED的亮、灭。每一位控制一个 LED。最低位控制离电池最近的 LED 。0 表示亮、l 表示灭。
5.控制LED:通过字符串控制,通过I/O命令控制
6.为 Linux 驱动指定一个模块参数需要使用 module_param(name, type, perm )宏。其中 name 表示参数名, type 表示参数类型, perm 表示读/写权限。
7.测试LED驱动:使用NDK测试驱动,使用JAVA测试LED驱动。
8.LED 驱动最简单的移植就是将其在不同 Linux肉核版本下进行编译。
这一章介绍了LED驱动。其实感触并没有多少,不知道怎么说,麻雀虽小,五脏俱全,LED灯虽然只有4个,但却包括了Linux驱动的所有必要的部分。一个完整的linux主要由内部处理与硬件交互两部分组成,内部处理主要由linux的装载,卸载与设备文件相关的动作处理,linux驱动的移植主要是基本上相当于重新写一遍linux驱动。
以上是关于第七章的主要内容,如果未能解决你的问题,请参考以下文章