Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT45DB041 + звуковые фрагменты + разметка
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Ivan Kuznetzov
Здравствуйте!
Предыстория: есть мега, на ее SPI висят Dataflash и SD карта с FatFs от Чана. Написана процедурка, которая заливает мп3 файлик с карточки памяти в датафлешину целиком. Также есть еще одна процедурка, которая воспроизводит заданный диапазон страниц из датафлеши в VS1053. Хочу организовать какую нибудь разметку звукового фрагмента - массив с адресами.
Предполагаю что есть 2 пути:
1) сделать Фат16 на датафлеши (но у меня нету процедур disk_read и disk_write для Чановской библы) и заливать на нее отдельные mp3 файлы
2) При программировании датафлеши писать в ее первую страницу что-то вроде массива с именами звуковых фрагментов и их положением в DF

Как лучше сделать? поделитесь опытом, пожалуйста, кто уже такое делал...
aaarrr
Цитата(Ivan Kuznetzov @ Aug 24 2009, 21:49) *
Как лучше сделать? поделитесь опытом, пожалуйста, кто уже такое делал...

Первый вариант представляется, мягко говоря, избыточным. Гораздо проще будет сделать небольшую программку для ПК, которая соберет звуковые фрагменты в один кусок и снабдит его нужного формата хидером.
Student Pupkin
Заранее извиняюсь. если что-нибудь не то брякну laughing.gif (я в этой теме еще пока шибко зелен)....
Если во флеше записаны подряд mp3-файлы - у всех (или почти всех) мультимедийных файлов формат RIFF. Значит можно прочитать заголовок первого файла - 'RIFF' и размер. Потом отсчитать размер и перейти на заголовок следующего файла (ну или если они не друг за другом то отсчитать размер а потом читать пока заголовок 'RIFF' не попадется) и т.д. Или же таким макаром создавать перед началом работы карту (массив адресов файлов) в ОЗУ меги ...
Или я чего-то не то говорю? unsure.gif
Dog Pawlowa
Цитата(Ivan Kuznetzov @ Aug 24 2009, 20:49) *
Предполагаю что есть 2 пути:
1) сделать Фат16 на датафлеши (но у меня нету процедур disk_read и disk_write для Чановской библы) и заливать на нее отдельные mp3 файлы
2) При программировании датафлеши писать в ее первую страницу что-то вроде массива с именами звуковых фрагментов и их положением в DF

Вместо использования файловой системы клепать что-то свое?
А оно нужно? Разве что если ресурсов AVR недостаточно. У нас в подобных случаях ( на ARM, правда) используется первый путь: файловая система, текстовые файлы для индексации рабочих файлов, ну и вспомогательная программка на PC, которая эти файлы создает.
aaarrr
Цитата(Dog Pawlowa @ Aug 29 2009, 06:03) *
Вместо использования файловой системы клепать что-то свое? А оно нужно?

Нужно. Во-первых, FAT на AT45 - уже извращение, т.к. теряется и пространство и ресурс флеш. Во-вторых, так придется тратить время на чтение FAT и память на буферизацию, ибо работать придется "секторами".

А "вспомогательной программке" в общем-то все равно, что сделать текстовый файл для индексации, что целый образ флеш.
ReAl
Цитата(aaarrr @ Aug 29 2009, 13:52) *
Нужно. Во-первых, FAT на AT45 - уже извращение, т.к. теряется и пространство и ресурс флеш. Во-вторых, так придется тратить время на чтение FAT и память на буферизацию, ибо работать придется "секторами".
Т.е. "во вторых" - тоже о том, что FAT извращение, если AT45 не важно что заливается готовым образом и перезаписывается только целиком, т.е. данные в файлах константные.

Цитата(aaarrr @ Aug 29 2009, 13:52) *
А "вспомогательной программке" в общем-то все равно, что сделать текстовый файл для индексации, что целый образ флеш.
Всё украдено до нас - romfs
Очень просто и достаточно "полноценно".
ukpyr
1. если есть место в eeprom, можно писать массив структур с описанием фрагментов туда, а фрагменты одной кучей в АТ45.
2. можно перед каждым фрагментом писать структуру с его размером и другими параметрами + CRC структуры. Для чтения нужного фрагмента читается первая структура, пропускается первый фрагмент, читается структура второго фрагмента, пропускается и т.д.

Цитата
Всё украдено до нас - romfs Очень просто и достаточно "полноценно".
и в каку мегу оно влезет ?
aaarrr
Цитата(ukpyr @ Aug 29 2009, 21:10) *
2. можно перед каждым фрагментом писать структуру с его размером и другими параметрами + CRC структуры. Для чтения нужного фрагмента читается первая структура, пропускается первый фрагмент, читается структура второго фрагмента, пропускается и т.д.

Логичнее только положить одну структуру в начале памяти, и не заморачиваться чтениями-пропусками совсем.
ReAl
Цитата(ukpyr @ Aug 29 2009, 20:10) *
2. можно перед каждым фрагментом писать структуру с его размером и другими параметрами + CRC структуры. Для чтения нужного фрагмента читается первая структура, пропускается первый фрагмент, читается структура второго фрагмента, пропускается и т.д.
Ну приблизительно ROMFS с отброшенными подкаталогами и линками и выходит.

Цитата(ukpyr @ Aug 29 2009, 20:10) *
и в каку мегу оно влезет ?
На мой взгляд - в любую, в которую лезет FAT, при этом оставит там намного больше свободного места.
Файлы все непрерывные, описание формата занимает несколько килобайт текста (сотни полторы строк).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.