谢谢wowow的答复。<br />试验了一下,如果将HPI接口的缓存放置在内部RAM,则所有的操作均正确,如果将HPI的缓存放置在外部SDRAM中,如果不禁用cache,无论采用查询方式还是中断方式则读取数据和写数据会出错,明明HOST端修改了内容,就是读不到,不修改程序,仅仅禁用cache则数据正确。<br />HPI使用的是EDMA,ti资料spru609b中原话是这样的:<br />Notice that the hardware ensures that accesses by the CPU and EDMA to<br />internal SRAM addresses are coherent, but external addresses are not.<br />Software must ensure external addresses accessed by the EDMA are not held in cache when the EDMA accesses them.<br />我现在遇到的问题是在打开cache,将HPI的缓存放置在外部SDRAM中时,即使采用CACHE_flush和CACHE_clean来维护cache与SDRAM的内容一致,读到的结果也不对,这应该是我哪里操作错了,现在正在检查中,希望很快能解决。<br />但是奇怪的是我使用CCS看内存的工具也看不到host端修改的数据变化,同样禁用cache后就可以看到了,可能仿真器也是从cache中读取数据的,现在也在查资料中。
|