I could't understand why a 'return -1;' is added in the following code.
int32_t main(void)
{ SYS_Init();
uint32_t au32Config[2];
if(FMC_ReadConfig(au32Config, 2) < 0)
return -1;
if(((au32Config[0] & 0x01) == 1) || (au32Config[1] != DATA_FLASH_BASE))
{
FMC_EnableConfigUpdate();
au32Config[0] &= ~0x1;
au32Config[1] = DATA_FLASH_BASE;
FMC_Erase(CONFIG_BASE);
if(FMC_WriteConfig(au32Config, 2) < 0)
return -1;
Is this a return value for the main function ? I know that an abnormal termination of main is signaled by a non zero return value.
Here the functions like FMC_ReadConfig() and FMC_WriteConfig() are defined in libraries as:
-------------------------------------------------------------------------
int32_t FMC_ReadConfig(uint32_t *u32Config, uint32_t u32Count)
{
int32_t i;
for(i = 0; i < u32Count; i++)
u32Config[i] = FMC_Read(FMC_CONFIG_BASE + i * 4);
return 0;
}
--------------------------------------------------------------------------
int32_t FMC_WriteConfig(uint32_t *u32Config, uint32_t u32Count)
{
int32_t i;
for(i = 0; i < u32Count; i++)
{
FMC_Write(FMC_CONFIG_BASE + i * 4, u32Config[i]);
if(FMC_Read(FMC_CONFIG_BASE + i * 4) != u32Config[i])
return -1;
}
return 0;
}
----------------------------------------------------------------------------
(Code is used in Data Flash storage of Cortex M0 Controller.)
Aucun commentaire:
Enregistrer un commentaire