当前位置: 首页 > news >正文

东营网站建设dysem大型科技网站

东营网站建设dysem,大型科技网站,wordpress链接出错,seo就业前景如何一. 简介 Linux下的SPI 驱动框架和 I2C 很类似,都分为主机控制器驱动和设备驱动,主机控制器也就是 SOC的 SPI 控制器接口,SPI设备驱动也就是所操作的SPI设备的驱动。 本文来学习一下Linux下SPI设备驱动。 二. Linux下SPI驱动:SP…

一. 简介

Linux下的SPI 驱动框架和 I2C 很类似,都分为主机控制器驱动和设备驱动,主机控制器也就是 SOC的 SPI 控制器接口,SPI设备驱动也就是所操作的SPI设备的驱动。

本文来学习一下Linux下SPI设备驱动。

二. Linux下SPI驱动:SPI设备驱动简介

1. spi_driver 结构体

spi 设备驱动也和 i2c 设备驱动也很类似, Linux 内核使用 spi_driver 结构体来表示 spi 设备 驱动,我们在编写 SPI 设备驱动的时候需要实现 spi_driver spi_driver 结构体定义在 include/linux/spi/spi.h 文件中,结构体内容如下:
struct spi_driver {const struct spi_device_id *id_table;int			(*probe)(struct spi_device *spi);int			(*remove)(struct spi_device *spi);void			(*shutdown)(struct spi_device *spi);struct device_driver	driver;
};

可以看出,spi_driver i2c_driverplatform_driver 基本一样,当 SPI 设备和驱动匹配成功以后 probe 函数就会执行。

2. SPI设备驱动注册与注销

同样的, spi_driver 初始化完成以后需要向 Linux 内核注册, spi_driver 注册函数为spi_register_driver函数 ,函数原型如下:
int spi_register_driver(struct spi_driver *sdrv)
函数参数和返回值含义如下:
sdrv 要注册的 spi_driver
返回值: 0 ,注册成功;赋值,注册失败。

注销 SPI 设备驱动以后也需要注销掉前面注册的 spi_driver ,使用 spi_unregister_driver 函数完成 spi_driver 的注销,函数原型如下:
void spi_unregister_driver(struct spi_driver *sdrv)
函数参数和返回值含义如下:
sdrv 要注销的 spi_driver。
返回值: 无。

三.  spi_driver 注册示例代码

SPI设备驱动的注册示例代码,即spi_driver 注册示例程序如下:
/*SPI设备驱动的注册示例代码*/
/* probe 函数 */
static int probe(struct spi_device* dev)
{//具体的函数内容return 0;
}/* remove 函数 */
static int remove(struct spi_device* dev)
{   //具体的函数内容return 0;
} /* 传统匹配方式 ID 列表 */
static struct spi_device_id xxx_id_table[] = {{"xxx", 0},{}
};/* 设备树匹配列表 */
static struct of_device_id xxx_of_match_table[] = {{.compatible = "xxx"},{}
};/* SPI 驱动结构体 */
static struct spi_driver xxx_spi_driver = {.driver = {.name = "xxx_spi",.owner = THIS_MODULE,.of_match_table = xxx_of_match_table,},.id_table = xxx_id_table,.probe = xxx_probe,.remove = xxx_remove,
};/* 驱动入口函数 */
static int __init xxx_init(void)
{spi_register_driver(&xxx_spi_driver); //SPI设备驱动的注册
}
/* 驱动出口函数 */
static void __exit xxx_exit(void)
{spi_unregister_driver(&xxx_spi_driver); //SPI设备驱动的注销
}module_init(xx_init);
module_exit();

1~38 行, spi_driver 结构体,需要 SPI 设备驱动人员编写,包括匹配表、 probe 函数等。
i2c_driver platform_driver 一样,就不详细讲解了。
41~44 行,在驱动入口函数中,调用 spi_register_driver 来注册 spi_driver
46~49 行,在驱动出口函数中,调用 spi_unregister_driver 来注销 spi_driver

http://www.yayakq.cn/news/587497/

相关文章:

  • 怎么做自己的手机网站芜湖设计公司排名
  • 网站div的高度根据图片朋友圈推广怎么做
  • 做网站商家企业模板wordpress
  • 网站跳转到另外一个网站怎么做优质的天津网站建设
  • 美橙云建站成立网站要营业执照吗
  • 公司网站自己可以学习优化吗广州注册公司地址
  • 自助建站系统是怎么实现微信群投票网站怎么做
  • 网站建设技术可行性长沙市做网站的网站
  • 网站设计服务表信融营销型网站建设
  • 做网站吸引客户纺织品服装网站建设优化
  • iis网站asp.net部署佛山制作做网站
  • 网站开发设计培训设计网站页面出现问题
  • wordpress php转html代码昆明优化网站
  • 凡科建站的建站后如何管理东莞地铁线路图
  • 网站建设咨询服务合同爱漫画-只做精品的韩漫网站
  • 用asp做网站需要什么软件推广网络营销外包公司
  • 做设计学什么英语比较好的网站wordpress新浪微博主题
  • 徐州html5响应式网站建设网页的维护与更新
  • 青岛市医疗保险网站小红书推广引流
  • 网站建设行业前景如何中山seo网站优化公司
  • 网站策划图用花瓣网站上的图片做游戏行吗
  • 内蒙古做网站的公司有哪些北京交易网站建设
  • wordpress 首页轮播图网站建设优化规划书
  • 做网站收费一般网站字体
  • 摄影网站cnu视觉联盟网站怎么做seo关键词
  • 网站迁移教程wordpress怎么安装导航
  • 网站建设果麦科技汉服网页设计作品
  • 万象园网站建设与开发开发一个小程序游戏要多少钱
  • 网站在建设中模板主机安装wordpress
  • 文登区住房和城乡建设局网站北京金山办公软件有限公司