首页 > 其他分享 >15 设备类型与设备驱动

15 设备类型与设备驱动

时间:2023-04-29 21:34:31浏览次数:33  
标签:初始化 15 函数 驱动 驱动程序 设备 结构

设备分类:

例如网络设备、触控设备等,在krldevice_t.h文件中;

设备驱动:

设备:

device_t 结构代表一个设备类型,其中devid_t 结构代表设备id结构,包含设备类型、设备号、子设备号等;

驱动:

driver_t 结构代表一个驱动程序,包含驱动名、驱动程序id、驱动程序管理的设备;

设备驱动的组织:设备表

devtable_t 结构代表一个设备表,组织驱动程序数据结构和设备数据结构;其中包含一个devtlst_t 结构代表一个设备类型,表示一类设备;还有全局设备表、全局驱动程序表;

init_krl 函数调用init_krldevice 初始化设备表函数,一定要在初始化调度器之前,初始化设备表;

驱动程序功能:

 驱动程序入口函数和退出函数、中断处理函数、打开关闭设备函数、读写设备数据函数、调整读写设备数据位置、控制设备函数、开启停止函数、设置设备电源、枚举设备、刷新设备缓存、设备关机函数等;函数形式不能改变;

driver_t 结构中的drv_dipfun 函数指针数组正是存放上述驱动函数的指针;

这部分之前我看过宋宝华的 lddr 和 B站韦东山的视频,有些了解;

 

标签:初始化,15,函数,驱动,驱动程序,设备,结构
From: https://www.cnblogs.com/xuan01/p/17364274.html

相关文章

  • 字符设备驱动-4.设备树
    1.为什么引用设备树在内核中,使用同一个芯片的板子,它们所用的外设资源不一样,比如A板用GPIOA,B板用GPIOB,如果用plateform_device定义资源信息,那么每次单板硬件资源变动后,都要改驱动程序源码,重新编译驱动,重新加载驱动,非常麻烦。随着ARM芯片的流行,内核中针对这些ARM板保......
  • Codeforces 1815E - Bosco and Particle
    首先,对于每个\(s_i\),我们只用保留其最小周期,证明显然。同时以多个光电门为研究对象显然状态数过多,不方便统计。考虑一下连接不同光电门的纽带是什么:显然是相邻光电门之间的空隙。对于每个光电门\(i\),如果我们只保留\(i\)作为唯一的光电门,那么显然有\(0\to1\)和\(1\to2\)......
  • 一文带你了解区块链中15种共识算法
    所有主要的区块链共识算法解释区块链技术席卷全球,提供了一种去中心化且安全的信息存储和传输方式。它还彻底改变了交易的执行方式,随之而来的是广泛的共识算法。在这里,共识算法在确保区块链网络的完整性方面发挥着关键作用。在本文中,我们将探讨所有主要类型的区块链共识算法、它们......
  • CMU 15445 Buffer Pool
    task1实现LRU-kEvivt,从缓冲里淘汰掉一个页当缓冲满的时候RecordAcess,记录下这个访问的页的页id以及时间戳当一个页被访问时,需要进行pin,一般这个操作位于pin之后Remove,清空一个页的历史访问记录当一个页被从BFM中删除时才调用SetEvictable,设置......
  • 驱动开发:通过MDL映射实现多次通信
    在前几篇文章中LyShark通过多种方式实现了驱动程序与应用层之间的通信,这其中就包括了通过运用SystemBuf缓冲区通信,运用ReadFile读写通信,运用PIPE管道通信,以及运用ASYNC反向通信,这些通信方式在应对一收一发模式的时候效率极高,但往往我们需要实现一次性吐出多种数据,例如ARK工具中当我......
  • 驱动开发:通过MDL映射实现多次通信
    在前几篇文章中LyShark通过多种方式实现了驱动程序与应用层之间的通信,这其中就包括了通过运用SystemBuf缓冲区通信,运用ReadFile读写通信,运用PIPE管道通信,以及运用ASYNC反向通信,这些通信方式在应对一收一发模式的时候效率极高,但往往我们需要实现一次性吐出多种数据,例如ARK工具中当......
  • Linux设备驱动开发详解
    Linux内核系列文章Linux内核设计与实现深入理解Linux内核Linux设备驱动程序Linux设备驱动开发详解文章目录Linux内核系列文章前言一、待续前言  本文主要用来摘录《Linux设备驱动开发详解第四版》一书中学习知识点,本书基于Linux4.0版本,源代码摘录基于Linux4.15.18......
  • R5F100GEAFB是超低功耗16位微控制器,L99MD02XPTR一款6×半桥式汽车应用驱动器。
    R5F100GEAFB16位微控制器具有超低功耗、增强性能、高集成度和各种强大的外设功能。得益于以上特性,RL78MCU非常适合用于各种应用,包括电池供电设备和家用应用。该MCU可为系统设计人员提供省电特性和高性能操作,从而实现超低功耗应用。该器件提供1KB到512KB的片上闪存。这种低功耗MC......
  • 从0开始构建一个Oauth2Server服务 <15> 安全问题
    安全问题以下是构建授权服务器时应考虑的一些已知问题。网络钓鱼Attack针对OAuth服务器的一种潜在Attack是网络钓鱼Attack。这是Attack者创建一个看起来与服务授权页面相同的网页的地方,该页面通常包含用户名和密码字段。然后,Accacker可以通过各种手段诱骗用户访问该页面。除非用......
  • 【带DC引脚SPI屏】STM32L010K8超低功耗单片机软件模拟SPI驱动ST7567点阵屏12864示例
    显示屏驱动芯片多种多样,有的不带DC,通过接收的数据的某个特定位确定是命令还是数据,比如常见的12864移植案例在【不带DC脚的spi屏】STM32F103C8移植u8g2在软件模拟spi模式下驱动st7920带字库的12864显示屏-不打鱼光晒网-博客园(cnblogs.com)和【不带DC脚的spi屏】stm32f1......