- 主题:请教一个问题的解决方案
就是这个办法吧:在A的spi驱动中,发读命令前加一个魔数,就是这样的格式:4字节魔数+1字节opcode+3字节地址,B检测到这个魔数就知道opcode和地址了
【 在 jiu 的大作中提到: 】
: 就是随便约定个有规律的信号
: 或者A准备好了,给B发终端。
:
--
FROM 183.227.238.*
嗯嗯。固定端口的中断也行啊。
【 在 LACARY (狂奔的蜗牛) 的大作中提到: 】
: 就是这个办法吧:在A的spi驱动中,发读命令前加一个魔数,就是这样的格式:4字节魔数+1字节opcode+3字节地址,B检测到这个魔数就知道opcode和地址了
--
FROM 120.245.132.*
修改a的驱动的话,好处是功能你能自己定义,缺点是就不能兼容flash了。如果你能解决好b自己flash读数的问题,还是用cs中断比较好。假设a只有读,b的流程是cs中断,spi接收,spi每个字节一次中断,b相应解析命令和地址,获得地址后读取本地flash,在地址位之后的下一个时钟按时序放出数据。这里面比较困难的是得到地址位后,需要在下一钟之前读到本地flash,并赶在下个钟前放出去。要看b处理器够不够快,实在不行只能放慢spi的钟
【 在 LACARY 的大作中提到: 】
: 就是这个办法吧:在A的spi驱动中,发读命令前加一个魔数,就是这样的格式:4字节魔数+1字节opcode+3字节地址,B检测到这个魔数就知道opcode和地址了
--
FROM 61.50.248.*
好的,谢谢,看来这个方法确实可行,我之前也想到这个办法
【 在 jiu 的大作中提到: 】
: 嗯嗯。固定端口的中断也行啊。
:
--
FROM 117.136.30.*
关于速度这个问题,我到还没想,我现在的spi时钟是10M,b的片内norflash可以像内存一样读,不确定这个速度能否满足10M时钟,但我理解的是在b获得地址后,多等待几个spi时钟发出数据也没问题吧?
【 在 haveidea 的大作中提到: 】
: 修改a的驱动的话,好处是功能你能自己定义,缺点是就不能兼容flash了。如果你能解决好b自己flash读数的问题,还是用cs中断比较好。假设a只有读,b的流程是cs中断,spi接收,spi每个字节一次中断,b相应解析命令和地址,获得地址后读取本地flash,在地址位之后的下一个时钟按时序放出数据。这里面比较困难的是得到地址位后,需要在下一钟之前读到本地flash,并赶在下个钟前放出去。要看b处理器够不够快,实在不行只能放慢spi的钟
--
FROM 117.136.30.*