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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> USB massstorage на SAM9260
skyv
сообщение Sep 2 2010, 10:45
Сообщение #1


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Имею плату с SAM9260 и 64М SDRAM. В IAR 4.41 перевел пример usb-device-massstorage (IAR 5.хх).
Win XP нормально определила новое устройство и в Total Com появился значек съемного диска,
но открыть и посмотреть его содержимое оказалось невозможно. При просмотре свойств диска вижу:
емкость 0
занято 0
свободно 0
файловая система RAW.
Может кто подскажет куда рыть в данном случае или где найти информацию о порядке взаимодействия с massstorage.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Sep 2 2010, 11:32
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Может отформатировать?


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 2 2010, 12:07
Сообщение #3


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Как только запускал форматирование диска Total Com подвисал
на некоторое время (секунд 10) и ничего не делал. Впечатление такое,
что ни одна команда работы с диском не выполняется, хотя USB канал работает.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Sep 2 2010, 12:30
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(skyv @ Sep 2 2010, 16:07) *
Как только запускал форматирование диска Total Com подвисал
на некоторое время (секунд 10) и ничего не делал. Впечатление такое,
что ни одна команда работы с диском не выполняется, хотя USB канал работает.


Вы не передали ёмкость устройства по MS.
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 2 2010, 12:48
Сообщение #5


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Допустим меня форматирование пока не интересует.
Самое интересное это с помощью готового примера от IAR
увидеть новый диск, открыть его и выполнить чтение/запись файла.
Пока удалось только увидеть диск.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Sep 2 2010, 13:18
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



А это все едино. Вы, по сути, предоставляете хосту только пару функций: считать сектор и записать сектор. Плюс некоторую дополнительную информацию - размер сектора, наличие носителя, защита от записи и еще что-то. Пока у Вас три этих запроса не будут нормально функционировать ни записать, ни прочитать файл Вы не сможете. Равно как и отформатировать носитель.

Что у Вас используется в качестве носителя? ОЗУ?


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 2 2010, 13:25
Сообщение #7


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



В примере для SAM9260 носителем выступает SDRAM.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Sep 3 2010, 07:07
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(skyv @ Sep 2 2010, 16:48) *
Пока удалось только увидеть диск.


Несогласен. Пока, возможно, вы не передали даже физический размер диска системе.
Хотя скорее всего у вас, банально, нет разделов на диске (0 сектор забит нулями) - тогда берите FDISK или PartitionMagic и создайте разделы (Partition), если эти программы верно определят физическую ёмкость диска созданного в SDRAM.

Форматировать под масдаем можно только диски имеющие 4 физических раздела (640k should be enough for everyone).
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 3 2010, 07:25
Сообщение #9


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Я полагаю, что любые эксперименты все равно приведут к
разбору реализации драйвера MSD для ARM.
Сейчас читаю популярную книгу по MSD в части SCSI
команд и параллельно смотрю код примера.
Go to the top of the page
 
+Quote Post
ALEXANDER082
сообщение Sep 3 2010, 14:13
Сообщение #10





Группа: Новичок
Сообщений: 6
Регистрация: 18-02-09
Пользователь №: 45 058



Цитата(skyv @ Sep 3 2010, 11:25) *
Я полагаю, что любые эксперименты все равно приведут к
разбору реализации драйвера MSD для ARM.
Сейчас читаю популярную книгу по MSD в части SCSI
команд и параллельно смотрю код примера.

НЕ обрабатываются запросы READ10 или если не записывается то WRITE10.
Нужно читать описание USBMassBulk.pdf - (примерно так) на usb.org.
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 6 2010, 10:58
Сообщение #11


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Пример заработал. Диск форматируется. Пишу и читаю файлы.
Нашел свою ошибку. Пример вставлял в свой шаблонный проект.
Его размер больше чем размер примера, а в main есть define:
/// Maximum code size reserved for running in SDRAM and FLASH
#define CODE_SIZE 30*1024
Всем спасибо за участие.
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 13 2010, 09:03
Сообщение #12


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Всем доброго дня. Есть несколько вопросов по дальнейшему
использованию USB на SAM9260.
1. Хотелось бы теперь попробовать USB - host для флэшки.
2. На плате имеется несколько физических носителей памяти ( SDRAM, microSD, DataFlash, Nand).
Как можно выбрать со стороны PC любой из этих носителей для работы? При этом
программный код для PC не создавать, а только для SAM.
3. В примере от IAR каждый раз надо форматировать диск перед началом работы.
Где взять готовый пример кода для форматирования RAM-диска или иного носителя?
Я понимаю, что возможно эту утилиту написать и самому.
4. Пример USB MSD, на мой взгляд, дает возможность получить простой инструмент для
управления функционированием платы. Для этого нужно что-то вроде самодельного командного
процессора? В USB MSD мне очень нравится то, что для PC ничего создавать не надо.

Go to the top of the page
 
+Quote Post
SergSit
сообщение Sep 17 2010, 06:46
Сообщение #13


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

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Не подскажете? Что за популярная книга по MSD в части SCSI?
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 27 2010, 06:22
Сообщение #14


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Цитата(SergSit @ Sep 17 2010, 10:46) *
Не подскажете? Что за популярная книга по MSD в части SCSI?

Я скачал эту книгу - "USB Mass Storage
Designing and Programming
Devices and Embedded Hosts"
Jan Axelson.
У Microchip есть стэк и небольшое описание для USB MSD.
Go to the top of the page
 
+Quote Post
skyv
сообщение Sep 30 2010, 11:15
Сообщение #15


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Написал утилиту для форматирования RAM-диска.
Теперь диск создается автоматически при включении питания,
а при подключении USB кабеля имею к нему доступ.
Все хорошо, но есть один вопрос.
Если я заполняю первые три байта загрузочного сектора нулями, то при подключении
USB кабеля диск приходится форматировать. Когда я прописываю эти байты
значениями, которые создаются TotalCom при форматировании, то все ОК.
Почему так происходит? Получается, что код команды перехода должен присутствовать
всегда?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 15:56
Рейтинг@Mail.ru


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