Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.08.2012, 16:16
|
|
Временная регистрация
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Log-файл на SD
Здравствуйте.
Есть задача - писать лог событий устройства на SD-карту с возможностью чтения это лога на компьютере (вынимая карту из устройства) как обычного текстового файла. Никогда с этим не сталкивался. Драйвер для SD-карты нашёл, а как быть с записью данных на карту с последующей возможностью чтения на компе. Это нужно прикручивать к проекту файловую систему? Или можно обойтись без неё? На карте достаточно наличия всего одного файла, который при чтении можно удалять (или обнулять) и писать в него лог снова.
Посоветуйте, с чего начать?
|
|
|
Сказали "Спасибо" Chudilo
|
|
|
20.08.2012, 16:20
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Log-файл на SD
Драйвер карты - файловая система - работа с файлом. Как иначе-то?
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
20.08.2012, 16:23
|
|
Временная регистрация
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Re: Log-файл на SD
Сообщение от Easyrider83
|
Драйвер карты - файловая система - работа с файлом. Как иначе-то?
|
Ок. А ткнуть носом, вот тут есть пример, посмотри ка (проект для lpc1768 ), если можно конечно
|
|
|
Сказали "Спасибо" Chudilo
|
|
|
20.08.2012, 16:31
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Log-файл на SD
Сообщение от Chudilo
|
Ок. А ткнуть носом, вот тут есть пример, посмотри ка (проект для lpc1768 ), если можно конечно
|
Так проект все таки на LPC1768? Ах, ну да, как же я сам не догадался
http://www.siwawi.arubi.uni-kl.de/av...rds/index.html
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
|
|
|
20.08.2012, 16:39
|
|
Временная регистрация
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Re: Log-файл на SD
Спасибо большое, буду разбираться
|
|
|
Сказали "Спасибо" Chudilo
|
|
|
20.08.2012, 19:13
|
|
Частый гость
Регистрация: 12.10.2010
Сообщений: 27
Сказал спасибо: 0
Сказали Спасибо 19 раз(а) в 14 сообщении(ях)
|
Re: Log-файл на SD
Сообщение от Easyrider83
|
Драйвер карты - файловая система - работа с файлом. Как иначе-то?
|
Кстати, есть неплохие возможности съэкономить на имплементации файловой системы в некоторых случаях.
Можно сделать так:
- Где-нибудь на PC или еще где форматируется SD карта и на ней в root directory создается один Бааальшой файл (макс. 4Gb-1 размером). Имя файла можно сделать в формате DOS 8.3 большими(!!) буквами, типа FILE.LOG (для того, чтобы у файла была всего 1 directory entry, для простоты).
В этом случае (99.9999%) этот файл будет состоять из одной сплошной цепочки кластеров, то есть будет просто линейным куском дискового пространства.
! файл нужно создавать после форматирования, иначе можно получить непоследовательные номера кластеров в цепочке.
- На хосте нужно лишь совсем чуть-чуть: распарзить boot sector (FAT12/16 & FAT32), найти начало root direcotry, в ней найти directory entry нашего файла, найти там номер кластера, с которого начинается файл, пересчитать его в линейный адрес на карточке.. а там уже писать, что хочется, начиная с этого адреса.
Получается этакая эмуляция своей файловой сстемы в файле другой файловой системы.
Преимущества в том, что этот файл может быть очень легко прочитан на любом компе, а уж интерпретация данных внутри его - дело 10-е.
Есть некоторая проблема с форматированием SD карт на PC - они в 99% случаях форматируюся не так, как SD-стандарт говорит. Но на функциональность это не влияет, только на скорость работы и износ (отрицательно).
Ну а как организовать правильно запись информации (лог) и как обрабатывать правильно внезапное пропадание питания и выдергивание карточки из слота - это домашняя работа автору
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Красный Свин за это сообщение:
|
|
|
20.08.2012, 23:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Log-файл на SD
Сообщение от Chudilo
|
Здравствуйте.
Есть задача - писать лог событий устройства на SD-карту с возможностью чтения это лога на компьютере (вынимая карту из устройства) как обычного текстового файла. Никогда с этим не сталкивался. Драйвер для SD-карты нашёл, а как быть с записью данных на карту с последующей возможностью чтения на компе. Это нужно прикручивать к проекту файловую систему? Или можно обойтись без неё? На карте достаточно наличия всего одного файла, который при чтении можно удалять (или обнулять) и писать в него лог снова.
Посоветуйте, с чего начать?
|
Очень многое зависит, насколько хорошо структурирован формат данных, которые вы собираетесь записывать. Термин ЛОГ очень общий. Если вы работаете с одни и тем же типом сохраняемых данных, эти данные будут записываться в одинаковом формате, нет необходимости в громоздкой файловой системе. Как всегда мы расплачиваемся довольно высокой ценой за попытки внедрить универсальность там, где по сути она не так и нужна. Простой пример. Вы собираетесть логировать напряжение сети, ток нагрузки, частоту сети, добавляя при этом метки времени, такие как год. месяц.число, час, минуту, секунду. Выбрав оптимальные для каждого поля записи размеры, вы придете к необходимости сохранять четкую структуру. Добавив метки "головы" и "хвоста" можно сохранять данные на карте, как в памяти. По сути, она и есть память. Только надо помнить о физических особенностях карты, ее секторной организации. По сути, это будет уменьшенная файловая система, без обязательных ее элементов, таких как FAT, разметка и контрольные суммы. Ну, а написать программу для чтения подобной структуры на комп - это уже детали. Да и вариантов много. Как средствами самих виндов, так и через отдельный девайс на МК. Ведь по сути, кардридер - тот же МК.
Всего лишь мысля вслух. Базируется на изготовленном и эксплуатируемом мной цифровом магнитофончике спортсмена-коротковолновика без файловой системы. Правда, чтения на компе я там не реализовывал, т.к. работал только со звуком (запись и воспроизведение) и сохранять в цифре на компе не было необходимости.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
21.08.2012, 00:13
|
|
Вид на жительство
Регистрация: 17.09.2009
Адрес: Ярославль
Сообщений: 384
Сказал спасибо: 43
Сказали Спасибо 152 раз(а) в 101 сообщении(ях)
|
Re: Log-файл на SD
Mожет emfile от SEGGER заинтересует. Вроде как прикручивается к LPC1768
http://www.segger.com/ebdownloads.html
|
|
|
Эти 2 пользователя(ей) сказали Спасибо yhnm за это сообщение:
|
|
|
21.08.2012, 01:25
|
|
Частый гость
Регистрация: 12.10.2010
Сообщений: 27
Сказал спасибо: 0
Сказали Спасибо 19 раз(а) в 14 сообщении(ях)
|
Re: Log-файл на SD
Сообщение от ut1wpr
|
Очень многое зависит, насколько хорошо структурирован формат данных, которые вы собираетесь записывать. Термин ЛОГ очень общий. Если вы работаете с одни и тем же типом сохраняемых данных, эти данные будут записываться в одинаковом формате, нет необходимости в громоздкой файловой системе.
[...]
|
В той реализации, что я описал, файловая система (FATxx) достается нахаляву от форматирования карточки на писюке. Сама же embedded system пишет напрямую внутрь большого непрерываного файла, заранее созданного после форматирования. То есть при необходимости считать данные вовне карточка просто всовывается в кардридер, файл с нее читается обычными средствами любой ОС и парсится как надо..
Хотя, если общение с внешним миром не нужно, то и файловая система как таковая тоже не нужна.. Надо только разработать структуру лога и писать по абсолютным адресам..
|
|
|
Сказали "Спасибо" Красный Свин
|
|
|
21.08.2012, 09:40
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Log-файл на SD
Так проще вообще без файловой системы обойтись. А данные передавать по USB. Флешку использовать как обычный внешний EEPROM. Писать только блоками по 512 байт.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:35.
|
|