在上一章中,我们已经完成了虚拟i2c控制器的模拟,本章我们准备完成一个虚拟spi控制器,该章的的流程和上一章类似。
本篇文章的目的如下:
- 当你没有开发板,又想学习spi驱动模型,并想进行linux spi device driver的练习时;
- 当你完成了spi device driver,在硬件开发板出来之前进行spi device driver的验证时。
本章的内容涉及spi驱动模块的内容,这些内容在之前已经分析过,由兴趣的童鞋可查看。
《LINUX SPI驱动模块框架介绍(spi模块分析之一)》
《LINUX SPI总线模块分析说明(spi模块分析之二)》
《LINUX SPI 驱动框架分析之master 、device、driver模块分析》
《LINUX SPI模块之SPI 通信接口(spi_sync、spi_async)分析说明》
《LINUX SPI通用字符设备模型介绍(SPI模块分析结束篇)》
virtual spi master的实现分析
在之前分析spi 驱动时,针对spi控制器而言,即是填充spi master结构体相关的成员变量,针对spi master而言,主要设置spi master支持的通信模式、总线号、芯片选择个数等参数,并设置进行spi通信的接口spi_master->transfer或spi_master->transfer_one_message (新版本已使用transfer_one_message接口替换transfer接口,新版本的内核的spi模块为每一个控制器提供了kthread_worker机制,为每一个spi控制器提供了工作线程&