您好!
我现在想利用EDMA从EMIF16往DDR3里面传输数据,请问应该如何对DDR3进行配置从而可以对其进行访问?能否提参考资料呢?谢谢!
Andy Yin1:
您好,
参考EMIF例程:www.deyisupport.com/…/6242.aspx
参考DDR测试例程:www.deyisupport.com/…/2622.aspx
Zhan Xiang:
当DDR3初始化完成后,EDMA3就可以访问DDR3了,但是EMIF16不支持同步模式,无法提供同步事件,需要客户使用其他EDMA事件来触发。
andy lee1:
回复 Zhan Xiang:
Zhan Xiang
您好!上面所给的EMIF测试例程都是EMIF自己单独运行的,并没有涉及到和其他的模块之间的相互作用,请问需要如何对其进行配置才能通过EDMA对其进行访问并传输EMIF缓存中的数据呢?能否提供具体的参考例子?谢谢!
andy lee1:
回复 Zhan Xiang:
Zhan Xiang
您好!请问能不能说得具体一点,EDMA通过什么来触发EMIF16呢?是否像这样触发以后EDMA就能传输EMIF16里面的数据呢?非常感谢!
Zhan Xiang:
回复 andy lee1:
EDMA的作用是从一处地址搬移数据到另一处地址,因为EMIF并不会自己产生触发事件,所以需要由外部提供EDMA事件。你可以通过定时中断,GPIO等事件来产生触发,也可以通过其他系统事件,类似某个任务完成事件手动触发EDMA,这些都是和应用相关的。
andy lee1:
回复 Zhan Xiang:
Zhan Xiang
您好!您说的是通过其他的事件来触发EDMA进行传输,我现在选择手动触发EDMA,将EMIF地址设为源地址,然后配置好EMIF NANDFLASH的寄存器,这样做是否就能传输EMIF里面的数据呢?
另外,在配置EMIF时是否需要设置EMIF的内部中断呢?谢谢!
andy lee1:
回复 Andy Yin1:
Andy Yin
您好!您给的DDR测试例程里面有个C文件是KeyStone_DDR_Init.c,它里面有两个函数void Shannon_EVM_DDR_Init(float clock_MHz)和void Shannon_VDB_DDR_Init(float clock_MHz),请问这两个函数有什么区别呢?我对DDR3进行初始化是不是只用第一个就可以了呢?谢谢!