zoukankan      html  css  js  c++  java
  • 读书笔记第七章

    第七章
    尽管linux驱动直接与硬件打交道,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。每一个连接linux的硬件在I/O内存中都会有映射首地址。在使用ioread32、iowreat32等函数读写I/O内存时需要制定这些首地址,开发板上的LED也有其映射首地址。
    创建LED驱动的设备文件:
    1、使用cdev_init函数初始化cdev。
    2、指定设备号,linux设备文件的设备号分为主设备号和次设备号。用1个int类型表示。其中前12位表示主设备号,后20位表示次设备号。
    3、使用cdev_add函数将字符设备添加到内核中的字符设备数组中。
    4、使用class_creaate宏创建struct class,其中包含了一些与设备文件有关的变量以及一些回调函数指针变量。
    5、使用device_create函数创建设备文件。
    测试led驱动方法:
    1、编写测试I/O控制命令的通用程序,led驱动与设备文件交互有两种方式,直接写入字符串数据和I/O控制命令,直接向设备文件写入数据可以使用命令行方式来完成,也可以通过write函数来完成。
    2、使用NDK测试led驱动,NDk程序测试和 可执行程序测试差不多,只不过NDK
     library可以被java程序调用,而在安卓系统中的可执行程序在非root状态下无法被调用。3、使用java测试led驱动。

  • 相关阅读:
    CF263E Rhombus
    AtCoder Grand Contest 034
    Docker C/S 架构逻辑图
    使用filledeat modules配置
    filebeat分别收集多个类型日志
    ELK部署收集日志
    ES界面
    Django下的post请求访问出现403错误
    Django配置(urls.py)
    Day-1 python
  • 原文地址:https://www.cnblogs.com/spurlash/p/5560602.html
Copyright © 2011-2022 走看看