视频下载地址:

驱动注冊:http://pan.baidu.com/s/1i34HcDB

设备注冊:http://pan.baidu.com/s/1kTlGkcR

总线_设备_驱动注冊流程具体解释

• 注冊流程图

• 设备一般都须要先注冊,才干注冊驱动

– 如今越来越多的热拔插设备,反过来了。先注冊驱动。设备来了再注冊

设备

• 本节使用的命令

– 查看总线的命令#ls /sys/bus/

– 查看设备号的命令#cat /proc/devices

• 设备都有主设备号和次设备号。否则255个设备号不够用

– 查看杂项设备号的命令#cat /proc/misc

设备注冊

关于注冊设备的一点说明

• 早先的Linux会使用单独的文件注冊设备。如今大多是使用引入的虚拟

平台,使用虚拟平台来注冊设备会easy非常多

• 假设大家在网上看到大段的注冊设备的代码,可简单了解一下,知道

有这么个东西就成,不用去深究。不要去学习“屠龙技”,如今基本都

是直接在平台文件里注冊设备

注冊设备

注冊设备使用结构体platform_device,该结构体在头文件“vim

include/linux/platform_device.h”中。头文件里也有注冊设备和卸载设

备的函数。了解就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

• 操作过程

– 注冊设备。将设备结构体放到平台文件里,会自己主动注冊设备,不用去调

用注冊设备的函数。

– 在Kconfig文件里加入编译HELLO设备的宏定义(前面教程中已经加入)

– 配置menuconfig中的HELLO宏定义。生成新的.config文件

– 生成新的zImage

• 注冊完之后在虚拟平台总线下能够查到注冊的设备

– ls /sys/devices/platform/

驱动注冊

• 驱动注冊

– 非常重要,牢牢掌握,以后写不论什么Linux驱动都会用到

• 实验

– 在mini_linux_module的基础上加入驱动注冊部分

驱动注冊——头文件

• 驱动注冊使用结构体platform_driver,该结构体在头文件“vim

include/linux/platform_device.h”中

• 驱动注冊platform_driver_register,驱动卸载函数

platform_driver_unregister也在这个头文件里

– 这两个函数的參数都仅仅有结构体platform_driver

驱动注冊——注冊结构体

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

驱动注冊——注冊结构体

• 驱动常见的几种状态。初始化。移除。休眠,复位

– 就像PC一样。有的驱动休眠之后无法使用。有的能够使用。有的系统唤

醒之后,驱动须要又一次启动才干正常工作。也有直接就能够使用等等

• probe函数

– platform_match函数匹配之后,驱动调用的初始化函数

• remove函数

– 移除驱动函数

• suspend函数

– 悬挂(休眠)驱动函数

• resume函数

– 休眠后恢复驱动

• device_driver数据结构的两个參数

– name和注冊的设备name要一致

– owner一般赋值THIS_MODULE

实验

• 在mini_linux_module的基础上加入驱动注冊部分

• 编译。在开发板上载入和卸载驱动

迅为4412开发板Linux驱动教程——总线_设备_驱动注冊流程具体解释的更多相关文章

  1. 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

    本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...

  2. 迅为4412开发板Linux驱动教程——编写简单应用调用驱动

    Linux驱动教程:http://pan.baidu.com/s/1c0hljUS 编写简单应用调用驱动--头文件 • 打印头文件 – include <stdio.h>调用打印函数pri ...

  3. 迅为4412开发板Linux驱动教程/硬件知识及原理图的使用

    视频教程下载地址:http://pan.baidu.com/s/1pJwxUfL 嵌入式研发流程介绍 • PCB研发流程介绍 – 方案,原理图(网表) – layoutproject师(gerber文 ...

  4. 迅为4412开发板Linux设备树的镜像烧写和源码简单优化教程

    1 烧写:   烧写和4412默认镜像的烧写类似,使用fastboot. 先更新uboot,用4412默认uboot更新支持设备树的uboot 用支持设备树的uboot烧写. 进入支持设备树的uboo ...

  5. 迅为4412开发板Linux驱动教程之GPIO的初始化

    视频下载地址:http://pan.baidu.com/s/1c06oiti GPIO的初始化 • 在内核源码目录下使用命令“ls drivers/gpio/*.o”,可以看到“gpio-exynos ...

  6. 迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法

    迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法 详情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com/ 用户在开发板上运 ...

  7. 从需求的角度去理解Linux系列:总线、设备和驱动

    笔者成为博客专家后整理以前原创的嵌入式Linux系列博文,现推出以让更多的读者受益. <从需求的角度去理解linux系列:总线.设备和驱动>是一篇有关如何学习嵌入式Linux系统的方法论文 ...

  8. [转帖]迅为4412开发板最小linux系统的存储空间修改

    本文转自迅为论坛:http://www.topeetboard.com 最小linux系统的存储空间修改以修改成 1G 存储空间为例来修改,如果需要改成其他大小的存储空间,参照此方法修改即可. 首先连 ...

  9. 【学习/研发】嵌入式Linux/Android开发有它就够了——迅为4412开发板

    网站:http://www.topeetboard.com 光盘资料+网盘资料+配套视频+售后支持,助您加速学习研发的进程 产品介绍 iTOP-Exynos4412开发板采用 Exynos4412的主 ...

随机推荐

  1. 使用STL中的list容器实现单链表的操作

    #include<iostream> #include<list> #include<algorithm> using namespace std; void Pr ...

  2. 字符集UTFMB4

    http://my.oschina.net/leejun2005/blog/232732#OSC_h3_4 http://ju.outofmemory.cn/entry/211473

  3. OpenERP实施记录(14):收款处理

    本文是<OpenERP实施记录>系列文章的一部分. 1. 在前面的文章中,销售订单确认时自动生成了客户发票,可以在 会计 > 客户 > 客户发票 查询,状态为"草稿& ...

  4. Android 新浪博客分享问题总结

     分类: android(33)  版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 我遇到BUG 1    sso package or singn error Bug2 ...

  5. 解决kylin查询报错:org.apache.kylin.rest.exception.InternalErrorException

    报错信息: -- ::, ERROR [Query 12e9c054-760c---b1f06724c9b6-] service.QueryService: : Exception when exec ...

  6. RxJava 和 RxAndroid (生命周期控制和内存优化)

    RxJava使我们很方便的使用链式编程,代码看起来既简洁又优雅.但是RxJava使用起来也是有副作用的,使用越来越多的订阅,内存开销也会变得很大,稍不留神就会出现内存溢出的情况,这篇文章就是介绍Rxj ...

  7. Flume目录

    1. Flume的安装配置 2. flume和kafka整合(转) 3. Flume NG 配置详解(转) 4. Flume-NG一些注意事项(转) 5. FLume监控文件夹,将数据发送给Kafka ...

  8. 实现SQL Server中的切割字符串SplitString函数

    有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.没什么好说的,需要的朋友直接拿去用吧 SET ANSI_NULLS ON GO S ...

  9. iOS: sqlite数据库的基本操作

    介绍: sqlite3(3是版本)是本地系统中的一个小型数据库,因为它没有在数据维护和安全上做过多的操作,所以它存储处理数据时,非常简单方便,但是它是不安全和不可靠的,如果一旦误操作删除了数据,是没有 ...

  10. Orchard运用 - 理解App_Data目录结构

    了解一个系统,应该基本上要了解目录结构及其组织形式.这样对于开发人员更是必备的知识,比如开发模块最终安装到哪,主题Themes是如何配置启用. 今天跟大家分享其实是个笔记记录,就是看到有一篇文章介绍A ...