情况(a):如果使用了cache区,那么cache区是采用write-throuht(写穿式).当然也同时更新了cache区的内容.这时外部flash数据发生了改变cache跟踪不到.最终的结果是数据并没真正写入flash就被认为是已经写入了.(但情况并非一定是这样,也可能是成功的.原因好好想想吧)
情况(b):如果使能了非cache区,那么非cache区的内容就会一直保持与flash数据一致.这样在数据未真真写入flash之前,就不会误认为已经完成写操作了.
与此道理相同.为了保证IO读取数据一致性,其地址已应列入non-cacheable区.(DMA存储器也一样)
|