linux不识别spiflash

linux不识别spiflash,第1张

系统不适配。Linux,全称GNULinux,是一种免费使用和自由传播的类UNIX *** 作系统。Linux不支持SPIflash命令执行,系统不适配,需要在SPIflash上启动系统,需要对Uboot和系统镜像做些适配,在linux启动脚本里挂载spiflash分区,进行测试。

在<linux/spi/spi.h>头文件中包含有内核文档,做为主要的源码,你应该详读内核API文档的相关章节.本文只是概览,在了解细节前有个大致的图景是好的.

SPI请求会进入到I/O队列中.请求给定的SPI设备也是按照FIFO顺序进行的,通过完成机制异步通知.也同简单的同步措施:先写在读出来.

有俩类SPI驱动:

控制器驱动(Controller drivers)...集成在SOC中的控制器,经常扮演Master和Slave双角色.这类驱动直接接触到硬件层的寄存器甚至使用DMA.亦或者扮演bitbanger,仅需要GPIO脚

协议驱动(Protocoldrivers)...在控制器和slave或者控制器和另外一条SPI链路上的Master传递消息.协议驱动是将控制器读到的数据,比如是一堆0,1代码,解析成有意义的协议数据

对于协议驱动应该是我们要写的,spi在linux内核中有spi子系统分为spi核心层,就类似USBcore一样是主控制器部分,另一个就是spi设备层了.前者内核帮咱写好了,为了让你的spi设备能工作,就得借助spicontroller driver导出的一些设施来编写protocoldrivers了.

struct spi_device结构封装了俩类驱动间的master-side接口.

有一个最小化SPI编程接口的core,专注于使用板级初始化代码提供的设备表并借助于驱动模型来连接controller和protocol驱动.在sysfs文件系统中,SPI视图:

1/sys/devices/.../CTLR ... physical node for a given SPI controller

2

3/sys/devices/.../CTLR/spiB.C ... spi_device on bus "B",

4 chipselect C, accessed through CTLR.

5

6/sys/bus/spi/devices/spiB.C ... symlink to that physical

7.../CTLR/spiB.C device

8

9/sys/devices/.../CTLR/spiB.C/modalias ... identifies the driver

10 that should be used with this device (for hotplug/coldplug)

11

12/sys/bus/spi/drivers/D ... driver for one or more spi*.* devices

13

14/sys/class/spi_master/spiB ... symlink (or actual device node) to

15 a logical node which could hold class related state for the

16 controller managing bus "B". All spiB.* devices share one

17 physical SPI bus segment, with SCLK, MOSI, and MISO.

需要注意的是控制器类状态的实际位置取决于您是否开启CONFIG_SYSFS_DEPRECATED标志.此时,唯一的特定类状态是总线编号("B" in "spiB"),所以/sys/class下的那些入口项是唯一的识别总线的标志.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8941367.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存