Hi,项目中外部传感器,会通过GPIO1,GPIO2,GPIO3,GPIO4,GPIO5,GPIO15,GPIO16,GPIO17这8个GPIO向DSP发送数据,速度是10MHZ,连续发1000次,GPIO6在有数据的时间是高电平,其他时候低电平,
我需要把发来的数据保存到一个uint32_t[1000]数组中,或者经过移位保存到uint16_t[1000]数组中,
我使用的是28027开发板,CPU时钟是60M,我必须每6个指令周期完成一次读取和保存,尝试过RPTB指令但是好像28027不支持,这样每次循环就耗费了4个周期,剩下两个周期不够用,请问是否有其他方法可以优化速度
汇编片段:
MOVL XAR6,#1000
.align 2
READ_CHAR_LOOP:
MOVL ACC,@0x0 ;两个周期
MOVL *XAR4++,ACC ;XAR4存放的是数组地址,两个周期
BANZ READ_PIX_LOOP,AR6–
另外也可以通过GPIO6的值判断循环结束,不知各位高人可否指点一二~~~
mangui zhang:
有个很重要的问题你先要考虑清楚 GPIO最大的转换速度是多少
能达到10M吗 10M的数据速率可能达不到
如果有外扩总线就好办了 直接接入数据总线 通过判断CS等信号
还可以解决判断条件的问题