DSP - USB Activity detector process
7000 UAHЗдравствуйте. Задача в общих чертах, подробности обсудим в личке. Исходники будут также предоставлены.
У нас подключено несколько DSP процессоров в одном silicon.
Мы работаем над одним из этих DSP и нам нужно обмениваться сообщениями с другим DSP с именем apps1.
Процесс / поток в этой системе называется capability.
Нам нужно изменить функцию, определяющую наличие звука на USB и сообщить об этом другим apps.
Для этого - реализация прошивки на DSP1 - apps1
apps1 предоставит нам тайм-ауты, которые нам нужно использовать, которые также появляются в сообщении inti, но также могут изменить время выполнения.
У нас уже есть встроенный детектор звука, но его нужно изменить и протестировать.
Итак, мы реализуем/изменим capability с именем USB Activity-Detector.
Описание задач:
//////////////////////////////////////////////////////
1)
должна быть возможность получить следующее сообщение в функции детектора активности для корректировки времени выполнения:
#define MSG_AUDIO_DETECTOR
Parameter 1 Audio RX обнаруживает тайм-аут
Parameter 2 Аудио RX молчание определяет время ожидания
Parameter 3 Аудио TX обнаруживает тайм-аут
Parameter 4 Аудио TX молчание определяет время ожидания
Если тайм-аут содержит значение 0, это означает, что он отключен.
Время ожидания указывается в мсек.
Предполагается, что это сообщение будет получено по крайней мере один раз apps1, но также детектор активности должен иметь возможность принимать этот сигнал во время выполнения.
По умолчанию при запуске, используйте собственные настройки тайм-аута по умолчанию, если apps1 не имеет настроек.
2)
Должна быть предусмотрена возможность отправки следующих сообщений apps1 или другими, которым необходимо знать о звуковой / музыкальной активности.
#define MSG_AUDIO_STREAMING_RX 0x24
/ *
Использование: Сообщает VM / apps1, что потоковая передача началась на порту USB IN
Параметр 1-4: не используется
* /
#define MSG_AUDIO_SILENCE_RX 0x25
/ *
Использование: Сообщает VM / apps1, что потоковая передача остановлена на порту USB IN
Параметр 1-4: не используется
* /
#define MSG_AUDIO_STREAMING_TX 0x26
/ *
Использование: Сообщает VM / apps1, что потоковая передача началась на порту USB OUT
Параметр 1-4: не используется
* /
#define MSG_AUDIO_SILENCE_TX 0x27
/ *
Использование: Сообщает VM / apps1, что потоковая передача остановлена на порту USB OUT
Параметр 1-4: не используется
* /
3)
Подключить плату и отладить среду - сделаем на удаленном ПК d Qualcomm QMDE
4)
Сделать юнит-тест(ы) (доступ через веб-страницу)
//////////////////////////////////////////////////////
1) эти определения я нашел из старого проекта, реализующего тот же детектор активности(папку предоставлю), это означает, что нужна функцию, которая уже реализована в наших продуктах, однако система сообщений изменилась в этом новом проекте SAGA, поэтому, старый проект можно использовать только как ссылку и вдохновение, но брать оттуда примеры, который позволят сократить объем работ и скорость их выполнения.
Нам нужно получить сообщение MSG_AUDIO_DETECTOR с некоторыми параметрами для тайм-аутов
Нам нужно использовать эти таймауты в наших capability
2)нам нужно иметь возможность отправлять перечисленные сообщения другим apps/ capabilities... В этом случае apps1 (другой DSP в той же связке имеет другое программное обеспечение, и оно еще не сделано, так что придется провести модульный тест). Реализация этого также есть в старом проекте, так что не нужно ничего изобретать.
Т.е.:
в 1) Вам нужно будет заглянуть в файл usb_audio.c и найти эти тайм-ауты, которые необходимо установить при получении
в 2) вам нужно найти места, куда вы должны отправлять сообщения в apps1.
Формально требуется: при активности одной гарнитуры, уведомить об этом другую.
Полную поддержку и онлайн консультации с производителем гарантирую.
-
Можно поподробней об отладочной плате м какой именно dsp (и сколько) там установлено? Хорошо бы принципиальную схему или точное название чтобы я мог понять некоторые нюансы (интерфейсы, обвязка и т.д.) и почитать документацию на конкретный процессор. Я работал микроконтроллера ми avr ,stm32 но ещё не пробовал с dsp (интересно)
-