概要
题主之前做arm后者mips的bsp的时候并没有很在意master和slave上的区别,或者说只是单纯的只有slave设备的概念,以为在做内核移植方面只需要单纯的以为只需要写好或者移植好slave设备的代码就行了。其中master如何处理我们是不需要去管理的,但是在后面做到x86架构的时候就开始有了很明显的master和slave的区分了。
在之前做arm的时候主要调试硬件设备上的东西就是slave设备,将自己的设备添加到了主路上面,例如将自己的i2c slave设备直接添加到i2c总线上面就可以使用了,或者将自己的spi slave设备添加到spi总线上,都不会去关注到总是如何操作的,只是单纯体调试slave设备上面通信,后面在做os的时候开始需要写i2c master和spi master的时候就发现了很多不一样的东西。包括以前完全不管的为什么是这个i2c的bus号码
整体架构流程
master:在很多硬件协议总线上面,我们就需要使用master去对各个通道进行对应的资源分配,其中还需要包含数据上协议的传输和读写,以及同一个协议,不同的表现方式,这些大都是可以在master这边有一定的处理的,最重要的就是资源分配了。
slave:从设备主要是对从设备上面的应用,和提供上层应用的接口和通信。相对来说逻辑简单,调试根据设备的功能来判断是否复杂。