SPI_Master驱动程序框架
- 参考内核源码:
drivers\spi\spi.c
一、SPI传输概述
1.1 数据组织方式
使用SPI传输时,最小的传输单位是"spi_transfer",
对于一个设备,可以发起多个spi_transfer,
这些spi_transfer,会放入一个spi_message里。
- spi_transfer:指定tx_buf、rx_buf、len
- 同一个SPI设备的spi_transfer,使用spi_message来管理:
- 同一个SPI Master下的spi_message,放在一个队列里:
所以,反过来,SPI传输的流程是这样的:
- 从spi_master的队列里取出每一个spi_message
- 从spi_message的队列里取出一个spi_transfer
- 处理spi_transfer
- 从spi_message的队列里取出一个spi_transfer
1.2 SPI控制器数据结构
参考内核文件:include\linux\spi\spi.h
Linux中使用spi_master结构体描述SPI控制器,有两套传输方法:
二、 SPI传输函数的两种方法
2.1 老方法
2.2 新方法
致谢
以上笔记源自
韦东山
老师的视频课程,感谢韦老师,韦老师是嵌入式培训界一股清流,为嵌入式linux开发点起的星星之火,也愿韦老师桃李满园。聚是一团火,散是满天星!
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!
仅此向嵌入行业里的每一个认真做技术的从业者致敬!