|
|
  |
эмулятор SD карты, есть ли такое уже на AVR? |
|
|
|
Feb 20 2009, 16:31
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(ветерок @ Feb 20 2009, 18:15)  Это слишком сложно в реализации! К тому же проще имитировать не SD а MMC (покрайней мере не надо поддерживать сразу несолько линий данных) К тому же что бы перехватывать запись в файлы вам надо будет еще и файловую систему имитировать. Есть еще такая вещь как SDIO вот это специально для управления, но без аппаратной реализации, будет такой гемор... Самое логичное ваше устройство подключить через USB или UART для авр кстати USB софтом реализован. (лоу спид)
|
|
|
|
|
Feb 20 2009, 17:08
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(ветерок @ Feb 20 2009, 22:00)  да это скучно и это вчерашний день... Ну если важен процесс... Цитата для устройства нужны драйвера.... USB-HID, или прикинуться виртуальным Serial. Цитата с FAT конечно это напряг будет слегонца. Ну да, слегонца. FAT придется реализовывать наизнанку.
--------------------
Пасу котов...
|
|
|
|
|
Feb 20 2009, 17:24
|

Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902

|
ну хорошо прикинусь я HID мне прийдётся ещё воротить на делфи си басике и или в асме прогу чтоб всем этим управлять. я думаю что все рарт ридеры знать SPI просто обязаны. а вот SD и MMC не обязаны потому как сложнее в реализации. некоторые ридеры поэтому и медленные.(я так думаю) "FAT" будет с изюминкой,это верно  важен результат конечно больше. Мне вот видится что это решение гораздо интереснее тем что управлять элементарно устройством,в голой ОС без каких либо сторонних программ. Ну вот с простого самого тот же светодиод... чтоб его зажечь надо как минимум загрузить делфи и как минимум понять что к чему "прикручено" в программе она кстати (Delphi)не бесплатная? если кого-то это интересует  а в случае с SD картой нам нужен любой бесплатный язык,любое бесплатное средство автоматизации типа nncron, hotkey и так делее... которые позволяют работать с файлами на чтение и запись... и вуаля! ниодно решение другое не может дать такого быстрого старта.
--------------------
|
|
|
|
|
Feb 20 2009, 17:33
|

Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902

|
Цитата(KRS @ Feb 20 2009, 21:15)  только надо учесть что данные пишутся по секторам (или даже сразу по кластерам) к тому же еще кеш есть, т.е. операционка вообще может потом решиь записать файл! отключиь кеш конечно можно но для этого нужно файл специальным образом открывать... а как может это навредить ? ведь мы записывая в первый байт файла 1.тхт не трогаем место в секторе для второго байта . может я что-то упускаю ? Цитата(Petka @ Feb 20 2009, 21:31)  Чего это вы зациклились на Дельфи? Есть более стандартные и более дешёвые языки Си =) это вы зациклились,мне вообще языки не интересны тут. Разве это так сложно понять? в общем я понял что такой реализации нет раз дело не пошло дальше дискуссии
Сообщение отредактировал ветерок - Feb 20 2009, 17:38
--------------------
|
|
|
|
|
Feb 20 2009, 18:10
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(KRS @ Feb 20 2009, 20:36)  тем что сразу весь сектор записывается. и тем что количество записей из программы не будет равно физическому количеству записей на диск т.е. вы записали в 1 байт потом во второй потом снова в первый, а на диск пойдет одна запись, а информация о первом значении первого байта вообще пропадет Я реализовал MassStorage (на AVR). И могу сказать, что кэширование от компа в сторону девайса отключается легко, и по умолчанию, кстати, отключено. А вот наоборот, т.е. от девайса, всё кэшируется и как отключить я не знаю. У девайса нет никаких средств сказать ОС, что данный файл изменён. Я пишу логи в файлы, поэтому данная проблема меня касается и напрягает. Но я знаю всего лишь единственное решение - посекторное чтение. Да, тогда ничего не кэшируется, но файл, а тем более текстовый, таким образом считать без установки к.л. программ считать не удастся. Ксати м.б. кто мне подскажет как отключить это самое кэширование под win? Кстати реализация файловой системы не в пример легче, чем реализация собственно MassStorage. И ещё я не знаю будет-ли работать MassStorage на LowSpeed. Бывает-ли LowSpeed Bulk EP? Что-то мне помнится, что на LowSpeed поддерживается ТОЛЬКО контрольный канал и InterruptIn/Out передачи. Смотреть описание лень т.к. я уверен, что топикстартер откажется от своей затеи.
|
|
|
|
|
Feb 20 2009, 18:37
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(galjoen @ Feb 20 2009, 21:10)  т.е. от девайса, всё кэшируется и как отключить я не знаю. А открывать с FILE_FLAG_NO_BUFFERING пробовали? там правда еще тогда для чтения буфера надо VirtualAlloc ом создавать... но все это в MSDN описано. Цитата(galjoen @ Feb 20 2009, 21:10)  У девайса нет никаких средств сказать ОС, что данный файл изменён. Хотя да, операционка не может подумать что кто то кроме нее мог изменить файл.
|
|
|
|
|
Feb 20 2009, 18:50
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(KRS @ Feb 20 2009, 21:37)  А открывать с FILE_FLAG_NO_BUFFERING пробовали? там правда еще тогда для чтения буфера надо VirtualAlloc ом создавать... но все это в MSDN описано. Не помню т.к. давно это было. Но при случае прочту и попробую. Хотя для меня самое лучшее решение - это если лог как текстовый файл смотреть можно было-бы. Т.е. ничего не запускать вообще, а взять какой-нибудь блокнот и просто посмотреть. Кстати иногда и обновляется. По времени что-ли? Но реально прочесть самый последний лог - только передёрнуть девайс. Цитата(KRS @ Feb 20 2009, 21:37)  Хотя да, операционка не может подумать что кто то кроме нее мог изменить файл. Да пусть бы думала что угодно. Пусть была-бы возможность кэширование на чтение отключить.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|