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

 
 
> Mass storage in flash M25P16, Как сделать FAT на флешке с большим размером страницы?
Dmitrich
сообщение Jan 15 2013, 19:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663



Есть процессор STM32F103RC и память на 2 Мегабайта M25P16.
Хочется получить доступ к памяти через USB, как к диску.

Взял на сайте ST пример реализации mass storage, обрезал обращение к SD карточке, и для начала запустил в качестве памяти буфер на 32К в ОЗУ процессора.
Это работает, диск при подключении определяется, форматируется, файлы пишутся, читаются и стираются.

Нужно делать следующий шаг - перенести буфер во флеш. Для начала - хотя бы во внутреннюю флеш процессора.

И вот тут я "затормозил".

Виндовс при обращении к моему "диску" многократно перезаписывает таблицу размещения файлов.
Что с этим делать - с ходу не придумывается. Да и придумывать тут не надо - всё давно до меня придумано, но найти не могу.

Помогите, пожалуйста, кто "в теме".
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
polyname
сообщение Jan 16 2013, 06:19
Сообщение #2


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

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



Цитата
Определяете минимальную порцию данных (страницу) которую может писать/стирать данная флешка
как раз 64К стирает, см.даташит.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 16 2013, 07:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Тогда лучше использовать что-то более удобное: W25X16 (4K), AT45DB161D (512).
Иначе - придётся ставить внешнюю ОЗУ для буфера.
Хотя (так как микросхема флеш всегда будет использоваться вместе с данным ПО доступа к диску) можно придумать и что-то сложно извращённое. Например: иметь таблицу трансляции логических номеров секторов в физические, иметь один дополнительный свободный сектор, при записи некоторой страницы во флеш переписывать весь сектор, который её содержал в свободный сектор, корректировать таблицу трансляции и очищать старый сектор, объявляя его свободным. Таблицу трансляции надо сохранять в эту же флеш при сбое питания.
Или более сложный алгоритм типа как в SSD-дисках. disco.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dmitrich   Mass storage in flash M25P16   Jan 15 2013, 19:20
- - polyname   кроме как кешировать весь сектор 64К в ОЗУ на моме...   Jan 15 2013, 21:00
|- - jcxz   Зачем "весь" и зачем "64К"? Оп...   Jan 16 2013, 02:01
|- - _3m   Цитата(jcxz @ Jan 16 2013, 06:01) Зачем ...   Jan 16 2013, 03:59
||- - ViKo   Цитата(_3m @ Jan 16 2013, 06:59) Минималь...   Jan 16 2013, 04:27
|- - Dmitrich   Цитата(jcxz @ Jan 16 2013, 06:01) Зачем ...   Jan 16 2013, 07:32
|- - jcxz   Цитата(Dmitrich @ Jan 16 2013, 13:32) Мин...   Jan 16 2013, 09:13
|- - Dmitrich   Цитата(jcxz @ Jan 16 2013, 13:13) Если вы...   Jan 16 2013, 12:03
|- - jcxz   Цитата(Dmitrich @ Jan 16 2013, 18:03) Из ...   Jan 16 2013, 13:16
|- - Dmitrich   Цитата(jcxz @ Jan 16 2013, 11:01) Тогда л...   Jan 16 2013, 07:22
|- - ViKo   Цитата(Dmitrich @ Jan 16 2013, 10:22) M25...   Jan 16 2013, 07:26
- - Dmitrich   Спасибо отвечавшим, всё внимательно прочитал, и да...   Jan 16 2013, 07:05
|- - ViKo   Цитата(Dmitrich @ Jan 16 2013, 10:05) К с...   Jan 16 2013, 07:12
- - AlexandrY   Цитата(Dmitrich @ Jan 15 2013, 21:20) Вин...   Jan 16 2013, 11:30
- - esaulenka   Предложение - забить на обновление FAT'а (сдел...   Jan 16 2013, 12:10
- - Dmitrich   Цитата(esaulenka @ Jan 16 2013, 16:10) Пр...   Jan 16 2013, 16:31
- - Dmitrich   Докладываю: - проблема решена. Выглядит это так: ...   Jan 17 2013, 17:11


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

 


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


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