AlexandrY (21.08.2006 14:57, просмотров: 1) ответил Evgeny_CD на Для портабильности лучше, вероятно, сделать так
Ну это мультиплексирование канала получается, это сложно. Я мультиплексирование не делаю.
Задачи у меня захватывают канал единолично.
Другое дело, что каналов в физическом интерфейсе может быть несколько.
Если Ethernet, то каналы (они же идентифицируют задачи) определяются по номеру порта.
В USB идентификация идет по номеру интерфейса для PC и по номеру конечной точки для проги в uC.
Какая там организация ссылок на буфера я не задумываюсь, этим озабочен стандартный сервис очередей в RTOS.
А сами буфера для каждой посылки выделяются менеджером памяти.
Освобождает буфера уже драйвер после отправки пакета.
Преимущество - не надо лочить общий буфер, меньше простой драйверов.
На PC нет декодера.
Если Ethernet, то с каждой задачей работаю через индивидуальную программу терминал настроенную на определенный порт.
Если USB, то там по каждому дескриптору интерфейса в дивайсе инсталируется индивидуальный COM порт в PC, а дальше опять работа через индивидуальные терминалы.