I2C驱动程序框架probe道路】的更多相关文章

基于Linux的I2C驱动器.采纳probe道路.根据这个框架,如下面就可以写任何支持I2C总线设备Linux驱动器. I2C设备连接到cpu具体i2c接口.被安装在cpu的i2c适配器.i2c设备和cpu信息交流需要通过cpu操作适配器互动.cpu上有1个或多个适配器.每一个适配器上能够挂载256个设备地址不一样的i2c器件,通过i2c驱动就能够让cpu和适配器上的多个不一样的i2c器件通信而不会产生冲突. 驱动包含两个文件,dev.c和drive.c,当中dev.c是构建I2C设备,即创建I…
目录 I2C(一)框架 引入 整体框架 数据结构 文件结构 流程简述 参考文档 title: I2C(一)框架 date: 2019/1/28 17:58:42 toc: true --- I2C(一)框架 引入 我们首先从硬件连接的角度来抽象一下 整体框架 整体分为以下几个部分: core描述总线,提供统一管理adapt,I2c_linet,i2c_driver的接口,提供统一传输接口i2c_transfer,i2c_master_send,i2c_master_recv,具体的硬件操作由ad…
开发板    :mini2440 内核版本:linux2.6.32.2 驱动程序参考:韦东山老师毕业班i2c 内容概括: 1.adapter client 简介    2.adapter 驱动框架       2.1 设备侧       2.2 驱动侧          2.2.1 probe 函数          2.2.1.1 注册adapter             new_device del_device             board_info             i2c…
先用韦老师的图: 注:  新版本内核的i2c驱动框架采用了    i2c_client -------> i2c_bus_type  <-------- i2c_driver   框架 如何构建i2c_client的4种方法 1.定义一个 i2c_board_info,用 i2c_register_board_info 注册,再生成i2c_client struct i2c_board_info { char type[I2C_NAME_SIZE]; //名字, unsigned short…
学习目标:根据vivi驱动架构和linux-2.6.31/linux-2.6.31.14/drivers/media/video/uvc/Uvc_driver.c驱动源码,分析usb摄像头驱动程序框架: 一.摄像头拓扑结构 由数据手册USB_Video_Example 1.5和UVC 1.5 Class specification分析摄像头的拓扑结构,如下图所示: usb摄像头功能由摄像头接口完成,每个摄像头功能包括一个 VideoControl interface (VC)和几个VideoSt…
参考:I2C子系统之platform_driver初始化——I2C_adap_s3c_init() 在完成platform_device的添加之后,i2c子系统将进行platform_driver的注册过程.platform_driver的注册通过调用初始化函数i2c_adapter_s3c_init函数来完成. static struct platform_device_id s3c24xx_driver_ids[] = { { .name = "s3c2410-i2c", .dri…
参考:I2C子系统之platform_device初始化——smdk2440_machine_init() I2C驱动框架还应用了另一种总线-设备-驱动模型,平台设备总线platform_bus_type.内核已经注册好了平台总线,驱动程序只需向平台总线添加平台设备和平台驱动.这节主要介绍如何添加平台设备. /*********"/arch/arm/mach-s3c64xx/mach-smdk6410.c"**********************/ //2./arch/arm/ma…
引言: 由LCD的硬件原理及操作(可参看韦哥博客:第017课 LCD原理详解及裸机程序分析) 我们知道只要LCD控制器的相关寄存器正确配置好,就可以在LCD面板上显示framebuffer中的内容. 若应用程序需要在LCD屏幕上显示文字或图像时,只需要把相应的显示内容以正确的格式写到Framebuffer中即可. (Framebuffer,中文名字是帧缓冲,这个帧也就是一副图像所需要的数据.因此,帧缓冲其实就是LCD设备的驱动程序) 一.LCD驱动程序框架 根据上述思路,Linux LCD 驱动…
tty驱动程序框架 一.TTY概念解析 在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备. 1.1串口终端(/dev/ttyS*) 串口终端是使用计算机串口连接的终端设备.Linux把每个串行端口都看作是一个字符设备.这些串行端口所对应的设备名称是 /dev/ttySAC0;/dev/ttySAC1… 1.2虚拟终端(/dev/tty*) 当用户登录时,使用的是虚拟终端.使用Ctcl+Alt+[F1—F6]组合键时,我们就可以切换到tty1.tty…
应用程序通过open  read  write close 等函数来操作计算机硬件.类似是一个接口. 当应用程序调用这些接口程序时,计算机是如何进入内核的呢?这是经过了系统调用. 实际上当调用接口函数时,会引发一个swi异常(附带参数,软中断),通过这个异常就进入了内核空间.在内核空间的异常处理函数中就会处理传入的值. 而C库中的open如何对应上内核空间中相应的函数呢?这是由驱动程序框架来完成的. linux对所用到的系统调用进行了编号. 例如: NO1. open NO2. read NO3…