|
scmRTOS+usb-device, минимальный проект не работает |
|
|
|
Nov 2 2012, 13:50
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 30-12-10
Из: Рязань
Пользователь №: 61 958

|
Добрый день. Как я обмолвился в соседней теме, хочу создать устройство комбинированного локатора которое взаимодействует с ПК посредством usb. За основу взял шаблон проекта usb cdc из набора с сайта st. недостающие файлы (usbd_desc.c usbd_desc.h usbd_usr.c ) взял оттуда же, из демонстрации. Функции инициализации не менял. Но при подключении к ПК в dmesg упоминаний нет. Грешу на то, что конфликтует инициализация, т.к. она от ОС. Подскажите в какую сторону начать отладку? В отладчике пока не могу посмотреть, st-util не прошивает файл больше 40кб, openocd не работает с eclipse из-за ошибки в тулчейне. Разъем исправен точно, проверял демонстрационной прошивкой. В проекте есть лишние файлы для host библиотеки, они выключены из сборки в eclipse.
Сообщение отредактировал Legath - Nov 2 2012, 13:54
Прикрепленные файлы
usb.tar.gz ( 463.7 килобайт )
Кол-во скачиваний: 29
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 20)
|
Nov 5 2012, 16:35
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 30-12-10
Из: Рязань
Пользователь №: 61 958

|
Добавил обработчик со следующим текстом Код void OTG_FS_IRQHandler(void) { USBD_OTG_ISR_Handler (&USB_OTG_dev); } Шим генерируется, но usb не инициализируется. в dmesg нет упоминания. и в прерывание по usb не уходит.
|
|
|
|
|
Nov 21 2012, 11:42
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 30-12-10
Из: Рязань
Пользователь №: 61 958

|
Не пойму почему еще (возможно плохо смотрел мануал), если ставлю sleep с аргументом, то все время нахожусь в первом процессе, и соответственно получаю usb timeout, а если ставлю параметр по умолчанию то выполняется один раз и все время в idle. Точнее в отладчике все время нахожусь в цикле Код do { enable_context_switch(); DUMMY_INSTR(); disable_context_switch(); } Поэтому, вероятно, прерывание USB игнорируется?
Сообщение отредактировал Legath - Nov 21 2012, 13:40
|
|
|
|
|
Nov 22 2012, 07:42
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 30-12-10
Из: Рязань
Пользователь №: 61 958

|
Объект TISRW есть. таймауты ненулевые поставил, для отладки в процессах моргаю диодом. Заметил что при подключении USB ось парализуется, при этом USB-девайс определяется, стоит выдернуть шнур и ось работает. Нашел, кажется, частичный ответ на свой вопрос, теперь паралич наступает чуть позже втыкания кабеля.
Сообщение отредактировал Legath - Nov 22 2012, 09:03
|
|
|
|
|
Nov 30 2012, 15:26
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 30-12-10
Из: Рязань
Пользователь №: 61 958

|
Передачу запустил, пока правда не понял как. Осталось разобраться с приемом, DataRx почему то не вызывается. Прикладываю проект с продвижениями.
usb.tar.gz ( 428.75 килобайт )
Кол-во скачиваний: 137
Сообщение отредактировал Legath - Nov 30 2012, 16:13
|
|
|
|
|
Jan 17 2013, 19:09
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-08-12
Пользователь №: 72 984

|
Цитата(AHTOXA @ Nov 19 2012, 15:35)  idle hook с телом __NOP() - это даже не шаманство, это чистое плацебо  Я в том смысле, что это абсолютно ничего не меняет в работе оси. Вспоминайте, что ещё поменяли вместе с этим хуком. бывало такое в кейле что проект не работал... и диагноз такой же.... добавил строку - работает... убрал не работает или наоборот... необходимо было лишь выровнять структуры данных или там код то ли по 2 то ли оп 4
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|