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

 
 
> Проблема в работе с flash-памятью меги, помогите новичку
Len_OK
сообщение Feb 15 2008, 09:10
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986



Ребята помогите разобраться с такой проблемкой!Мне нужно хранить во флеше данные и по мере их изменения перезаписывать.Написала процедурки, проверила размещение во флеше- всё верно, только после перезаписи подвисает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bloodden
сообщение Feb 15 2008, 09:35
Сообщение #2


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Писать во флеш можно ТОЛЬКО из области бутлоадера.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
Len_OK
сообщение Feb 15 2008, 09:49
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986



Цитата(bloodden @ Feb 15 2008, 13:35) *
Писать во флеш можно ТОЛЬКО из области бутлоадера.

В том то и дело, что процедуры записи размещаю в бутлоадере.Во флешку данные записываются, но после я не могу ничего больше выполнить, на некоторое время МК подвисает.

Я работаю с ключами, мне нужно их считывать и запоминать.Как часто будут обновляться ключи-этого мне неизвестно.

2 KRS
Значит еепром надёжней чем флешка?


#pragma location = "loader"
void read_fash_to_temp_buf(unsigned char *temp_buf,unsigned char NumPage)
{
unsigned const char __flash *flash_adr;
unsigned char i;
flash_adr=&flash_buf_read[NumPage][0];
for(i=0;i<64;i++)
{
*temp_buf = __load_program_memory(flash_adr);
temp_buf++;
flash_adr++;
}
}


#pragma location = "loader"
void erase_flash_page(unsigned char NumPage)
{
unsigned const char __flash *flash_adr;
flash_adr=&flash_buf_read[NumPage][0];
_ENABLE_RWW_SECTION();
_WAIT_FOR_SPM();
while(EECR&(1<<1));
_PAGE_ERASE(flash_adr);
}

#pragma location = "loader"
void update_flash_page(unsigned char *temp_buf,unsigned char NumPage)

{
unsigned const char __flash *flash_adr;
unsigned char Buf_Adres = 0;
flash_adr=&flash_buf_read[NumPage][0];

do
{ fl_data=*(temp_buf+Buf_Adres+1);
fl_data<<=8;
fl_data|=*(temp_buf+Buf_Adres);
_FILL_TEMP_WORD(Buf_Adres,fl_data);
Buf_Adres+=2;
} while (Buf_Adres<64);


_WAIT_FOR_SPM();
while(EECR&(1<<1));
_PAGE_ERASE(flash_adr);
_WAIT_FOR_SPM();
_PAGE_WRITE(flash_adr);
}


Вот так я работаю с флешкой, может написано что-то криво?Просто это первый мой прект..может чего и не так пишу
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Len_OK   Проблема в работе с flash-памятью меги   Feb 15 2008, 09:10
- - KRS   А eeprom не хватает?   Feb 15 2008, 09:16
|- - Len_OK   Цитата(KRS @ Feb 15 2008, 13:16) А eeprom...   Feb 15 2008, 09:30
|- - aesok   Цитата(Len_OK @ Feb 15 2008, 12:30) Мне п...   Feb 15 2008, 09:37
|- - KRS   Цитата(Len_OK @ Feb 15 2008, 12:30) Мне п...   Feb 15 2008, 09:41
|- - KRS   Цитата(Len_OK @ Feb 15 2008, 12:44) 2 KRS...   Feb 15 2008, 10:08
- - GDI   У еепром больше циклов перезаписи 100000 против 10...   Feb 15 2008, 09:52
- - Igor26   А на какое время подвисает? Не забывайте, что для ...   Feb 15 2008, 10:18
- - Len_OK   я по времени не проверяла, но прилично, быть может...   Feb 15 2008, 11:00
|- - KRS   Цитата(Len_OK @ Feb 15 2008, 14:00) я по ...   Feb 15 2008, 11:38
|- - Igor26   Цитата(Len_OK @ Feb 15 2008, 14:00) но пр...   Feb 15 2008, 12:28
|- - KRS   Цитата(Igor26 @ Feb 15 2008, 15:28) 2KRS ...   Feb 15 2008, 13:34
|- - Igor26   Цитата(KRS @ Feb 15 2008, 16:34) А ну тог...   Feb 15 2008, 15:34
- - Len_OK   огромное спасибо ребята!!!!   Feb 18 2008, 11:04
- - Igor26   Цитата(Len_OK @ Feb 18 2008, 14:04) огром...   Feb 18 2008, 13:44


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

 


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


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