打印

OMAP138在DDR上跑EDMA测试程序的问题

[复制链接]
769|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PanDaerr|  楼主 | 2017-3-3 00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
项目中需要向FPGA寄存器中写入N×1Byte的数据,所以想用EDMA来实现,通过看CSL库提供的历程以及手册,在手动触发情况下,发现A类传输使用TCC链接事件本身每次1Byte与AB类传输触发一次事件传输BCNT个1Byte,均可以达到想要的效果。
但是问题来了,程序跑在片上RAM中可以正常运行,但是跑在DDR上就会有丢数的情况出现,
做了个试验,在SYSBIOS的平台文件中,将L1和L2均设置成0KB,跑在DDR上的话测试就可以通过,感觉像是程序跑得慢一些就可以……
通过手册以及GEL文件的配置,PLL1的DIV1会分给DDR,分配了300M,因为手册中写到需要配到工作时钟的2X;
没找到EDMA的时钟怎么配置,难道是PLL0的DIV2吗?
这两个东西要怎么配置才可以很好的合作呢????想不太明白……

相关帖子

沙发
PanDaerr|  楼主 | 2017-3-5 21:46 | 只看该作者
网上看了两篇帖子,问题得到解决!由于没法发URL链接,就把帖子题目写过来了,大家有需要可以自己搜一下看看
1.TI社区的**《OMAPL138 EDMA DDR2 L2 Cache一致性问题》
2.CSDN上的**《 TI C64x+ DSP CACHE 一致性分析与维护 》
EDMA传输操作的对象是存放在DDR上的buffer数组,在EDMA发起传输的时候,由CORE初始化的数组数据还未未被写到DDR上,所以EDMA就拿不到正确的数据,对于CSDN**中提到的方法,明天去公司试一试,应该就是这个原因了!

使用特权

评论回复
板凳
kmzuaz| | 2017-3-7 17:14 | 只看该作者
嵌入式开发没有用过,问问版主或者小I

使用特权

评论回复
地板
kmzuaz| | 2017-3-7 17:18 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

1

粉丝