一 什么是pingpong 传送
pingpong就是在L2ram 或 片外 ram 开辟两块区域(可以是cache),用于协调外设传输数据与CPU处理数据的一种机制。
二 为什么要pingpong
1.传输数据块的大小不确定:每次EDMA传输数据,cnt段决定一次传输数据大小。当连续传输时,使用pingpong可以不考虑数据的大小
2. pipeline:实时处理
三 pingpong中的几个问题
1.link后数据不会自动传输,依然需要EDMA事件触发
2.TI例程中:data_section 用于数据存放在位置的定义 , data_align用于字节对齐,cache优化,可以不考虑CACHE_wbInvL2用于pingpong开设在片外ramcache中。
3.EDMA中断中主要包括两步:1 EDMA link 2 cpu process
4SEED例程确实存在:先传输至ping-------进EDMA中断-------指明下次传pong并处理pong区 这样的先后次序。因此,不是pipeline。
5.确实存在cpu处理时间大于EDMA触发事件的间隔,即cpu还没处理完pong,新的pong区传输又开始的情况,这时候可以用标志位