|
请问大侠:
我最近才发现,我对P33的前四个32k的block的操作(unlock、erase、write)并没有执行,但是FALSH依然可以驱动起来,并且能够识别
对P33的前四个32k的block的操作并没有执行的原因:
if ( (flashType == L18) || (flashType == L30) || (flashType == P33) )
{
EdbgOutputDebugString("Eboot---main----Ethdown flashType == P33!\r\n");
if ( (dwPhysStart >= flash_start_address) && (dwPhysStart < (flash_start_address + 0x40000)) )
{
num_l3_blocks_to_erase = 4;
num_blocks--; // Decrease the num_blocks count, as it assumes the first block is 64K
num_blocks = num_blocks + num_l3_blocks_to_erase;
}
}
我的dwPhysStart = 0xA008_0000 而 flash_start_address = 0xA000_0000
所以这个条件永远不能满足,
可是我看了几个BSP中这的例子都是dwPhysStart<(flash_start_address + 0x40000)
所以也没敢擅自改动,请问这里为什么要这么判断?
各位的dwPhysStart 和flash_start_address都是多少呢??
另外,我看了一个P30的flasherase和flashwrite它也没有管前4个block也可以运行起来,请问这样也可以??
|
|