#define IOP_BASE 0xB1600000 // 0x56000000 typedef struct { unsigned int rGPACON; // 00 unsigned int rGPADAT; unsigned int rPAD1[2]; unsigned int rGPBCON; // 10 unsigned int rGPBDAT; unsigned int rGPBUP; unsigned int rPAD2; unsigned int rGPCCON; // 20 unsigned int rGPCDAT; unsigned int rGPCUP; unsigned int rPAD3; unsigned int rGPDCON; // 30 unsigned int rGPDDAT; unsigned int rGPDUP; unsigned int rPAD4; unsigned int rGPECON; // 40 unsigned int rGPEDAT; unsigned int rGPEUP; unsigned int rPAD5; unsigned int rGPFCON; // 50 unsigned int rGPFDAT; unsigned int rGPFUP; unsigned int rPAD6; unsigned int rGPGCON; // 60 unsigned int rGPGDAT; unsigned int rGPGUP; unsigned int rPAD7; unsigned int rGPHCON; // 70 unsigned int rGPHDAT; unsigned int rGPHUP; unsigned int rPAD8; unsigned int rMISCCR; // 80 unsigned int rDCKCON; unsigned int rEXTINT0; unsigned int rEXTINT1; unsigned int rEXTINT2; // 90 unsigned int rEINTFLT0; unsigned int rEINTFLT1; unsigned int rEINTFLT2; unsigned int rEINTFLT3; // A0 unsigned int rEINTMASK; unsigned int rEINTPEND; unsigned int rGSTATUS0; // AC unsigned int rGSTATUS1; // B0 unsigned int rGSTATUS2; // B4 ;;; SHL unsigned int rGSTATUS3; // B8 unsigned int rGSTATUS4; // BC unsigned int rFLTOUT; // C0 unsigned int rDSC0; unsigned int rDSC1; unsigned int rMSLCON; unsigned int rGPJCON; // D0 unsigned int rGPJDAT; unsigned int rGPJUP; unsigned int rPAD9; }IOPreg; hi this is my doubt how they are mapping 0xB1600000 // 0x56000000 virtual address 0xB1600000 with physical address 0x56000000 and subsequently 00,10,20 how this is happening a little help pls.....
virtual address to physical address translation
Hello Selva, I don't know the answer, the mapping is not the same for all the processors supported by Windows CE. The idea is that you don't care about that, because the virtualAlloc/VirtualCopy make the mapping for you. domodom