|
现在我有两个问题和一个疑问请教:
问题1:我以前的OEMaddresstable中的部分:
DCD BOOT_FLASH_BASE_C_VIRTUAL, BOOT_FLASH_BASE_PHYSICAL, 32 ; (8000 0000, 0000 0000) nCS0: BOOT ROM
DCD CS2_L_BASE_C_VIRTUAL, CS2_L_BASE_PHYSICAL, 8 ; (8200 0000, 0800 0000) nCS2
DCD CS2_H_BASE_C_VIRTUAL, CS2_H_BASE_PHYSICAL, 8 ; (8280 0000, 0A00 0000) nCS2
DCD CS3_L_BASE_C_VIRTUAL, CS3_L_BASE_PHYSICAL, 8 ; (8300 0000, 0C00 0000) nCS3
DCD CS3_H_BASE_C_VIRTUAL, CS3_H_BASE_PHYSICAL, 8 ; (8380 0000, 0E00 0000) nCS3
DCD CS4_L_BASE_C_VIRTUAL, CS4_L_BASE_PHYSICAL, 1 ; (9670 0000, 1000 0000) nCS4
DCD CS4_H_BASE_C_VIRTUAL, CS4_H_BASE_PHYSICAL, 1 ; (9680 0000, 1200 0000) nCS4
DCD CS5_L_BASE_C_VIRTUAL, CS5_L_BASE_PHYSICAL, 1 ; (9690 0000, 1400 0000) nCS5
DCD CS5_H_BASE_C_VIRTUAL, CS5_H_BASE_PHYSICAL, 1 ; (96A0 0000, 1600 0000) nCS5
从FLASH往下的nCS2~nCS5是干什么的呢??我可否将它们都设置成1,或者干脆删除掉??我搜了一下BSP没看到哪用到这些东西!
如果可以我就可以给nCS0对应的FLASH分配64M的内存空间了!
问题2:我对照了一下其他BSP的PSM和CONFIG.BIB,发现还有一种 NK 800B8000的情况
; Name | Virtual/Cached | Size | Region Type
MEMORY
IF IMGFLASH !
IF MMXIP_MEMMAP !
NK 800B8000 02000000 RAMIMAGE ; SDRAM 32MB: [800B 8000 -> 820B 7FFF]
RAM 820B8000 01C00000 RAM ; SDRAM 28MB: [820B 8000 -> 83CB 7FFF]
请问这个B8000是从哪来的呢??
问题3:
请问 PSM中的
/* VirtualReadStartAddress */ (VOID_PTR)0xA0000000,
/* VirtualWriteStartAddress */ (VOID_PTR)0xA0000000,
/* VirtualBurstReadStartAddress */ (VOID_PTR)0xA0000000,
这个值是否 = BOOT_FLASH_BASE_U_VIRTUAL???
以前我的PSM和OEMaddressTable刚好能对应上:
#define BOOT_FLASH_BASE_PHYSICAL 0x00000000
#define BOOT_FLASH_BASE_C_VIRTUAL 0x80000000
#define BOOT_FLASH_BASE_U_VIRTUAL (BOOT_FLASH_BASE_C_VIRTUAL + CACHED_TO_UNCACHED_OFFSET)
如果是这样的话,我现在的BOOT_FLASH_BASE_C_VIRTUAL为0x86500000,那么BOOT_FLASH_BASE_U_VIRTUAL = 0xA650 0000
可是我看资料和其他的BSP发现这个地方好象还是有条件的,貌似是以什么形式启动
(即BOOT_FLASH_BASE_U_VIRTUAL = 0x80000000 + 0x20000000 = 0xA0000000) |
|