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

 
 
> Разбить задачи
uriy
сообщение Nov 3 2015, 05:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Имеется хост устройство стороннего производителя. И мой девайс.
Между собой они соединяются через UART.
Хост устройство имеет дисплей, клавиатуру, динамик, микрофон.

Через UART я принимаю сообщения о нажатии клавиш, в ответ могу вывести что-то на дисплей и выполнить другие действия с хостом.
Также через тот-же UART ходит звук по RTP.
Протокол на UART с установкой соединения. У каждого пакета порядковый номер.
На каждый пакет надо давать подтверждение с задержкой не более 300мс, иначе соединение будет разорвано.
Хост кроме подтверждения еще и дает пакет о статусе выполнения команды. Статус выполенния команды может быть выдан через несколько сотен миллисекунд.

Сейчас реализовано взаимодействие но без приема/передачи звука.
UART в моем девайса работает по DMA и на прием и на передачу.
Контроллер STM32 после обнаружения IDLE на UART Rx кидает сообщение в очередь в задачу обработчик.

Работа с хостом реализована в одной задаче.
Она кидает пакеты на хост, ждет ответ проверяет его и выдает подтверждение.

В такой вариант очень плохо ложится добавление RTP. Хочется его вынести отдельно и назначить этой задаче более высокий приоритет. По заголовкам пакетов можно однозначно определить это RTP или другие пакеты.

Может быть кто-то делал что-то подобное.
Как лучше сделать?

1. Оставить одну задачу для работы с хостом
2. Две задачи. Одна обрабатывает UART только на прием, вторая только на передачу.
Плюс тут в том что задача приема будет формировать подтверждения.
3. Сделать отдельную задачу для RTP и отдельную для работы с кнопками дисплеем.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:13
Рейтинг@Mail.ru


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