zoukankan      html  css  js  c++  java
  • 第七章

    第七章

    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驱动。 

  • 相关阅读:
    Forms身份验证
    常见的js图片或内轮换效果
    模仿select选择框
    基于jquery的js幻灯片类
    js弹出幕布遮罩层
    css那些事
    选择珠宝js业务逻辑源码
    aspnet帐号密码改了会出问题
    用rails做了个书评排行网站,欢迎光临!
    转发:为什么函数式编程至关重要
  • 原文地址:https://www.cnblogs.com/yqing/p/5561654.html
Copyright © 2011-2022 走看看