liuqian 发表于 2024-3-26 18:12:42

和多个外设相关的写操作,linux可以保证先后顺序吗

本帖最后由 liuqian 于 2024-3-26 20:24 编辑

比如,某些芯片的接口,需要特定的时序,先启动pwm,把gpio片选拉高,pwm关闭并拉低,然后spi发数据,数据发完,gpio拉低,启动pwm。那么linux可以保证在硬件上一定是按照这样的顺序吗?会不会,拉低cs的写文件动作,内核还没有调度到驱动的写输出寄存器的部分,那边spi被先调度到了,于是数据就先于cs,导致数据无效。

智涅 发表于 2024-3-26 18:32:53

应该还要看硬件或者芯片吧?如果SPI和GPIO都是主控芯片硬件自带的,而且编程在同一线程按顺序操作,应该能保证吧。
或者自己再加个Read GPIO的操作是不是就保险了{:titter:}

jenkins 发表于 2024-3-26 18:52:57

把gpio定义为spi的cs引脚,spi驱动会保证执行顺序的

honami520 发表于 2024-3-26 19:16:37

写一个专门的驱动不就好了。
gpio和spi的两个驱动,在应用层通过ioctrl去调用,不会慢吗?
说不定你一个CS动作,就延时10ms了呢

liuqian 发表于 2024-3-26 20:28:57

honami520 发表于 2024-3-26 19:16
写一个专门的驱动不就好了。
gpio和spi的两个驱动,在应用层通过ioctrl去调用,不会慢吗?
说不定你一个CS ...
(引用自4楼)

就是怕这个,现在每个动作都加一个小的延时,看波形还是对的,但是非实时系统在加上调度,就怕到最终的管脚上不按顺序
页: [1]
查看完整版本: 和多个外设相关的写操作,linux可以保证先后顺序吗