ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
114058
=vvv= (28.02.2008 10:50, просмотров: 3072)
О програмировании NVM битов в SAM7S. IAR. Команда AT91C_MC_FCMD_SET_SECURITY работает, установка GPNVM0 нет. Правда установку AT91C_MC_FCMD_SET_SECURITY прочитать нельзя - сразу отрубается JTAG. При записи GPNVM0 и GPNVM1 в MC_FSR вместо 3 записывается 8. Что-то может быть не прожевал? Код : #define AT91C_MC_FSR_MVM ((u32) 0x03 << 8) //*---------------------------------------------------------- ------------------ __ramfunc void AT91F_NVM_SetBODEn (void) { int TnmNVM=0; AT91PS_MC ptMC = AT91C_BASE_MC; //* Write the Set NVM Bit command ptMC->MC_FCR = (AT91C_MC_CORRECT_KEY | AT91C_MC_FCMD_SET_GP_NVM | (AT91C_MC_PAGEN & (3 << 8)); //* Wait the end of command AT91F_Flash_Ready(); } //*---------------------------------------------------------------------------- //*---------------------------------------------------------- ------------------ __ramfunc void AT91F_NVM_SetSecuritiBit (void) { ptMC->MC_FCR = AT91C_MC_CORRECT_KEY | AT91C_MC_FCMD_SET_SECURITY ; AT91F_Flash_Ready(); } //*---------------------------------------------------------------------------- __ramfunc int AT91F_GetSecuriti_Status(void) { return (AT91C_BASE_MC->MC_FSR & AT91C_MC_SECURITY); } //*---------------------------------------------------------- ------------------ __ramfunc int AT91F_GetGPNVM_Status(void) { return (AT91C_BASE_MC->MC_FSR & AT91C_MC_FSR_MVM); } //*---------------------------------------------------------------------------- void EnableBOD(void) { while (!(AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY)) ; AT91C_BASE_MC->MC_FMR = ((AT91C_MC_FMCN)&(200 <<16)) | AT91C_MC_FWS_3FWS ; while (!(AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY)) ; if(!AT91F_GetGPNVM_Status()) { AT91F_NVM_SetBODEn(); } if(!AT91F_GetSecuriti_Status()) { #ifdef TEST_RELEARE AT91F_NVM_SetSecuritiBit(); #endif } while (!(AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY)) ; AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS ; while (!(AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY)) ; } //*----------------------------------------------------------------------