ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
141480 Топик полностью
Ксения (07.12.2008 20:46, просмотров: 261) ответил Ксения на Как программно изменить байт/слово во flash?
Вторая попытка Осознала, что писать во flash можно только целыми страницами. Только так и не поняла сколько в такой странице байт, а потому взяла наобум 256. Вот что получилось: int addr = 173; // адрес int word = 0x4141; ... __disable_interrupt(); SPMCSR |= (1 << RWWSRE); // стираю temp bufer в ручную на всякий случай for( i=0; i < 256; i+=2) { while( SPMCSR_SPMEN); // жду окончания предыдущей операции с SPM _SPM_FILLTEMP( i, (i == addr & 0xFE)? word : *(__flash short*)i); // копирую в temp buffer то, что было во flash раньше, подменяя только word по нужному адресу addr } while( SPMCSR_SPMEN); // жду окончания предыдущей операции с SPM _SPM_ERASE( 0); // стираю нулевую страницу, т.к. мой адрес там while( SPMCSR_SPMEN); // жду окончания предыдущей операции с SPM _SPM_PAGEWRITE( 0); // записываю нулевую страницу, т.к. мой адрес там __enable_interrupt(); Все равно не работает - flash остается неизменным.