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

 
 
> Чтение из последовательной флешки, есть ли ограничения?
elusive
сообщение Jun 25 2013, 07:48
Сообщение #1


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

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



Последовательные флешки типа sflash стирают только блоками и записывают страницами (размером поменьше).

А кто-нибудь знает, есть ли ограничения по чтению из такой флешки? Я могу считать любое количество байт с любого адреса, даже если блок чтения переходит через границу блоков?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
aaarrr
сообщение Jun 25 2013, 07:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ограничений на чтение нет.
Go to the top of the page
 
+Quote Post
elusive
сообщение Jun 25 2013, 08:33
Сообщение #3


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

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



Цитата(aaarrr @ Jun 25 2013, 13:53) *
Ограничений на чтение нет.


Исходя из даташита я так и подумал.
Однако имею проблемы при считывании куска памяти с переходом границы блоков.

Записываю файл в два первых сектора (каждый по 256 страниц = 64к).
Считываю блоками по 8к начиная с адреса 12. То есть в какой-то момент один из блоков чтения перейдет границу секторов.

Вызывает подозрение считывание первых именно 12 байтов второго сектора.
При чтении напрямую с этих адресов все правильно как и записывали, а при чтении блоком 8к именно эти 12 байт выдают свое старое значение, которое было до последней записи. При этом после сброса питания "правильные" значения заменяются "старыми неправильными".

Почему-то после повторной записи того же самого файла в те же сектора уже все читается нормально, если не передергивать питание.
И почему-то запись другой информации, например, такого эффекта не дает.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 25 2013, 08:44
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(elusive @ Jun 25 2013, 12:33) *
При чтении напрямую с этих адресов все правильно как и записывали, а при чтении блоком 8к именно эти 12 байт выдают свое старое значение, которое было до последней записи.

Память на хранение двух значений по одному адресу точно не способна, так что ищите ошибку в ПО.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 25 2013, 09:08
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Когда записывается, требуется много времени. На стирание. Можно сначала стереть, тогда записывается быстрее. Должен быть бит в статусе, отвечающий за состояние записи.
Скорее всего, ТС не дожидается окончания записи.
Читать же можно на максимально допустимой скорости, всё подряд.
Go to the top of the page
 
+Quote Post
elusive
сообщение Jun 25 2013, 09:39
Сообщение #6


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

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



Так, я похоже примерно понял в чем дело.
Функция чтения из этого драйвера делает дополнительную буферизацию одного какого-нибудь сектора и если в области нашего считывания попался буферизованный сектор, то он берется из внутреннего буфера, чтобы не тратить лишнее время на чтение из микросхемы.

Блин, это че за фича? Или плохо отслеживается запись секторов, что при обновлении части сектора буфер остается старый, или я не понимаю зачем такая фича нужна.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jun 25 2013, 13:31
Сообщение #7


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(elusive @ Jun 25 2013, 13:39) *
...Функция чтения из этого драйвера делает...


если Вы начинаете познавать мир электроники-программирования-мк, то рекомендую самому писать такую мелочёвку как "драйвера" под тот или иной интерфейс. Поверьте - в инете найти можно всё, но будет ли оно подходить вам или ещё круче - рабочим(и у автора(ов) могут быть затмения и ошибки) - вот в этом и закавыка.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 06:19
Рейтинг@Mail.ru


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