zoukankan      html  css  js  c++  java
  • 第九章、硬件抽象层:HAL 读书笔记

    编写linux驱动程序的步骤

    第一步:建立linux驱动骨架(装载和卸载linux驱动)

    第二步:注册和注销设备文件

    第三步:指定与驱动相关的信息

    第四步:指定回掉函数

    第五步:编写业务逻辑

    第六步:编写makefile文件

    第七步:编写linux驱动程序

    第八步:安装和卸载linux驱动

    Printf函数运行在用户空间,printk函数运行在内核空间。

    测试linux驱动步骤

    第一步:导入test_count.c文件

    第二步:设置include路径

    第三步:建立target

    第四步:build工程

    第五步:运行测试程序

    对于一个Linux驱动程序,一开始可以在UbuntuLinux上做前期的开发和测试。对于访问硬件的部分可以在ubuntuLinux用软件进行模拟。当基本开发完以后,就需要在开发板或者工程样机上使用真实的硬件进行测试。我们可以使用多种方式测试Linux驱动,主要有ubuntuLinux测试、在Android模拟器上通过原生(nativeC程序测试Linux驱动、使用AndroidNDK测试Linux驱动、使用Java源代码直接操作设备文件来测试Linux驱动、使用S3C6410开发板测试Linux驱动,还可以将驱动编译进Linux内核进行测试。

    一个完整的linux驱动主要由内部处理和与硬件交互两部分组成。其中内部处理主要是指linux驱动的装载、卸载、与设备文件相关的动作处理以及业务逻辑等。与硬件交互主要是指通过ioweiteioread32等函数与硬件中的寄存器进行数据的交互。Linux驱动在不同平台的移植也是处理这两部分。如果在不同Linux内核版本之间的移植,主要是移植第1部分,如果在不同硬件平台的移植,主要是移植第二部分。

    编写Led灯驱动的步骤如下:

    1、 创建LED驱动设备文件:

    1)   使用cdev-init函数初始化cdev

    2)   指定设备号;

    3)   使用cdev_add函数将字符设备添加到内核中的字符设备数组中;

    4)   使用class_creat宏创建struct class

    5)   使用device_create函数创建设备文件;

    2、  卸载Led驱动的设备文件

    3、 设置寄存器和初始化led驱动

    4、 控制led灯:

    1)   通过字符串控制LED

    2)   通过I/O命令控制

    5LED驱动的模块参数

    6、 测试LED驱动

    1)   编写测试I/O控制命令的通用程序;

    2)   使用NDK测试LED驱动;

    3)   使用Java测试LED驱动;

    7Led驱动移植

  • 相关阅读:
    区块链匿名资产的发行原理
    14亿条记录,12c 做不到2小时内变更表结构字段类型?
    MySQL修改有存量数据的数据库字符集实战
    Linux之HugePages快速配置
    快手大数据架构师:实时OLAP分析平台这么做,才可能超越抖音
    Oracle 12c 能否在2小时内完成一张14亿条记录的表结构字段类型变更
    Redis NoSQL
    对python virtualenv虚拟环境的理解
    16、SpringBoot------整合MapStruct
    16、SpringBoot------整合MapStruct
  • 原文地址:https://www.cnblogs.com/wuxinxinxin/p/5655142.html
Copyright © 2011-2022 走看看