TI中文支持网
TI专业的中文技术问题搜集分享网站

如何快速的读取GPIO并保存到数组中

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等信号

还可以解决判断条件的问题

赞(0)
未经允许不得转载:TI中文支持网 » 如何快速的读取GPIO并保存到数组中
分享到: 更多 (0)