嵌入式学习--SPI子系统分析

嵌入式学习–SPI子系统分析

以示例 ICM20608对SPI子系统进行分析

spi子系统框架见下图

由图可看出,spi子系统里边内嵌了platform子系统。
1.当设备树配置好的前提下,系统会根据设备树信息,自动生成一个平台设备(platform_dev)。
2.系统动后,platform相关驱动会和platform_dev进行匹配(匹配项就是 . compatible的内容),匹配成功后,就会调用probe函数。
3.在probe函数中,就会进行master的注册等操作。见图,会将一个新的master注册到spi核心层的master链表上,注册完成,就会遍历board_list链表并匹配(board_info)(个人感觉,board_info代表一个连接在master上的从设备,也就是图中设备树信息中绿框内的内容),匹配成功后,便会真正创建一个spi设备:spi_device。创建好spi_device后,加入对应的链表,并遍历driver链表,再次进行匹配
4.当spi驱动层,注册一个新的spi_driver时,就会将新的spi_driver加入到对应的链表,并遍历device链表进行匹配,匹配成功后,调用注册spi_driver时绑定的probe函数(自己实现的probe)。
5.在自己实现的probe函数中,实现字符设备相关操作
6.同样在probe函数中,对spi从设备进行操作,配置spi从设备,获取spi从设备数据等等

如有不对的地方,还望大家指正,相互学习

下篇进行源代码追溯

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值