用6747DSP使用SEM触发的一个任务中在SDRAM的一个缓冲区buf循环写入数字,每次写100个数字,比如从开始的地方写入0到99,然后又从开始的地方100到199,不断递增。问题是,比如在循环8次后该缓冲区的数字应该是从700到799,但是会某些地方会出现上一次甚至上两次循环的数字,比如618、619、620、534、535。而假如在写完数字后加入一个BCACHE_wbAll()函数,该问题消失。不知道是什么原因且如何在不增加BCACHE_wbAll()函数下解决这个问题。
Tony Tang:
要看你是怎么查看的,如果是通过程序读应该结果是对的,如果是在CCS里看可能出现你说的情况,因为新的内容在Cache里,所以也要看你怎么用这些数据,如果后面也是CPU程序来处理,无所谓,如果是DMA把这些数据传走,那么就要做写回了。