STM32CubeIDE. Принципы работы и настройка интерфейса SWO

Поделиться
HTML-код
  • Опубликовано: 22 окт 2024

Комментарии • 78

  • @alx123
    @alx123 4 года назад +1

    Благодарю! А то я ковырял, не получалось.

    • @NRelectronics
      @NRelectronics  4 года назад +2

      Пожалуйста) не забывайте про лайки)

  • @ДимаДима-к1н
    @ДимаДима-к1н 3 года назад

    Ы... СПАСИБО... ыы... Пере смотрю несколько раз!!

  • @romaVeber
    @romaVeber 3 года назад +1

    правды ради, русские символы в swo выводить можно, только код переопределения стандартного вывода другой:
    int _write(int file, char *ptr, int len){
    int i=0;
    for(i=0;i

    • @NRelectronics
      @NRelectronics  3 года назад

      Благодарю за код, попробую.

    • @romaVeber
      @romaVeber 3 года назад

      @@NRelectronics, это не мой код, я подсмотрел, его нужно вставлять в участок user code begin 0. У меня русские символы работали (по крайней мере на голой cubeIDE 1.4.0)

    • @NRelectronics
      @NRelectronics  3 года назад

      отлично, спасибо!

    • @6apmojleu
      @6apmojleu 3 года назад

      Не помогает. И там, и там вывод посимвольно через ITM_SendChar.
      из библиотеки код.
      __attribute__((weak)) int _write(int file, char *ptr, int len)
      {
      int DataIdx;
      for (DataIdx = 0; DataIdx < len; DataIdx++)
      {
      __io_putchar(*ptr++);
      }
      return len;
      }
      Тот же цикл по строке.

  • @IlVin777
    @IlVin777 3 года назад +1

    Большое спасибо за уроки - очень толково объяснено как "завести" тулчейн для STM32.
    Только одного не сказано: ST-LINK v2 с Алишки не имеет SWO контакта и из-за этого не работают SWV Data Trace Timeline Graph и SWV ITM Data Console.
    Так что нужно или паять ST-Link v2, как описано на Хабре, или использовать официальные программаторы, например: интегрированные в Nucleo-64 :)

    • @NRelectronics
      @NRelectronics  3 года назад

      Пожалуйста) Стараюсь) с китайскими программаторами именно так, вывод там не распаян. Поэтому пользуйтесь сразу нормальными фирменными программаторами.

    • @paveloberkovich9674
      @paveloberkovich9674 2 года назад

      вечер добрый.у меня ST-LINK V2 вроде оригинал белый со своим шнуром для stm32 (20 пин) и stm8 (4 пин)
      что тоже отключен swo? не работают SWV Data Trace Timeline Graph и SWV ITM Data Console. спасибо

    • @paveloberkovich9674
      @paveloberkovich9674 2 года назад

      @@NRelectronics я уже неделю глаза вылезли программатор оригинал все делаю как пишет автор а толку ноль ни консоль SWV ни графики не работают только live expension работает

    • @paveloberkovich9674
      @paveloberkovich9674 2 года назад

      все хвалят ide но если не возможно настроить каk же код писать (крик души)

    • @IvanEng747
      @IvanEng747 Год назад

      Пробовал анализировать сигнал с контакта SWO(PA10) у программатора st link v2.
      Но логический анализатор,клон saleao ничего не видит.

  • @lesmostov6938
    @lesmostov6938 4 года назад +2

    Спсибо за уроки! Очень время экономится на изучение.
    Есть вопрос: - Вы добавляете stdio.h к остальным инклюдам, они не потеряются при перегенерации кода?

    • @NRelectronics
      @NRelectronics  4 года назад

      Добавил не в user code, нужно между begin and end includes, спасибо.

    • @lesmostov6938
      @lesmostov6938 4 года назад

      @@NRelectronics Вы на 6:05 добавляете код и обещаете пояснить дальше, но я не нашел пояснения. Если не трудно объясните пожалуйста.

    • @NRelectronics
      @NRelectronics  4 года назад

      нужно было ниже выложить. ранее ответил ведь.

    • @lesmostov6938
      @lesmostov6938 4 года назад +1

      Сам разобрался. __io_putchar (int ch) нужно переопределить у себя в коде, той функцией которая будет выводить символ в нужный интерфейс. В Кейле - макросом (дефайном)

  • @Иван-у7т7п
    @Иван-у7т7п 4 года назад +1

    Спасибо! Отлично!!!

    • @NRelectronics
      @NRelectronics  4 года назад

      Благодарю. Не забывайте подписываться на канал.

  • @ОлексійЮрченко-я8м
    @ОлексійЮрченко-я8м 4 года назад +1

    Спасибо!

  • @expertkis
    @expertkis 4 года назад +2

    Было бы не плохо если бы проект или код прикрепляли, который пишите, а так все хорошо и понятно.

    • @NRelectronics
      @NRelectronics  4 года назад

      Я обычно так и делаю, но здесь две строки добавить в любой проект и готово, чего тут проектировать то.

  • @Чешимрукиотскуки
    @Чешимрукиотскуки 3 года назад

    Класс

  • @openFrimeTv
    @openFrimeTv 4 года назад +1

    подскажите где посмотреть все команды для кейил или стм куб к примеру?

    • @NRelectronics
      @NRelectronics  4 года назад

      Вы имеете ввиду горячие клавиши?

    • @openFrimeTv
      @openFrimeTv 4 года назад

      @@NRelectronics нет, я имею ввиду сами команды с. вот допустим в ардуино иде есть аналогрид, диджитал рид, и тд. и про все это описано на сайте. в атмел студио немного по другому. всякие там sei, ISR. а в stm это gpio и другое. вот именно описание существует?

    • @NRelectronics
      @NRelectronics  4 года назад

      Description of STM32F1 HAL and LL drivers.pdf

    • @openFrimeTv
      @openFrimeTv 4 года назад

      @@NRelectronics оо, спасибо большое) удачи в развитии канала!

    • @NRelectronics
      @NRelectronics  4 года назад

      Благодарю! Стараюсь, дело не из простых)

  • @dmytromykhailiuta
    @dmytromykhailiuta 2 года назад

    Какой формат данных на SWO, это не UART байты ? Я не могу это вывести в терминал ?

    • @NRelectronics
      @NRelectronics  2 года назад

      SWO в терминал не выводится. Только в своё SWO-окно, например st-link utility.

  • @paveloberkovich9674
    @paveloberkovich9674 2 года назад

    день добрый.буду коротко
    для каких целей применяются какое назначение имеют вкладки
    SWV data tase,
    SWV trase log
    SWV statistical profiling
    SWV exeptional trase log
    спасибо

    • @NRelectronics
      @NRelectronics  2 года назад

      Ох мне с телефона всё не написать. Вбейте пожалуйста в гугль хром он вам найдёт и переведёт например на русский язык.

  • @vitaliycava7414
    @vitaliycava7414 3 года назад

    Спасибо за уроки, очень помогают. Не подскажите как свой проект открывать на другом компе просто копировать не получается.

    • @NRelectronics
      @NRelectronics  3 года назад

      Пожалуйста. Также открыть как и на вашем основном компьютере, только установить STM32CubeIDE нужно.

    • @vitaliycava7414
      @vitaliycava7414 3 года назад

      @@NRelectronics так они открываются по файлово а всем проектом нет, выдимо я спрашиваю что то элементарное но до меня ни как не дойдет.

    • @NRelectronics
      @NRelectronics  3 года назад

      из меню STM32CubeIDE нажать File->Open Projects from fole System... Далее увидите.

    • @vitaliycava7414
      @vitaliycava7414 3 года назад

      @@NRelectronics Спасибо

  • @Михаил-щ8ц8м
    @Михаил-щ8ц8м 3 года назад

    Спасибо, а менять значение переменной в отладке можно?

    • @NRelectronics
      @NRelectronics  3 года назад +1

      Пожалуйста. Можно, нажимаете на паузу, меняете переменную, нажимаете энтер и заново включаете отладку.

    • @Михаил-щ8ц8м
      @Михаил-щ8ц8м 3 года назад

      @@NRelectronics Большое спасибо! я без паузы пытался

    • @NRelectronics
      @NRelectronics  3 года назад

      эт круто вы делали!

  • @СашаБелоногов-е7у
    @СашаБелоногов-е7у 2 года назад

    Здравствуйте, скажите, с данной среде присутствуют примеры кода

  • @alexivanov4022
    @alexivanov4022 4 года назад

    Как включить всплывающие подсказки? Например пишешь HAL_De и сразу появилась подсказка HAL_Delay, которую можно выбрать из списка....

    • @NRelectronics
      @NRelectronics  4 года назад +1

      Нажатием клавиши ctrl + пробел.

  • @tiger0007t
    @tiger0007t 8 месяцев назад

    а что может быть подскажите в data tracer идут данные вижу график, а в itm data console не выводится информация о состоянии порта

    • @NRelectronics
      @NRelectronics  8 месяцев назад

      Номер порта проверьте. Частоту работы SWO ITM.

    • @tiger0007t
      @tiger0007t 8 месяцев назад

      помогло вот это переопределение из комментариев ниже кто-то написал спасибо ему огромное
      int _write(int file, char *ptr, int len){
      int i=0;
      for(i=0;i

    • @NRelectronics
      @NRelectronics  8 месяцев назад

      К тому де в видео я добавлял что нужно переопределять. В 06:27 - видимо моё видео и не смотрели...

  • @slavickolesnikov7036
    @slavickolesnikov7036 4 года назад

    Здравствуйте! Благодарю за уроки! Есть проблема, при нажатии на дебаг появляется воот такая ошибка:
    Error message from debugger back end:
    localhost:61234: Ñäåëàíà ïîïûòêà äîñòóïà ê ñîêåòó ìåòîäîì, çàïðåùåííûì ïðàâàìè äîñòóïà.
    Failed to execute MI command:
    target remote localhost:61234
    Там на эльфийском что-то.
    Подключаю Discovery F407.
    Перезапустил куб, заработало

    • @NRelectronics
      @NRelectronics  4 года назад

      Пожалуйста. А на эльфийском пишет на какой плате или при каких условиях? Привыкайте что куб глюченный софт, в отличии от партии/кейла.

    • @slavickolesnikov7036
      @slavickolesnikov7036 4 года назад

      @@NRelectronics плата Discovery f407vgt6. по поводу условий не скажу, раньше такого не было. Я на работе с линукса прошивал, просто бинарник закидывал как на флешку, меня устраивало. Сейчас, дома, с винды попробовал, после перезагрузки проблема исчезла.

    • @NRelectronics
      @NRelectronics  4 года назад

      значит вы не разобрались с проблемой, просто перезагрузка это все равно то не решение...

  • @IvanEng747
    @IvanEng747 Год назад

    У меня кириллица не понимается в порту отладки в IDE - и как не настраивал, толку мало.
    Также для вывода автор переопределяет функцию:
    int __io_putchar(int ch)
    {
    ITM_SendChar (ch);
    return ch;
    }
    Я же находил иное переопределение функции:
    int _write(int file, char *ptr, int len) {
    int i = 0;
    for (i = 0; i < len; i++)
    ITM_SendChar((*ptr++));
    return len;
    }
    Что есть __io_putchar, и почему перед этой функцией два подчеркивания, а в моей одно?
    P.S. Работаю в CubeIDE.
    PPS: Кстати, автор, вы на 2:40 показываете настройку RCC и выбираете Bypass - так я промучался три дня пока, думал беда с IDE, с руками, с программатором и самим МК stm32, а оказалось надо disable - если хочешь внутренний кварц использовать или cristal/ceramic resonator - если внешний.
    Вы же в уроке показали байпас - не знаю, у меня с ним код заливался в МК, но ни черта не работало.

    • @NRelectronics
      @NRelectronics  Год назад

      У меня код переопределения рекомендован самой ST.com. Он норм рабочий.

    • @IvanEng747
      @IvanEng747 Год назад

      @@NRelectronics Как то можно сигнал с SWO проанализировать?
      Осциллограф наверное да, а вот логический анализатор показывает чепуху.

    • @NRelectronics
      @NRelectronics  Год назад

      SWO - serial wire output. Подключайте терминалку и смотрите текстовые сообщения, через printf.

    • @IvanEng747
      @IvanEng747 Год назад

      @@NRelectronics Так и делаю, но думал можно как то информацию(сигналы) с порта PB3 микроконтроллера, проанализировать как тот же UART.

    • @NRelectronics
      @NRelectronics  Год назад

      Как именно хотели проанализировать?

  • @ДимаДима-к1н
    @ДимаДима-к1н 3 года назад

    Хорошо бы урок по разбору проблем КуБиДе... типа
    Error in final launch sequence
    Failed to execute MI command: -target-select remote localhost:3333
    ОТВЕТ (че это значит)127.0.0.1 localhost
    255.255.255.255 broadcasthost ::1 localhost
    Ошибка Failed to start GDB server
    Error in initializing ST-LINK device. Reason: (4) No device found on target.
    ОТВЕТ смотри ^^^^
    Приходится по старинке Source Insight 3.5- КЕЙЛ для дебага или КУБиде - Source Insight 3.5 - Кубибе_НЕХ - StUtil....

    • @NRelectronics
      @NRelectronics  3 года назад

      Это приколы и проблемы кубиде. Не очень хочется в них тонуть...

    • @maksympavlenko5305
      @maksympavlenko5305 3 года назад

      Так а в чем может быть проблема? Я задолбался уже С этим error in initializing st-link device

    • @NRelectronics
      @NRelectronics  3 года назад

      Не инициализируется у вас стлинк. Вопрос к драйверам, программатору, кабелю его подключения.

    • @maksympavlenko5305
      @maksympavlenko5305 3 года назад

      @@NRelectronics с танцами и бубном получилось. Даже не знаю причину. Просто открыл ст линк ютилити, зажал ресет, подождал немного, открылась прошивка та которая была, стёр ее и все ) дальше спокойно записывались другие скетчи через атолик. Подозреваю что это из-за того что я чё то не так делал с SYS в кубе. Лучше пускай всегда будет serial wire.

  • @abdulqadirahmedli610
    @abdulqadirahmedli610 Год назад

    Mən project build edəndə : Cannot run program make errorunu verir.

  • @Sanchogus
    @Sanchogus 4 года назад

    О, глядишь скоро и нюансы отладки пойдут всякие.

    • @NRelectronics
      @NRelectronics  4 года назад +1

      Конечно, сразу все показать не поймут или еще что, надо ведь подробненько и расжевать...

  • @DART2WADER
    @DART2WADER 3 года назад

    "stdio.h" это не библиотека ни какая! Это заголовочный файл иначе "хедер", а вот "библиотека" это *.lib или .o указывается в параметрах линкера.
    Хедера содержимое препроцессор копипастит в ваш сырец и затем компилирует.

    • @NRelectronics
      @NRelectronics  3 года назад

      stdio.h это как раз библиотека, все дополнительные свойства, девайсы, добавляются через хидеры .h и.c. В микроконтроллерах именно так. А если ещё точнее, то stdio.h состоит в Стандартной библиотеке языка Си.
      Как работает компилятор и препроцессор рассказывать не нужно.

  • @biriuk3344
    @biriuk3344 4 года назад

    Ну почему у меня в Console и в сторонних терминалах из UART идут кракозябры независимо от шрифта и кодировки??? З а д о л б а л с я!!! SOS! SOS! SOS!

    • @NRelectronics
      @NRelectronics  4 года назад

      Выполните все как у меня в видео и обязано работать. Значит что-то не так делаете.