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

 
 
 
Reply to this topicStart new topic
> проблема с VCP CDC от "куба"
dimone
сообщение Oct 18 2017, 06:50
Сообщение #1


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

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



Программа зачата "Кубом", работает с интрфейсами USАRT и USB -устройством (виртуальным СОМ-портом)
под FreeRtos ,соответственно работа с интерфейсами вынесена в задачи, основное тело -Superloop, вертится в фоне..
Обмен по системе запрос-ответ, кол-во байт не больше десятка,частота запросов 10Гц
и тут интересное, если обмен по USАRT не вызывает никаких нареканий, и спокойно пропускает и 100Гц и пол-кило..
то тот-же обмен , только по VCP -глючит..
Каждый новый запрос вызывает подвисание системы, и на 10Гц при мизерных количиствах принятых-переданых данных
фоновая программа практически еле шевелется!.. соответственно, при прикращении подачи запросов программа отмерзает..
Естесственно возникает два вопроса:
первый, как заставить USB stаste maschne шевелиться быстрее? (предполагаю, что она какие-то mallос-и делает..)
и второй, как противостоять "флуду" , т.е. блокировать прием запросов по vcp таймаутом? СDC LL_suspend\resumuе,start\stop отваливают СОМ-порт
- попытки отобрать приоритет у USB приводят нарушению работы..

Сообщение отредактировал dimone - Oct 18 2017, 06:54
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 20 2017, 07:00
Сообщение #2


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(dimone @ Oct 18 2017, 09:50) *
основное тело -Superloop, вертится в фоне..

Бороться следует не с симптомами (как принято в современной "медицине"), а искать конкретно виновника "болезни".
В противном случае это только усугубит ситуацию и впоследствии "лечение" будет уже по-просту невозможным.

В данном случае нужно сначала разобраться с неким "Superloop", которого не должно быть в принципе в системе с RTOS.
Иначе, зачем тут вообще RTOS??
Потом нужно отключать разные части проекта, создавая соотв. тестовые "заглушки", чтобы локализовать виновника и лечить его, а не весь проект, как вы щас пытаетесь wink.gif

Цитата
- попытки отобрать приоритет у USB приводят нарушению работы..

Скорее всего загрузка CPU у вас достигает 100%, как в винде ))
В этом случае ваша система реально времени перестает быть таковой!
Кстати, есть у вас логи по степени загрузки всего ядра? Или хотя бы максимально зафиксированное значение?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
dimone
сообщение Oct 31 2017, 07:23
Сообщение #3


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

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



Всё оказалось прозаично.
Как в одном из законов программизма сказано, величина мистичиских действий программы пропорциональна сделанной программистом глупости..
В коде USB задачи была вставлена систмная задержка, которая заставляла всё ползать и лагать..
А некий Superloop, это основное тело сорокакилобайлной программы, до этого существовавшей на 649Меге..
и перенесенная\портрованная в песочницу на STМ под Rtos..
с передефайном даже имен портов, настолко срaочно было нужно..
С прикрученными после свистелками

..главное, что всё заработалo.
-Большое спасибо за посильную помощь.

Сообщение отредактировал dimone - Oct 31 2017, 07:57
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 31 2017, 08:17
Сообщение #4


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(dimone @ Oct 31 2017, 10:23) *
систмная задержка

А покажите код этой задержки

Цитата
..главное, что всё заработалo.

Я раньше тоже так относился к проектам, но жисть напрочь отучила так делать ...
Видать, это нужно прочувствовать на собственной шкуре. Имхо, лучше рано, чем поздно wink.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:45
Рейтинг@Mail.ru


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