Это видео недоступно.
Сожалеем об этом.

STM32CubeIDE. Вывод printf без наличия SWO

Поделиться
HTML-код
  • Опубликовано: 15 авг 2020
  • В видео на практическом примере рассказывается и демонстрируется как можно без линии SWO выводить текстовую/цифровую информацию для мониторинга/отладки необходимых состояний прошивки на примере микроконтроллера STM32G071.
    Source:
    github.com/nr-...
    Вы можете помочь каналу Яндекс-деньги:
    money.yandex.r...

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

  • @user-hd3jz7rp7y
    @user-hd3jz7rp7y 3 года назад +2

    Спасибо , для bluepill stm32f103 все работает

  • @Grigrost
    @Grigrost 4 года назад +4

    Спасибо за очень познавательное видео!

  • @serhiiplys4588
    @serhiiplys4588 2 года назад +1

    Только эта особенность будет работать в Debug Mode. Если компилить для Релиза - то все надо убирать и возвращать к настройкам по умолчанию. а для дебаггинга - крайне полезная вещь

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

      Конечно в релизе убирать. Слишком много накладных расходов на эту функцию в таком виде.

    • @olegp.3012
      @olegp.3012 3 месяца назад

      так дело ж не только в дополнительніх расходах русурсов. Вне дебаг режиме програма дойдет до первого printf, встретит инструкцию брейкпоинта и остановится до следующей перезагрузки. Или нет?

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

    Где-то с 3:30 начинается сама тема, если кто-то рвется в бой))

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

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

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

      @@NRelectronics ну надо было что-то написать в комент же :) Инфа, безусловно, полезная. Так даже лучше, чем отдельный пин SWO в какой-то степени.
      Можно еще на подобные вопросы "зачем/почему/откуда/что такое SWO" делать вставки с отсылками к предыдущим видео (если они есть), заодно и их глянут, может быть.

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

      @@NRelectronics если у зрителей возникают подобные вопросы, то это точно не целевая аудитория

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

    Рекомендую еще посмотреть на Segger RTT.

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

    жирный лайк и почетная грамота за труд. верной дорогой идете, товарищ!!

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

      Благодарю! Смотрите на пользу.

  • @user-tc5jo9mb3h
    @user-tc5jo9mb3h 2 года назад

    Спасибо за видео.
    Небольшая подсказка по набору команд. Если в редакторе набрать например prin и затем нажать Ctrl+Пробел, то произойдет автодополнение с подсказкой по аргументам. Что ускорит дело )

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

      Спасибо.
      Интересно, попробую, не знал)

  • @user-ee9bo8ws2x
    @user-ee9bo8ws2x 3 года назад

    После просмотра Вашего обзора - купил эту плату. Всё сделал по видео - всё получилось. Спасибо большое за труд - он реально помогает. А ввод возможен через эту же консоль, в которую вывод происходит? Или каким то другим способом

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

      Ввод не возможен. SWO работает только на выход. Тогда нужно вам использовать UART для двухстороннего обмена данных.

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

    Ну ты балин ващее... Ждем продолжения: отладка через 3.3v без программатора, повторная заливка кода на однократно программируемые МК. )

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

    Спасибо. У меня проц STM32F030. Я использовал STLINK-V2 (китайский, без переделок). Сделал почти так же как в ролике. Только в настройке Debuggers -> Reset Mode я установил "None" , иначе не хотело работать и проц зависал. Приходилось его стирать отдельно прогой STM32CubeProgrammer, причем нужно было почти одновременно сбрасывать проц (замыкать резет) и нажимать на программаторе кнопку "Connect". Иначе программатор не определяет проц! Вы не в курсе почимо так происходит?
    Эта фунция очень удобна!!! (Вывод в консоль).
    Большое спасибо Вам!

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

      Пожалуйста.
      Вы подключали аппаратно линию песни? Тут у вас не совпадение настроек аппаратный/программный сброс МК или линию песни не подключили.

  • @openFrimeTv
    @openFrimeTv 7 месяцев назад

    а от куда брали инфу что нужно делать именно так? я сейчас читаю книгу (освоением стм32) и там тоже про это написано. называется полухостинг. но там про еклипс рассказано.

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

      Не из этой книги. Из другого источника.

    • @openFrimeTv
      @openFrimeTv 7 месяцев назад

      @@NRelectronics а что за источник? или секрет фирмы?)

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

      Попробую вспомнить и найти, это был сайт. Я потом вам в телеге скину...

    • @openFrimeTv
      @openFrimeTv 7 месяцев назад

      @@NRelectronics спасибо)

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

      Не найду сайт. Можете по видео проверить, всё чётко работает)

  • @Prostopravda
    @Prostopravda 5 месяцев назад

    Отладка работает, но при включенной трассировке Keil выдает "Trace: No Synchronization". Использую китайский ST-Link V2, плата на базе STM32F407VET6. Тот же результат на STM32F103C8T6. Танцы с бубном не помогают, гугл тоже. Может ли трассировка вообще работать с китайским ST-Link V2?

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

      Читал, что трассировка в кейле работает под их полноценным U link Pro или как он называется. Под ulink2 она не работает. Большие сомнения что под стлинк она может работать, там соответствующих выводов на линиях программатора нет.

    • @Prostopravda
      @Prostopravda 5 месяцев назад

      @@NRelectronics Спасибо за ответ, народные умельцы пишут, что они делают трассировку в Keil через STLink по SWD, собственно потому мне и стало интересно, возможно ли такое. Но они не уточняют, каким именно STLink пользуются.

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

      Возможно, надо проверить.

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

    Молодец! Спасибо!

  • @kendy8369
    @kendy8369 Месяц назад

    Как это сделать в Keil uVision?

    • @NRelectronics
      @NRelectronics  Месяц назад

      Да по сути также. Будет время сделаю видео.

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

    Ау меня вопрос .Вернее два вопроса.Я подключаю #includeа у вас лапки как правильно.?и второй вопрос Printf USARTкак работает он?

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

      Кавычки и фигурные скобки и так и так правильно. Может почитаете основы Си? Printf высылает свой(наш) аргумент в SWO линию.

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

      @@NRelectronics А вUSART?

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

      Заменяется библиотека syscall на rdimon и в ней, предкоипилированной, все случается.

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

    Спасибо за ролик . Получилось stm32f401ccu BlekPill Где взят данный рецепт . Хотелось бы больше подробностей по данной тематике, так сказать используемая литература данного рецепта.

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

      Используемая литература, это Programming manual и Reference manual.

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

      @@NRelectronics Спасибо, но это как то расплывчато... Если можно ссылку(-ки) или номер STшного мануала типа "UM1850" может словосочетание для гугла ...

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

      В комьюнити нашёл, потом сам развил. Как найду в доках дам знать.

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

    Прокатят ли эти настройки для Keil, или это работает только для CubeIDE?

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

      По идее да, но видео с демкой никак не запилю...

    • @kendy8369
      @kendy8369 Месяц назад

      Есть для Keil uVision?

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

    в каких версиях платы есть SWO ?

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

      причем тут версия платы? в контроллере нет SWO.

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

      @@NRelectronics у всех версиях платы один и тот же контроллер ?

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

      на всех нуклео стоит мк в одном и том же типоразмере но разных модельных сериях...

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

      @@NRelectronics типоразмер свидетесвует о одном и том же контролере ?

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

      нет

  • @user-ef2rr7kz4m
    @user-ef2rr7kz4m 3 года назад

    Доброе время суток, спасибо за видео. Только интересует вопрос в CUBE IDE справа внизу есть возможность создать новую консоль или открыть консоль и там уже смотреть результат вывода prinf или это было в Atolic studio причем ручками прописывать ни чего не надо. Или я что то путаю и придумываю?! Там консоль открывалась по принципу работы "Ардуино" ну и порт типа "local"

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

      Доброго времени суток. Идея куб иде таже, с атолика то всё и пошло.

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

    Что за библиотека rdimon?

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

    скажите пожалуйста это актуально для STM32F103C8t6? я не хочу ничего паять в ST linke :)

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

      SWO актуально для stm32f103c8t6, как и для многих других МК. Но у вас должна быть поддержка его в программаторе.

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

      @@NRelectronics у меня китайская ST-link V2. Я так понимаю там нужно подпаять проводок. Без этой операции можно обойтись?:) типа без наличия SWO, или я туплю сейчас где-то?)

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

      для программирования и отладки STM32 любых микроконтроллеров линия SWO особо и не нужна.

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

      @@NRelectronics спасибо за ответ. А есть ли cube mx ide или в attolic truestudio возможность вывода значений переменных или графиков по последовательному порту, или чтобы printf видно было где то? То есть что то типа как монитор порта в Ардуино ide ). Спасибо

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

      Да, это есть. В каком-то ролике это показывал. Как буду дома, найду этот ролик на моем канале и сделаю вам ссылку.

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

    Директорию Debug не нужно добавлять в git .

  • @472bush
    @472bush Год назад

    Ну почему же производители stm32 так облажались с отладкой? как будто сами не пишут на своих мк, почему все так сложно? ведь это самый важный и главный инструмент.
    Я специально купил оригинальный st_LInk и теперь третий день не могу открыть монитор порта потому что информации по нему нет, и зачем показывать в своих примерах отладочные платы еще и с встроенным программатором ведь они огромные и для проектов новичков не влезут нин в один корпус, а постоянно отламывать программаторы что бы их потом некуда было девать и каждый раз за них переплачивать или брать и показывать на примере распространенных и дешевых BLUEPILL нельзя?

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

      Почему облажались? В чем? В каждом семействе свой набор выводов.
      Монитор вы открыть не можете, это юарт? А он у вас подключен к мк? Я не вижу в этом проблем.
      Если хотите маленький программатор то используйте sT-Link v2 mini.

    • @472bush
      @472bush Год назад

      @@NRelectronics я хотел сказать, что нет информации о простых вещах которые знают программисты выше начального уровня, а именно, что надо было сказать что открываете даташит на контроллер ищите пин SWO подключаете к соответствующему пину программатора и у вас счастье.
      Так нет, вы зачем то в юарт лезете, а если он занят аппаратно. и через него надо читать данные?
      почему бы не объяснить что такое serial wire почему его где используют а почему нет

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

      На многие вещи, о которых вы сказали, есть Application note. И тут подразумевается, чио как вы пишите программист выше начального, может открыть и самостоятельно прочитать документацию. Так должны работать любые программисты.

    • @472bush
      @472bush Год назад

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

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

      Когда вопрос становится больше, значит вы на правильном пути.

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

    Здравствуйте! Я давненько просил сделать один урок по светодиоду но пока его нет хотел бы перефразировать. Не могли бы вы в ваших уроках объяснить как имея несколько библиотек из файлов.с и файлов.h в одном проекте управлять ими посредством кнопки и RGB светодиода?
    Например код 123 включает одну библиотеку а другой код соответственно другую библиотеку. Спасибо.

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

      Здравствуйте.
      А если препроцессор подтянет сразу все библиотеки, так плохо?
      Вы можете назвать все разными переменными и ссылаться на то что и когда вам надо.

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

      @@NRelectronics Наверное так будет правильнее как вы предложили. Я пока не могу понять как работает данный алгоритм

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

      Почитайте о препроцессоре Си. Есть видео по книгам Си на моем канале.

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

      Это основы С. Стоит, наверное, в начале с языком разобраться, а потом уже на МК переходить.

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

      Желательно конечно.

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

    Написал комментарий, его удалили, переписал, снова удалили, странно...

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

      Что написали?? Если была какая-то ссылка не на ютуб, то он удаляет без моего ведома... А так вижу ваше сообщение.

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

      ​@@NRelectronics Хотел сказать вам спасибо за ваше видео.
      Да ссылка была, попробую написать еще раз :))
      Попробовал на STM32F723 - работает. Я проверял с оригинальным внешним stlink/v2 ISOL.
      Не знаю откуда вы брали информацию, но есть замечательная статья тут codeinsideoutcomblogstm32semihosting
      Всякие и заменить на соответствующие символы.
      В статье также говорится что можно не только выводить строки, но и получать ввод с консоли, а еще писать в файл который будет сохраняться сразу на хостовой машине.
      Проверил ввод, вывод и запись в файл как описано в статье, у меня все получилось.
      Еще раз спасибо за видео.
      Всем удачи.

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

      Вам спасибо за информацию. Я так полагаю что работает только на вывод, но раз вы говорите что у вас работает, то статью проверю. Спасибо за инфу! 👍

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

      Посмотрел. В режиме отладки через opencd можно вводить данные. Интересно как это можно полезно реализовать для мк. Имитация прихода данных например, по определённому протоколу. Надо подумать)
      Как вы это у себя применяли?

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

      ​@@NRelectronics Мой проект пока в стадии проектирования.
      На данный момент я изучаю какие есть возможности для отладочного ввода-вывода.
      Ввод мне не нужен, но если вдруг потребуется важно знать как его реализовать.
      Решение какой вариант использовать приму позже.
      Как это применить для МК?
      Я бы исходил от задачи.
      Например у меня был проект в котором помимо прошивки с основным функционалом была специальная прошивка для тестирования оборудования и в ней все управление осуществлялось через UART.
      Или например как эмуляция команд/данных от устройства которого нет на этапе разработки.
      Или альтернатива точкам остановки, бред конечно, но почему нет? :)
      Зачем выдумывать, жизнь сама подскажет :)

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

    т.е. я правильно понимаю, что в порт вы ничего не посылаете и через любой монитор я этого не увижу, а работает только через саму IDE? не, ну прикольно. :-)

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

      Да, только под отладкой увидите, без использования дополнительных линий. Нужен только swdio и swclk.

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

      @@NRelectronics а в релизной версии прошивки зависать не будет? И что нужно будет поменять в настройке релизной компиляции дабы не выводилась отладка?

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

      по хорошему вернуть все настройки обратно.