ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
114095 Топик полностью
Сергей Борщ (28.02.2008 14:57, просмотров: 150) ответил =vvv= на О програмировании NVM битов в SAM7S. IAR. Команда AT91C_MC_FCMD_SET_SECURITY работает, установка GPNVM0 нет.
Ставлю их через JTAG скриптом C-SPY ExecUserPreload() { Reset(); Remap_FLASH(); __writeMemory32(0xD3,0x98,"Register"); // CPSR = SVC mode, ARM, IRQ, FIQ disabled SetGPNVM(0); // Enable BOD SetGPNVM(1); // Enable BOD Reset } SetGPNVM(bit) { __var tmp; __message " -------- GPNVM bit ", bit, " programming ---------- "; tmp = __readMemory32(0xFFFFFF68, "Memory"); // MC_FSR if(!(tmp & ( 1 << (8 + bit) ))) // if GPNVM0 not set { __writeMemory32( 0 | ((4032000 * 36 / 3 / 1000000) << 16) // MCK cycles in 1 us | (1 << 8) // 1 FWS | (1 << 7) // no erase before prog ,0xFFFFFF60, "Memory"); // MC_FMR __writeMemory32( 0 | (0x5A << 24) // key | (bit << 8) // bit number | 0x0000000B // SET GPNVM command ,0xFFFFFF64, "Memory"); // MC_FCR do { tmp = __readMemory32(0xFFFFFF68, "Memory"); } while (! (tmp & (1 << 0)) ); // wait untli FRDY if(tmp & (3 << 2)) __message " !!!!!!! GPNVM bit ", bit, " programming error !!!!!!!!!"; else __message " GPNVM bit ", bit, " programmed "; } else { __message " GPNVM bit ", bit, " alredy set "; } }