Linux spi驱动框架之执行流程
来源:互联网 发布:隐藏电脑录像软件 编辑:程序博客网 时间:2024/05/17 22:02
转载地址:http://blog.csdn.net/chenliang0224/article/details/72617253
一. 驱动注册流程
1. static int nuc970_spi1_probe(struct platform_device *pdev)2. err = spi_bitbang_start(&hw->bitbang);
3. INIT_WORK(&bitbang->work, bitbang_work);//初始化工作队列
4. INIT_LIST_HEAD(&bitbang->queue);//初始化链表
5. master->transfer = spi_bitbang_transfer;//绑定spi传输函数(这里只是初始化,真正调用该函数是在应用程序部分,第二部分会讲到,只需记住这个关键的函数)
5.1 将应用层spi传输的数据加入到链表中,同时将数据提交给队列bitbang->work
list_add_tail(&m->queue, &bitbang->queue);//m->queue加入到第4点的bitbang->queue链表中
queue_work(bitbang->workqueue, &bitbang->work); //提交给bitbang->workqueue队列,这使将调用第3点的bitbang_work函数
二. 应用程序调用流程
1. spidev.c (SPI设备层,对应应用程序打开的open\read\write...API)
1. 该文件的内部读、写函数最终都会调用核心层spi.c的API向底层驱动交互数据
1. spi.c(SPI核心层)
1. int spi_write_then_read(struct spi_device *spi, const void *txbuf, unsigned n_tx, void *rxbuf, unsigned n_rx)
2. status = spi_sync(spi, &message);
3. __spi_sync(spi, message, 0);
4. status = spi_async_locked(spi, message);
5. __spi_async(spi, message);
6. master->transfer(spi, message);//这个传输函数是个关键函数,将调用第一.5,这样就将应用与驱动挂起勾了
阅读全文
0 0
- Linux spi驱动框架之执行流程
- Linux spi驱动框架之执行流程
- Linux spi驱动框架之执行流程-nuc970-att7022
- Linux驱动修炼之道-SPI驱动框架源码分析
- Linux驱动修炼之道-SPI驱动框架源码分析
- Linux驱动修炼之道-SPI驱动框架源码分析
- Linux SPI驱动框架剖析
- linux中spi驱动框架
- Linux SPI驱动框架剖析
- Linux SPI设备驱动框架
- linux spi驱动与应用调用流程
- Linux SPI驱动之笔记
- 嵌入式linux之SPI驱动
- 和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程
- 和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程
- Linux下spi驱动开发理论框架
- 65 linux spi设备驱动之spi LCD屏驱动
- Linux驱动修炼之道-SPI驱动框架源码分析(上)
- 使用android studio编程异常汇总
- 阿里云首推免费人脸识别SDK 让每个APP轻松拥有短视频AR特效
- angular.js中window.onload(),$(document).ready()的写法
- hdu2039
- JAVA导入导出Excel【POI技术】
- Linux spi驱动框架之执行流程
- Codeforces 383C Propagating tree(树状数组)
- android studio打开从别地拷过来的项目报错
- 关于log4j超赞的文章
- java实现定时任务的三种方法
- 奇虎360scribe日志采集系统
- iOS判断对象是否为空
- GTC大会上“省钱”不亦乐乎,阿里云GPU人脸识别实在好玩!
- 光荣的梦想 (树状数组求逆序数和)