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

 
 
> Дозапись данных во flash LPC2XXX при помощи IAP, На сколько применим такой способ?
e-not
сообщение Mar 1 2006, 07:57
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 29-10-05
Пользователь №: 10 252



В ОЗУ выделяем блок памяти размером 256|512|...байт и изначально заполняем его 0xFF.
Контроллер получает какие-то данные и записывает их в начале этого блока. После этого весь блок
записывается во flash средствами IAP. Следующие данне записываются в блок ОЗУ сразу после предыдущих и весь блок ОЗУ снова записывается во flash на то же место. И так далее до заполнения блока. После-переход на следующий блок flash и т.д.
Можно, конечно, дождаться заполнения всего блока ОЗУ и записать сразу все, но в некоторых случаях такой способ может быть актуальным (пропадание питания).
На LPC2138 вроде работает, но длительных наблюдений не проводилось. Не приведет-ли это к сокращению ресурса flash, ошибкам данных и прочим нехорошим последствиям?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Romario
сообщение Mar 1 2006, 13:19
Сообщение #2


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

Группа: Участник
Сообщений: 92
Регистрация: 26-06-04
Пользователь №: 192



это стандартный (обычный) алгоритм записи в память с ограниченным ресурсом и секторной организацией с целью увеличения ресурса энозу. Ресурс сектора флэшки (как обычно) уменьшается на 1 при стирании всего сектора. А записывать в него до стирания можно чего угодно и сколько угодно
(с некоторой поправкой которая всем известнаsmile.gif
собственно сказать больше нечегоsmile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 1 2006, 15:40
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(e-not @ Mar 1 2006, 09:57) *
Не приведет-ли это к сокращению ресурса flash, ошибкам данных и прочим нехорошим последствиям?

Отчего-же это "не приведет"? Чем чаще будете пользоваться, тем вероятнее и приведет.
Попробуйте повесить на I2C/SPI флешку - по крайней мере процессор жив в случае чего останется
и сможет рассказать. Заодно избавитесь (или все равно?) от немалых IAPовских
задержек при выпрыгивании-возвращении и записи.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Igor657
сообщение Mar 20 2006, 15:34
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 7-12-05
Пользователь №: 11 941



Сомневаюсь, что удастся дозаписывать сектор без его стирания.
Вариант применим, только если пользаваться им не часто, например для сохранения настроек прибора.
Все-таки у flash ресурс не велик.
Для частой записи я использую внешнюю SPI EEPROM AT25256 (размеры не велики, побайтная запись)
Может и Вам подойдет.

Удачи !
Go to the top of the page
 
+Quote Post
AlexPo
сообщение Apr 18 2006, 09:54
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 26-07-05
Пользователь №: 7 090



Хотелось бы уточнить: надо ли при IAP останавливать PLL в LPC2138?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 18 2006, 10:07
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(AlexPo @ Apr 18 2006, 12:54) *
Хотелось бы уточнить: надо ли при IAP останавливать PLL в LPC2138?

Формально для "старых LPC" декларировалась зависимость от версии загрузчика.
Для LPC2138 в errata уже не поминалось никогда.
А что, трудно остановить для совместимости со всем и вся? Или время пытаемся экономить?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexPo
сообщение Apr 18 2006, 10:50
Сообщение #7





Группа: Участник
Сообщений: 11
Регистрация: 26-07-05
Пользователь №: 7 090



Цитата(zltigo @ Apr 18 2006, 14:07) *
Цитата(AlexPo @ Apr 18 2006, 12:54) *

Хотелось бы уточнить: надо ли при IAP останавливать PLL в LPC2138?

Или время пытаемся экономить?


Честно говоря я об этом не подумал. Для начала мне хотелось бы определённости. Как следует из UM, в качестве параметров в командах Copy RAM to Flash и Erase необходимо задавать CCLK (System Clock Frequency), что косвенно говорит о том, что PLL останавливать не надо. Честно говоря, я предполагал, что эта частота нужна IAP только для того, чтобы сформировать требуемые тайминги для операций с Flash, но длительности операций не зависят от частоты и является постоянной. Вы же своим вопросом утверждаете, что длительность операций с Flash тем меньше, чем выше системная частота. Правильно ли я Вас понял?
Go to the top of the page
 
+Quote Post

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

 


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


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