第七章读书笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章读书笔记相关的知识,希望对你有一定的参考价值。
3.1 实现原理
与本机的I/0 内存进行交互。所谓I/0 内存是通过各种接口连接到主机的硬件在主机内存中的映射。然后Linux 内核会利用I/0 内存中的数据硬件交互。Linux 内核提供了多个与1/0 内存交互的函数。每一个连接Linux 的硬件在ν0 内存中都会有映射首地址。
3.2 编写LED驱动
1) adb shell “ echo ’1’ > /de>/s3c6.410 leds"
2) adb shell ” echo ’ 1010 ’> /dev/s3c6410_leds"
3) adb shell “echo ‘ 1 111 ‘> /dev/s3c6410_leds ”
4) sh ~/drivers/s3c6410 leds/test leds.sh
5) 执行test_leds.sh脚本文件
for((i=0 ,i<16; i=i+1))
do
#将十进制数转换为二进制格式
N=$(echo “base=2;$i “ l bc)
Echo $n
Echo $n > temp
N=$(rev temp)
// 向 LED 驱动的设备文件发送控制 LED 的数据
adb shell "echon > /dev/s3c6410 leds ”// 延迟l 秒钟
sleep 1
done
3.3 创建LED驱动的设备文件步骤
1)使用cdev_init 函数初始化cdev:描述设备文件需要一个cdev 结构体。该结构体在<Linux 内核源代码>/include/linux/cdev.h 文件中定义。
2)指定设备号Linux 设备文件的设备号分为主设备号和次设备号。
3)使用cdev_add 函数将字符设备添加到内核中的字符设备数组中
4)使用class_create 宏创建struct class:struct class 包含了一些与设备文件有关的变量以及一些回调函数指针变量。
5)使用device_create 函数创建设备文件: device_create 函数用于创建设备文件,该函数在<l.inux 内核源代码>/incIude/linux/device.b,文件中定义
3.4 卸载LED驱动的设备文件
卸载 Linux 驱动的设备文件稍微简单-些,需要依次调用 device_destroy 、 class_destroy 和unregister_chrdev_region 方法。这3 个方法的原型如下:
void device_destroy(struct class *class, dev_t devt)
void class_destroy(struct class *els)
void unregister_chrdev_region (dev_t from, unsigned count)
以上是关于第七章读书笔记的主要内容,如果未能解决你的问题,请参考以下文章