以下代码来自三星 s3c2440 请高手在疑点处 注释
#define DESC_SEC (0x2|(1<<4))
#define RW_CB (AP_RW|DOMAIN0|CB|DESC_SEC) #define RW_CNB (AP_RW|DOMAIN0|CNB|DESC_SEC) //MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr) MMU_SetMTT(0x00000000,0x07f00000,0x00000000,RW_CNB); //bank0 这是在干什么?请高手注释。 MMU_SetMTT(0x08000000,0x0ff00000,0x08000000,RW_CNB); //bank1 MMU_SetMTT(0x10000000,0x17f00000,0x10000000,RW_NCNB); //bank2
//这个函数干什么,高手注释 void MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr) { volatile U32 *pTT; volatile int i,nSec; pTT=(U32 *)_MMUTT_STARTADDRESS+(vaddrStart>>20); nSec=(vaddrEnd>>20)-(vaddrStart>>20); for(i=0;i<=nSec;i++)*pTT++=attr |(((paddrStart>>20)+i)<<20); } |