#ifdef LOCK_FLASH
//Locking Flash
if(!AT91F_GET_Security_Status())
ret = AT91F_SET_Security();
#endif
int AT91F_Flash_Ready (void)
{
u32 status;
status = 0;
//* Wait the end of command
while ((status & AT91C_MC_FRDY) != AT91C_MC_FRDY )
{
status = AT91C_BASE_MC->MC_FSR;
}
return status;
}
int AT91F_GET_Security_Status (void)
{
return (AT91C_BASE_MC->MC_FSR & AT91C_MC_SECURITY);
}
int AT91F_SET_Security (void)
{
//* write the flash
//* Write the Set Security Bit command
AT91C_BASE_MC->MC_FCR = ( AT91C_MC_CORRECT_KEY | AT91C_MC_FCMD_SET_SECURITY ) ;
//* Wait the end of command
AT91F_Flash_Ready();
return (AT91F_GET_Security_Status());
}