使用Nios II® Gen2 内核时,会引入外围区域,有 32 位地址选项。对于Nios II® Gen2,对于一个未缓存写入(其中位 31 设置)或在外设内存区域,高速缓存被绕过。
未缓存的数据和缓存的数据无法再分配到数据高速缓存中的同一行,因为Nios II® Gen2 内核不会在未缓存的行中更新高速缓存。这是 Nios II® Classic 的行为。然而,NIOS® II® Gen2 不再为未缓存写入更新高速缓存。
如果您有现有的Nios II® 代码,并使用带数据高速缓存的Nios II/f® Gen2,则必须检查您的软件,以确保它不在同一高速缓存线上混合可缓存和不可缓存的数据。
完成数据编写后,应确保通过使用函数alt_dcache_flush(空用* 启动,alt_u32 len)刷新高速缓存。此功能从地址开始开始,刷新长度为 len 字节的内存区域的数据高速缓存。刷新高速缓存包括写回脏数据,然后使高速缓存失效。