Jump to content

    

Ищется специалист по USB СDС.

Recommended Posts

Gorby

Ищется специалист по USB СDС.

Есть процессор STM32L476QGI6, в нем реализован пример от SТМ  USB виртуальный компорт.

Всё работает хорошо. USB Full Speed. IAR ARM 8.22.

Требуется так изменить\доработать код, чтобы появилось ДВА таких виртуальных компорта.

Видится применение композитного устройства. Тут мои знания о USB заканчиваются.

Share this post


Link to post
Share on other sites

AlexandrY

Если что, то рабочий дескриптор композитного дивайса с двумя CDC есть тут https://github.com/Indemsys/Universal3PHalfBridgeController/blob/master/K66_Firmware/APP_SRC/USB_2VCOM/usb_device_descriptor.c

Share this post


Link to post
Share on other sites

Gorby
25 minutes ago, AlexandrY said:

Если что, то рабочий дескриптор композитного дивайса с двумя CDC есть тут https://github.com/Indemsys/Universal3PHalfBridgeController/blob/master/K66_Firmware/APP_SRC/USB_2VCOM/usb_device_descriptor.c

Спасибо, полезно.

Share this post


Link to post
Share on other sites

Gorby
On 1/18/2019 at 8:19 AM, netts said:

Здравствуйте, реализовывал такой проект под STM32F072C8T6, могу повторить.

Спасибо за ответ. Исполнитель найден, работает. Но поскольку тема обширна, дайте свои координаты. 

Личная почта у Вас еще не работает. Можете оставить е—мейл здесь в слегка искаженном виде (защита от роботов спамеров). 

Примерно так:   fedor.pupkinсабакагмыл.kom

Share this post


Link to post
Share on other sites

jcxz
В 14.01.2019 в 18:57, Gorby сказал:

Всё работает хорошо. USB Full Speed. IAR ARM 8.22.

Что-ж вы все так упорно используете этот v8.22??? :unknw:  Он же кривой. Никто форум что-ль не читает? :unknw:

Share this post


Link to post
Share on other sites

Gorby
4 hours ago, jcxz said:

Что-ж вы все так упорно используете этот v8.22??? :unknw:  Он же кривой. Никто форум что-ль не читает? :unknw:

Ну не знааааю. В прямых руках работает. Более последние не захотели устанавливаться на Win7. 

И не хочется выискивать почему работающий код вдруг перестал работать на распоследнем компиляторе. 

Платят—то за работающее изделие, а не за освоение компиляторов. 

Share this post


Link to post
Share on other sites

jcxz
37 минут назад, Gorby сказал:

Ну не знааааю. В прямых руках работает.

У вас такие магические руки, что баги в компиляторе сами собой исправляются? Тогда остаётся только вам позавидовать :prankster2:

Share this post


Link to post
Share on other sites

Gorby
2 minutes ago, jcxz said:

У вас такие магические руки, что баги в компиляторе сами собой исправляются? Тогда да, не стоит волноваться.

А не выпендриваюсь, пишу по-простому. В простых местах все баги давно выловлены.

У простых людей и болезни простые - переломы обеих конечностей, стригучий лишай. А как интеллигент, так сразу авторемонтное изменение сосудов.... (с)

Вы если чего сказать хотели, так говорите. А то одни "аки"  да "паки".

Какой IAR ARM компилятор, по Вашему мнению и ТОГО форума, является наилучшим? Ну и заодно инструкцию "кто виноват и что бл..н делать" если работающий проект вдруг выдаст 100500 ошибок, несовместимых с жизнью.

 

Share this post


Link to post
Share on other sites

jcxz
27 минут назад, Gorby сказал:

Какой IAR ARM компилятор, по Вашему мнению и ТОГО форума, является наилучшим?

Ладно - расслабьтесь. Никаких багов нет, всё "давно выловлено". Имеющий уши - да услышал, имеющий глаза - да увидел.

Share this post


Link to post
Share on other sites

Gorby

Внимание, для тех кто не вздрагивает нервно при каждой смене субверсии компиляторов. Баги IAR ARM 8.22:

Истинно говорю вам: такие баги меня не касаются. Аки-паки мммммм....

V8.22 2018-01-22

Program corrections

  • In EWARM 8.22.2
    [EWARM-6208, TPB-2953]

    Converting a value via a templated conversion operator to an instantiation of the returned class template can fail with a misleading error.

    Example:

            template<class T> struct A {};
            struct B
            {
              template<class T> operator A<T>& ();
            };
            struct S {};
            void foo(A<S> &);
            void bar()
            {
              B b;
              foo(b); // Error here
            }
            

     

  • In EWARM 8.22.2
    [EWARM-6192, TPB-2945] The compiler can in some circumstances incorrectly fold expressions containing a subscript applied to an integer cast to pointer type.

    Example:

            int *p = &((int*)0x1000)[1];
            

    Expressions like this will sometimes result in a pointer value without the offset.

 

 

 

История компиляторов: (http://supp.iar.com/FilesPublic/UPDINFO/013240/arm/doc/infocenter/iccarm_history.ENU.html)

Release History

 

 

Share this post


Link to post
Share on other sites

Gorby

Всем спасибо! Задача успешно решена.

Хочется отметить, что несмотря на огромное количество гуру от электроники здесь на форуме, ни одно гуру не вызвалось решить задачу.

Те двое простых специалистов [без 100500 постов], что взялись, задачу успешно выполнили независимо друг от друга. За что большое человеческое "СПАСИБО!".

В итоге создан исходник USB Dual_CDC  для STM32L476.

Что интересно, наблюдается некая кретинизация, "ардуинизация" что-ли процесса разработки. Мой штатный , весьма неплохой ембед программист после пол-дня гугления слился с темы со словами "ты выбрал неправильный процессор - на него в Гугле и ГитХабе нету рабочего примера Dual_CDC". Всё, кранты. И мне, электронику, пришлось искать внешних исполнителей.

Share this post


Link to post
Share on other sites

Arlleex

Это значит только одно - вы плохо знаете своего "весьма неплохого" программиста. Ваш "весьма неплохой" программист - скорее всего калокубер, а Вы даже не подозреваете:whistle3:

А то, что ни один "гуру" не отозвался на Ваше предложение не значит, ровным счетом, ничего. Без четкого ТЗ я бы тоже не стал ничего делать...

Share this post


Link to post
Share on other sites

AlexandrY
15 minutes ago, Arlleex said:

Это значит только одно - вы плохо знаете своего "весьма неплохого" программиста. Ваш "весьма неплохой" программист - скорее всего калокубер, а Вы даже не подозреваете:whistle3:

Нет, просто процессор реально выбран неправильно.
Такой весь якобы популярный STM действительно не сопровождается примерами проектов композитных устройств.
В то же время Kinetis имеет с десяток разных вариантов композитных устройств и под BM и под RTOS. И  i.MX RT  тоже. 
Так называемая "ардуинизация" не что иное как диктат софта.
Не посоветовавшись с программером не выбирай процессор.

Share this post


Link to post
Share on other sites

Integro
17 minutes ago, AlexandrY said:

Нет, просто процессор реально выбран неправильно.

Ага, сейчас ведь основным критерием выбора микроконтроллера является наличие примеров:good:, а такие параметры как: производительность, питание, потребление, рабочий диапазон температур, размеры, доступность, цена - это уже второстепенное...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.