Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 + M25P64 + FatFs
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Ivan Kuznetzov
Необходимо организовать файловую систему на флешке M25P64.

Чип: STM32F103.
Размер сектора 512Б.
Решил использовать FatFs, т.к. пользуюсь ей уже несколько лет в паре с SD картой.

1) в diskio.c в функции DiskRead прописал sFLASH_ReadBuffer(buff, sector * 512, count * 512); (из стандартной либы)
2) Создал образ дискеты на 1.44 МБ FAT12 с помощью UltraISO, закинул на него файлы
3) Прошил M25P64 этим образом
4) Список файлов на M25P64 STM-ка выдает, параметры фс-ки тоже пишет, по папкам лазать тоже можно.

Начинаю читать файл - читаются первые 1024 байта и дальше все, ошибка FR_DISK_ERR.

Может кто-нибудь поделиться процедурами чтения сектора из M25Pxx флешек?
ssergy
У Кеила в РЛ есть поддержка старой флэши от Intel в папке C:\Keil\ARM\RL\FlashFS\Flash\25F640S33. Для Numonyx M25P64 - убрать пару команд при инициализации.
AlexandrY
Цитата(ssergy @ Nov 26 2010, 13:33) *
У Кеила в РЛ есть поддержка старой флэши от Intel в папке C:\Keil\ARM\RL\FlashFS\Flash\25F640S33. Для Numonyx M25P64 - убрать пару команд при инициализации.


В Keil-e однако не ламеры сидят. Они никогда не пытались сделать FAT для сериальных Flash.
На сериальных Flash у них совсем другой тип файловой системы используется.
ssergy
Цитата(AlexandrY @ Nov 26 2010, 14:42) *
В Keil-e однако не ламеры сидят. Они никогда не пытались сделать FAT для сериальных Flash.
На сериальных Flash у них совсем другой тип файловой системы используется.


А FAT на M25F64 с размером сектора в 64Кб и не получится в принципе. А вопрос был насчет чтения сектора.
AlexandrY
Цитата(ssergy @ Nov 26 2010, 13:53) *
А FAT на M25F64 с размером сектора в 64Кб и не получится в принципе. А вопрос был насчет чтения сектора.


FAT получится при любом размере физического сектора. Но для этого делают переходной драйвер на физический носитель.
ssergy
Цитата(AlexandrY @ Nov 26 2010, 14:56) *
FAT получится при любом размере физического сектора. Но для этого делают переходной драйвер на физический носитель.


FAT для M25P64 со временем стирания сектора 3 секунды - не лучший вариант, да еще и с переходным драйвером. Это на "любителя".
Ivan Kuznetzov
Мне непонятна сама причина срыва чтения файла: причем процедура вываливается в ошибку, после чтения 1024 байт. Причем значение Bytes/Cluster у меня тоже равно 1024. Если отформатировать образ под 4096 Bytes/Cluster, то чтение будет срываться после 4096 байта. Непонимаю в чем косяк: на сайте Чена написано что для чтения достаточно добавить процедуру чтения одного сектора в драйвер и все, с самой фаткой ничего делать не надо. Запись мне не нужна - просто чтение файлов.

Я так и сделал:
Код
sFLASH_ReadBuffer(buff, sector*512, 512); // помножаем номер сектора на кол-во байт в секторе - получаем адрес в байтах


Причем листинг файлов выдается нормально, все файлы и папки видимы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.