|
各位高手:
在OEMAddressTable中如果定义了
DCD 0x80000000, 0x32000000, 32 ; 32 MB DRAM BANK 0
DCD 0x82000000, 0x08000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 1
DCD 0x84000000, 0x10000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 2
DCD 0x86000000, 0x18000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 3
DCD 0x88000000, 0x20000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 4
DCD 0x8A000000, 0x28000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 5
DCD 0x8C000000, 0x30000000, 32 ; 32 MB DRAM BANK 0
DCD 0x90800000, 0x48000000, 1 ; Memory control register
DCD 0x90900000, 0x49000000, 1 ; USB Host register
DCD 0x90A00000, 0x4A000000, 1 ; Interrupt Control register
DCD 0x90B00000, 0x4B000000, 1 ; DMA control register
DCD 0x90C00000, 0x4C000000, 1 ; Clock & Power register
DCD 0x90D00000, 0x4D000000, 1 ; LCD control register
DCD 0x90E00000, 0x4E000000, 1 ; NAND flash control register
..............
如果我想操作 DCD 0x90E00000, 0x4E000000, 1 ; NAND flash control register
FLASH控制器如何操作?我用了MmMapIoSpace函数将物理地址0x4E000000映射为虚拟地址,结果好像不管用,
如果直接操作虚拟地址,比如0x90E00000又会失败,不知道该如何操作?
直接操作虚拟地址不是全部会操作,比如我操作0x90000000就不会出错,但是操作0x90E00000就会出错.
请问如何解决?如何操作上述I/O设备?
|
|