реклама на сайте
подробности

 
 
> sam7 встроенная флеш память, непонятно как пишется
Neon_613
сообщение Mar 16 2012, 09:01
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 129
Регистрация: 19-09-10
Пользователь №: 59 574



Зравствуйте!
надо писать во встроенную Flash

есть функция в оперативке

Код
unsigned char WritePage(unsigned char *data,unsigned short PageNumber)
{
unsigned int i;    

    *MC0_FMR &= ~(0xFF<<16);
    *MC0_FMR |=  (36<<16)|0<<FWS;      //количество периудов MCK в 1.5 микросекунде
    *MC0_FMR &= ~(0x1<<7);
    *MC0_FMR &=~( 0x1<<0 | 0x1<<2 | 0x1<<3);

    i = 0;
    do{IFLASH[i >> 2]=data[i]|(data[i+1]<<8)|(data[i+2]<<16)|(data[i + 3]<<24);i += 4;} while(i<IFLASH_PAGE_SIZE);
          
    *MC0_FCR = 0x5A<<KEY|(PageNumber<<PAGEN)|WP<<FCMD;
    
    while(!((i=*MC0_FSR)&FRDY));

    if((i&LOCKE)||(i&PROGE))return (1);

    return (0);
}


где #define IFLASH ((unsigned int*)0x00100000)

почему туда ((unsigned int*)0x00100000)?
там же начало моей проги?
почему она еще работает? там временный буфер?

(в даташите написано что все пишется через latch buffer но где этот буфер не написано)

получается я хочу записать в 30 страницу а пишу в 0вую а потом копируется?
а кто востановит 0вую? потому что все продолжает работать и после ресета.

Сообщение отредактировал IgorKossak - Mar 16 2012, 10:28
Причина редактирования: [code]
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016