本帖最后由 sqrong 于 2015-3-2 11:32 编辑
固件库与数据手册冲突
/* Read current User Configuration */
FMC_ReadConfig(au32Config, 1);
/* Just return when Data Flash has been enabled */
if(!(au32Config[0] & 0x1))
return 0;
根据数据手册上,上面程序的FMC_ReadConfig(au32Config, 1);
FMC_CONFIG_BASE 0x00300000UL 寄存器第0位是保留的。
数据手册为新唐官方最新的,BSP版本为M051_Series_BSP_CMSIS_Rev3.00.002 。--FMC_RW
FMC_ReadConfig(au32Config, 2);
if(au32Config[0] & 0x40)
{
FMC_EnableConfigUpdate();
au32Config[0] &= ~0x40;
FMC_Erase(FMC_CONFIG_BASE);
FMC_WriteConfig(au32Config, 2);
// Perform chip reset to make new User Config take effect
SYS_ResetChip();
}
数据手册中只有一个CONFIG0寄存器的描述,另一个的作用??? fmc_iap->fmc_ap_main->SetIAPBoot(void)
二、从APROM中将程序拷贝到LDROM中,中断向量表为何不拷贝,但又将向量页重映射到LDROM。
LoadImage((uint32_t)&loaderImage1Base, (uint32_t)&loaderImage1Limit,
FMC_LDROM_BASE, FMC_LDROM_SIZE);// loaderImage1Base根据map文件是在0x0C处,刚好跳过了向量表。
/* Set VECMAP to LDROM for booting from LDROM */
FMC_SetVectorPageAddr(FMC_LDROM_BASE);
|