⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmu.h

📁 一个基于ARM9的操作系统, 实现了很多的功能,包括内存管理,进程创建等
💻 H
字号:
#ifndef __MMU_H__
#define __MMU_H__


#ifdef __cplusplus
extern "C" {
#endif


#define DESC_SEC        (0x2|(1<<4))
#define CB              (3<<2)          /* cache_on, write_back */
#define CNB             (2<<2)          /* cache_on, write_through */
#define NCB             (1<<2)          /* cache_off,WR_BUF on */
#define NCNB            (0<<2)          /* cache_off,WR_BUF off */
#define AP_RW           (3<<10)         /* supervisor=RW, user=RW */
#define AP_RO           (2<<10)         /* supervisor=RW, user=RO */

#define DOMAIN_FAULT    (0x0)
#define DOMAIN_CHK      (0x1)
#define DOMAIN_NOTCHK   (0x3)
#define DOMAIN0         (0x0<<5)
#define DOMAIN1         (0x1<<5)

#define DOMAIN0_ATTR    (DOMAIN_CHK<<0)
#define DOMAIN1_ATTR    (DOMAIN_FAULT<<2)

#define RW_CB           (AP_RW|DOMAIN0|CB|DESC_SEC)
#define RW_CNB          (AP_RW|DOMAIN0|CNB|DESC_SEC)
#define RW_NCNB         (AP_RW|DOMAIN0|NCNB|DESC_SEC)
#define RW_FAULT        (AP_RW|DOMAIN1|NCNB|DESC_SEC)


void MMU_Init(void);
void MMU_SetMTT(int vaddrStart,int vaddrEnd, int paddrStart, int attr);
void MMU_ChangeRomCacheStatus(int attr);

void MMU_EnableICache(void);
void MMU_DisableICache(void);
void MMU_EnableDCache(void);
void MMU_DisableDCache(void);
void MMU_EnableAlignFault(void);
void MMU_DisableAlignFault(void);
void MMU_EnableMMU(void);
void MMU_DisableMMU(void);
void MMU_SetTTBase(unsigned int base);
void MMU_SetDomain(unsigned int domain);
void MMU_SetFastBusMode(void);
void MMU_SetAsyncBusMode(void);
void MMU_InvalidateIDCache(void);
void MMU_InvalidateICache(void);
void MMU_InvalidateICacheMVA(unsigned int mva);
void MMU_PrefetchICacheMVA(unsigned int mva);
void MMU_InvalidateDCache(void);
void MMU_InvalidateDCacheMVA(unsigned int mva);
void MMU_CleanDCacheMVA(unsigned int mva);
void MMU_CleanInvalidateDCacheMVA(unsigned int mva);
void MMU_CleanDCacheIndex(unsigned int index);
void MMU_CleanInvalidateDCacheIndex(unsigned int index);
void MMU_WaitForInterrupt(void);
void MMU_InvalidateTLB(void);
void MMU_InvalidateITLB(void);
void MMU_InvalidateITLBMVA(unsigned int mva);
void MMU_InvalidateDTLB(void);
void MMU_InvalidateDTLBMVA(unsigned int mva);
void MMU_SetDCacheLockdownBase(unsigned int base);
void MMU_SetICacheLockdownBase(unsigned int base);
void MMU_SetDTLBLockdown(unsigned int baseVictim);
void MMU_SetITLBLockdown(unsigned int baseVictim);
void MMU_SetProcessId(unsigned int pid);


#ifdef __cplusplus
}
#endif


#endif /*__MMU_H__*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -