InPlay API
hal_icache.h
1 
13 #ifndef HAL_ICACHE_H
14 #define HAL_ICACHE_H
15 
16 #include "in_mmap.h"
17 
18 static __inline void icache_clear_mem(void)
19 {
20  uint32_t reg;
21 
22  WR_WORD(ICACHE_REG_MISC_CTRL, ICACHE_REG_MISC_CTRL_CTL_SRAM_CLR);
23  while (1) {
24  reg = RD_WORD(ICACHE_REG_INTR_STATUS);
25  if (reg & ICACHE_REG_INTR_STATUS_SRAM_CLEAR_DONE)
26  break;
27  }
28 }
29 
30 static __inline void icache_en(int en)
31 {
32  if (en) {
33  WR_WORD(ICACHE_REG_MISC_CTRL, ICACHE_REG_MISC_CTRL_CTL_CACHE_EN);
34  RD_WORD(ICACHE_REG_MISC_CTRL); // Make sure it is enable
35  } else {
36  WR_WORD(ICACHE_REG_MISC_CTRL, ICACHE_REG_MISC_CTRL_DEFAULT);
37  WR_WORD(ICACHE_REG_MISC_CTRL, ICACHE_REG_MISC_CTRL_CTL_SRAM_CLR);
38  }
39 }
40 
41 #endif // HAL_ICACHE_H