首页 > 系统相关 >Linux内核的spi_sync函数传输期间片选信号一直有效嘛?

Linux内核的spi_sync函数传输期间片选信号一直有效嘛?

时间:2024-11-22 12:15:22浏览次数:3  
标签:rx sync 发送 spi 内核 Linux message buf 片选

         1、不是的,下图可以看到发送单个message时拉片选了,所以spi_sync函数传输期间CS会一直跳变,所以无法像I2C一样组装符合某个外设的报文队列。

        2、但是使用自己的软件CS片选,就可以控制它在spi_sync函数传输期间保持低电平。

        3、其中的某个使用场景:SPI由于其全双工的特性,发送的同时可以接收,但是命令尚未发送完成肯定接收不到有效数据,这一块如果坚持提供片选给内核就要靠内核其他API了(意思是无法组装多个message,发送命令的message、接收数据的message),这块博主不太了解,不过我觉得内核这么精简严谨的东西,肯定不会给每一个message的rx_buf/tx_buf都单独分配时钟去完成吧,如果单独分配了,那么需要用到同时收发的场景呢

        4、提供片选给内核的情况下:在一个message的rx_buf/tx_buf同时完成发送指令与接收返回数据,谁说发送的时候指令后边不能跟无效值字节的,所以大胆加入无效值字节进去,通过这种方式占位来保持SPI时钟,直到有效值产生并进入rx_buf里,这时只需要丢弃rx_buf开头接收到的无效字节,剩余的就是有效数据

标签:rx,sync,发送,spi,内核,Linux,message,buf,片选
From: https://blog.csdn.net/ojhj4996/article/details/143969357

相关文章

  • [python] Python异步编程库asyncio使用指北
    Python的asyncio模块提供了基于协程(coroutines)的异步编程(asynchronousprogramming)模型。作为一种高效的编程范式,异步编程允许多个轻量级任务并发执行,且相比传统的多线程模型,具有更低的内存消耗。因此,asyncio在需要高并发处理的场景中,尤其是在Web开发、网络请求、API调用和套接字......
  • Linux串口应用编程:从UART到GPS模块及字符设备驱动
    往期内容本专栏往期内容:Uart子系统UART串口硬件介绍深入理解TTY体系:设备节点与驱动程序框架详解interrupt子系统专栏:专栏地址:interrupt子系统Linux链式与层级中断控制器讲解:原理与驱动开发–末片,有专栏内容观看顺序pinctrl和gpio子系统专栏:专栏地址:pinctrl和gpio......
  • LInux基础——裸金属宿主机挂载后端存储数据盘丢失
    裸金属宿主机挂载后端存储数据盘丢失1、问题描述物理机批量底层块设备丢失问题; 2、问题分析i.物理卷、卷组、逻辑卷发现块设备打开失败;检查物理卷状态:pvscan检查卷组状态:vgscan检查逻辑卷状态:lvscan初步判断问题原因:查看物理卷pv、卷组vg、逻辑卷lvs报错“Nosuchdevic......
  • Linux常用基础指令-mv指令
      mv命令,用来移动文件和目录,实现文件或目录的重命名。相比于cp命令(用于复制文件),mv直接对文件位置或名称进行更改,不创建副本。1.`mv`命令的基本语法mv[选项]源文件目标文件mv[选项]源文件...目标目录mv[选项]-t目标目录源文件...源文件:要移动或重命......
  • 泷羽Sec学习笔记:linux基础之病毒编写
    Linux目录介绍:1. /bin : 二进制可执行命令2. /etc :系统管理和配置文件3. /etc.rc.d :启动的配置文件和脚本4. /home :用户主目录的基点5. /lib :标准程序设计库,又叫动态链接的共享库6. /sbin :超级管理命令,这里存放的是系统管理员使用的......
  • 泷羽Sec学习笔记:linux基础
    opensslpasswd-1123opensslpasswd-1123 openssl是一个开源的加密工具包,提供了各种加密,解密,签名,验证等功能 passwd表示该命令是对密码进行相关的操作 -1参数指定使用MD5加密算法对密码123进行加密处理,使用这个命令可以将密码“123”变为MD5加密后的密文。open......
  • 多线程编程入门Thread_Task_async_await简单秒懂
    `usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespace多线程编......
  • Linux内核中unlikely宏的作用
    Linux内核中unlikely宏的作用在Linux内核中,unlikely宏是一个非常重要的工具,它主要用于指导编译器进行代码优化,以提高程序的执行效率。unlikely宏的定义与作用定义:unlikely宏通常定义为__builtin_expect(!!(x),0),其中x是你要判断的表达式。作用:告诉编译器,表达式x的结果......
  • Linux内核中的PAGE_SHIFT
    Linux内核中的PAGE_SHIFT什么是PAGE_SHIFT?在Linux内核中,PAGE_SHIFT是一个非常重要的宏,它定义了一个页的大小,通常是2的幂次方。这个值表示了虚拟地址空间中一个页的偏移量占用了多少位。换句话说,它告诉我们一个页的大小是多少字节。PAGE_SHIFT的作用页大小的确定:PAGE_SHIFT......
  • [Linux]进程控制
    进程控制进程创建fork函数作用fork函数的作用是用来创建一个新进程,新进程被称为子进程,而原来的进程称为父进程。返回值fork函数有两个返回值,给父进程返回子进程pid,给子进程返回0。为什么有两个返回值?在执行fork函数的时候,当fork函数的核心逻辑已经执行完成,准备return时,......