STM32. CMSIS #14. Вывод служебной информации через отладочный порт SWO. ITM
Вставка
- Опубліковано 11 січ 2024
- Купить книгу "Освоение STM32 самостоятельно" по CMSIS:
• При печати на Xprinter...
Продолжение серий "STM32. CMSIS" и "Keil IDE". Здесь мы научимся легко и быстро выводить любую служебную информацию во время работы МК не занимаю никакой UART, как через IDE, так через стороннюю программу.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Для общения подписываться в чат:
t.me/+N2uEB7w-VdwwNGEy
Посмотреть видео лекции и обзоры:
/ @nrelectronics
Мой магазинчик канала на Али:
aliexpress.ru/shop/4962260
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Станьте спонсором канала:
переводом по номеру карты:
4377-7237-6190-5714
Спасибо 👍👍👍👍👍👍
Пожалуйста🙏🙏💓
Спасибо!
Жаль, что такие обучающие видео выходят редко...
Пожалуйста. По мере свободного времени к сожалению...
И хочу добавить отдельное спасибо, что уроки структурированы по плейлистам.
Стараюсь чтобы был порядок!)
Спасибо
Пожалуйста.
да, иногда такая штука полезнее точки останова, так как под отладкой иногда ловил баги
Поэтому её и представил. Легко настраивается, не сильно много занимает флеша, удобно и быстро начать пользоваться, хоть состояние битов регистров выводите!)
Большое спасибо за очень интересный материал. К сожалению, printf съедает очень много памяти. Если будет время и желание, то можно развить эту тему и показать как на уровне регистров передавать байты по SWO. И можно ли перехватить на ПК этот поток (виртуальный COM порт или что-то другое), чтобы в своей программе принимать данные, например, на Python.
Пожалуйста, стараюсь для своих подписчиков. Ставьте лайки и подписку!)))
По поводу парсинга, спрошу у соответствующих специалистов, а отъедает немного, 3184 байта, и это без оптимизации по размеру еще. Пожертвовать можно, но аккуратно. Пока на уровне регистров не планирую, тут уже проще UART можно поднять и передавать, по нему есть материал. Память теряется из-за портирования самих библиотек по работе с printf, а их сильно не порежешь.
@@NRelectronics, printf ведь можно вообще не использовать. Часто бывает достаточно выводить просто символы. А если нужен вывод чисел, то можно написать свою функцию размером в несколько десятков байт.
Можно сделать что угодно. Я показал наиболее быстрый и простой механизм вывода.
А что там за история с перепайкой пина на SW? Типа там просто штырька нет и его надо припаять что б подключить внешний stlink? Или что то другое?
сигнал на выводе МК есть, его нужно пробросить проводом на один из лишних выводов китайского свистка ST-Link V2. И всё.
Это что - printf порядка 3кБ флеша кушает? некисло так
Библиотеки для неё. В начале видео я компилироаал проект и в конце, можете вычесть одно из другого и получится эта цифра. Так и есть.
Если выходит ошибка типа "another core work on SWO" - или что-то такое (по памяти написал), то выключить/включить плату - и ошибка пропадает.
Спасибо за информацию. Интересная ошибка. Другое ядро работает на SWO, у меня за всю жизнь подобной ошибки не было.
@@NRelectronics Это на GDB выходит. Т.е. в CubeIDE например. Долго возился с этой ошибкой (а произошла она после того как склонировал проект и заново его открыл). Делал как писали на форумах - не помогало. Все удалял в проекте-клоне от старого - не помогало. В нете полно таких тем с такой ошибкой. Помогло случайное отключение/подключение платы. Какой-то софтовый глюк в GDB отладчике.
А если проект сделать с нуля и подсунуть либы?
@@NRelectronics С нуля - вроде не было. Но если и будет, то делать тоже самое - так выходит. Это кстати на STM32H7.
Надо бы конечно Вам разобраться в этом. Если первичный проект подобного не вызывает, то что происходит, удаляете лишнее...
Кейл в 24 году? Рукалицо. Как нужно не любить себя.
А что любить эклипс на джаве? Издеваться над собой спасибо не надо.