我的PSM设置如下:
UINT8 PLAT_DefineArrayParameters(PSM_OEMInfoPtr oem_info_ptr)
{
static const PSM_OEMInfo oem_info = {
/* PhysicalReadStartAddress */ (VOID_PTR)0x00000000,
/* PhysicalWriteStartAddress */ (VOID_PTR)0x00000000,
/* PhysicalBurstReadStartAddress */ (VOID_PTR)0x00000000,
/* VirtualReadStartAddress */ (VOID_PTR)0xA0000000,
/* VirtualWriteStartAddress */ (VOID_PTR)0xA0000000,
/* VirtualBurstReadStartAddress */ (VOID_PTR)0xA0000000,
/* MaximumArrayLength */ 0x03F00000 ,
/* MaximumRegistrySize */ 0x00080000,
/* ManagedAreaStart */ 0x01F00000 ,
/* ManagedAreaLength */ 0x02000000 ,
/* ReadBusWidth */ 16 ,
/* WriteBusWidth */ 16 ,
/* BurstReadBusWidth */ 16
};
/* Copy the local OEMInfo structure out to the caller's structure */
*oem_info_ptr = oem_info;
/* enable/disable polling for interrupts */
Interrupts_Polling_Write = FALSE;
Interrupts_Polling_Erase = TRUE;
/* enable/disable HWRWW */
Multiple_Partitions = FALSE;
/* no polling for interrupts if HWRWW is enable */
if (Multiple_Partitions)
{
Interrupts_Polling_Write = FALSE;
Interrupts_Polling_Erase = FALSE;
}
RETAILMSG(1, (TEXT("eboot+ PSM + CONFIG113!\r\n")));
/* All done; return with no errors */
return(FALSE);
}
问题1:这个设置在有些板子上可以下载成功,并成功启动CE,但是有些板子不行(电路板都是同一批生产的)
问题2:本来FLASH大小是400_0000,但是每次设置MaximumArrayLength肯定不能下载成功,提示PSM 初始化失败
后来发现设置成大于3F00000也不能成功,对照前面我问的NK不能大于32M,大了就下不进去,现在感觉
这片FLASH分成两半,每半都不能大于32M,
问题3:MaximumArrayLength设置成3F00000也不是每个板子都可以成功启动CE
发现如果启动不了,就需要把MaximumArrayLength和ManagedAreaLength变小,变小后总有一个NK适合这个板子
问题4: /* ReadBusWidth */ 16 ,
/* WriteBusWidth */ 16 ,
/* BurstReadBusWidth */ 16
以前我设置的都是32,但是我不知道我的是16位还是32位
感觉是16位
我的是一片P33的64MB NorFlash
这个是怎么看是16位还是32位的??
谢谢各位!!!