cache的使用方法 1. 先設定地址為cacheable。請看暫存器$mr0的說明。 2. 將cache enable,請看暫存器$mr8的說明。
請參考demo-cache這個example code,看main-cache.c。
1. 將NTC0設為2,即Cacheable/Write-Back /* Cacheable/Write-Back for NTC0 */ mmu_ctl = __nds32__mfsr(NDS32_SR_MMU_CTL); mmu_ctl |= 0x2 << 1; __nds32__mtsr(mmu_ctl, NDS32_SR_MMU_CTL);
2. Enable i-cache cache_ctl = __nds32__mfsr(NDS32_SR_CACHE_CTL); cache_ctl |= 0x1; /* Enable I Cache */ __nds32__mtsr(cache_ctl, NDS32_SR_CACHE_CTL);
Enable d-cache cache_ctl = __nds32__mfsr(NDS32_SR_CACHE_CTL); cache_ctl |= 0x2; /* Enable D Cache */ __nds32__mtsr(cache_ctl, NDS32_SR_CACHE_CTL);
|