правды ради, русские символы в swo выводить можно, только код переопределения стандартного вывода другой: int _write(int file, char *ptr, int len){ int i=0; for(i=0;i
@@NRelectronics, это не мой код, я подсмотрел, его нужно вставлять в участок user code begin 0. У меня русские символы работали (по крайней мере на голой cubeIDE 1.4.0)
Не помогает. И там, и там вывод посимвольно через 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; } Тот же цикл по строке.
Большое спасибо за уроки - очень толково объяснено как "завести" тулчейн для STM32. Только одного не сказано: ST-LINK v2 с Алишки не имеет SWO контакта и из-за этого не работают SWV Data Trace Timeline Graph и SWV ITM Data Console. Так что нужно или паять ST-Link v2, как описано на Хабре, или использовать официальные программаторы, например: интегрированные в Nucleo-64 :)
вечер добрый.у меня ST-LINK V2 вроде оригинал белый со своим шнуром для stm32 (20 пин) и stm8 (4 пин) что тоже отключен swo? не работают SWV Data Trace Timeline Graph и SWV ITM Data Console. спасибо
@@NRelectronics я уже неделю глаза вылезли программатор оригинал все делаю как пишет автор а толку ноль ни консоль SWV ни графики не работают только live expension работает
Спсибо за уроки! Очень время экономится на изучение. Есть вопрос: - Вы добавляете stdio.h к остальным инклюдам, они не потеряются при перегенерации кода?
Сам разобрался. __io_putchar (int ch) нужно переопределить у себя в коде, той функцией которая будет выводить символ в нужный интерфейс. В Кейле - макросом (дефайном)
@@NRelectronics нет, я имею ввиду сами команды с. вот допустим в ардуино иде есть аналогрид, диджитал рид, и тд. и про все это описано на сайте. в атмел студио немного по другому. всякие там sei, ISR. а в stm это gpio и другое. вот именно описание существует?
день добрый.буду коротко для каких целей применяются какое назначение имеют вкладки SWV data tase, SWV trase log SWV statistical profiling SWV exeptional trase log спасибо
Здравствуйте! Благодарю за уроки! Есть проблема, при нажатии на дебаг появляется воот такая ошибка: Error message from debugger back end: localhost:61234: Ñäåëàíà ïîïûòêà äîñòóïà ê ñîêåòó ìåòîäîì, çàïðåùåííûì ïðàâàìè äîñòóïà. Failed to execute MI command: target remote localhost:61234 Там на эльфийском что-то. Подключаю Discovery F407. Перезапустил куб, заработало
@@NRelectronics плата Discovery f407vgt6. по поводу условий не скажу, раньше такого не было. Я на работе с линукса прошивал, просто бинарник закидывал как на флешку, меня устраивало. Сейчас, дома, с винды попробовал, после перезагрузки проблема исчезла.
У меня кириллица не понимается в порту отладки в 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 - если внешний. Вы же в уроке показали байпас - не знаю, у меня с ним код заливался в МК, но ни черта не работало.
Хорошо бы урок по разбору проблем КуБиДе... типа 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 с танцами и бубном получилось. Даже не знаю причину. Просто открыл ст линк ютилити, зажал ресет, подождал немного, открылась прошивка та которая была, стёр ее и все ) дальше спокойно записывались другие скетчи через атолик. Подозреваю что это из-за того что я чё то не так делал с SYS в кубе. Лучше пускай всегда будет serial wire.
"stdio.h" это не библиотека ни какая! Это заголовочный файл иначе "хедер", а вот "библиотека" это *.lib или .o указывается в параметрах линкера. Хедера содержимое препроцессор копипастит в ваш сырец и затем компилирует.
stdio.h это как раз библиотека, все дополнительные свойства, девайсы, добавляются через хидеры .h и.c. В микроконтроллерах именно так. А если ещё точнее, то stdio.h состоит в Стандартной библиотеке языка Си. Как работает компилятор и препроцессор рассказывать не нужно.
Благодарю! А то я ковырял, не получалось.
Пожалуйста) не забывайте про лайки)
Ы... СПАСИБО... ыы... Пере смотрю несколько раз!!
Пожалуйста)
правды ради, русские символы в swo выводить можно, только код переопределения стандартного вывода другой:
int _write(int file, char *ptr, int len){
int i=0;
for(i=0;i
Благодарю за код, попробую.
@@NRelectronics, это не мой код, я подсмотрел, его нужно вставлять в участок user code begin 0. У меня русские символы работали (по крайней мере на голой cubeIDE 1.4.0)
отлично, спасибо!
Не помогает. И там, и там вывод посимвольно через 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;
}
Тот же цикл по строке.
Большое спасибо за уроки - очень толково объяснено как "завести" тулчейн для STM32.
Только одного не сказано: ST-LINK v2 с Алишки не имеет SWO контакта и из-за этого не работают SWV Data Trace Timeline Graph и SWV ITM Data Console.
Так что нужно или паять ST-Link v2, как описано на Хабре, или использовать официальные программаторы, например: интегрированные в Nucleo-64 :)
Пожалуйста) Стараюсь) с китайскими программаторами именно так, вывод там не распаян. Поэтому пользуйтесь сразу нормальными фирменными программаторами.
вечер добрый.у меня ST-LINK V2 вроде оригинал белый со своим шнуром для stm32 (20 пин) и stm8 (4 пин)
что тоже отключен swo? не работают SWV Data Trace Timeline Graph и SWV ITM Data Console. спасибо
@@NRelectronics я уже неделю глаза вылезли программатор оригинал все делаю как пишет автор а толку ноль ни консоль SWV ни графики не работают только live expension работает
все хвалят ide но если не возможно настроить каk же код писать (крик души)
Пробовал анализировать сигнал с контакта SWO(PA10) у программатора st link v2.
Но логический анализатор,клон saleao ничего не видит.
Спсибо за уроки! Очень время экономится на изучение.
Есть вопрос: - Вы добавляете stdio.h к остальным инклюдам, они не потеряются при перегенерации кода?
Добавил не в user code, нужно между begin and end includes, спасибо.
@@NRelectronics Вы на 6:05 добавляете код и обещаете пояснить дальше, но я не нашел пояснения. Если не трудно объясните пожалуйста.
нужно было ниже выложить. ранее ответил ведь.
Сам разобрался. __io_putchar (int ch) нужно переопределить у себя в коде, той функцией которая будет выводить символ в нужный интерфейс. В Кейле - макросом (дефайном)
Спасибо! Отлично!!!
Благодарю. Не забывайте подписываться на канал.
Спасибо!
Пожалуйста!)
Было бы не плохо если бы проект или код прикрепляли, который пишите, а так все хорошо и понятно.
Я обычно так и делаю, но здесь две строки добавить в любой проект и готово, чего тут проектировать то.
Класс
подскажите где посмотреть все команды для кейил или стм куб к примеру?
Вы имеете ввиду горячие клавиши?
@@NRelectronics нет, я имею ввиду сами команды с. вот допустим в ардуино иде есть аналогрид, диджитал рид, и тд. и про все это описано на сайте. в атмел студио немного по другому. всякие там sei, ISR. а в stm это gpio и другое. вот именно описание существует?
Description of STM32F1 HAL and LL drivers.pdf
@@NRelectronics оо, спасибо большое) удачи в развитии канала!
Благодарю! Стараюсь, дело не из простых)
Какой формат данных на SWO, это не UART байты ? Я не могу это вывести в терминал ?
SWO в терминал не выводится. Только в своё SWO-окно, например st-link utility.
день добрый.буду коротко
для каких целей применяются какое назначение имеют вкладки
SWV data tase,
SWV trase log
SWV statistical profiling
SWV exeptional trase log
спасибо
Ох мне с телефона всё не написать. Вбейте пожалуйста в гугль хром он вам найдёт и переведёт например на русский язык.
Спасибо за уроки, очень помогают. Не подскажите как свой проект открывать на другом компе просто копировать не получается.
Пожалуйста. Также открыть как и на вашем основном компьютере, только установить STM32CubeIDE нужно.
@@NRelectronics так они открываются по файлово а всем проектом нет, выдимо я спрашиваю что то элементарное но до меня ни как не дойдет.
из меню STM32CubeIDE нажать File->Open Projects from fole System... Далее увидите.
@@NRelectronics Спасибо
Спасибо, а менять значение переменной в отладке можно?
Пожалуйста. Можно, нажимаете на паузу, меняете переменную, нажимаете энтер и заново включаете отладку.
@@NRelectronics Большое спасибо! я без паузы пытался
эт круто вы делали!
Здравствуйте, скажите, с данной среде присутствуют примеры кода
Здравствуйте. В среде нет. Но в CubeMX лежат примеры кода.
спасибо
Как включить всплывающие подсказки? Например пишешь HAL_De и сразу появилась подсказка HAL_Delay, которую можно выбрать из списка....
Нажатием клавиши ctrl + пробел.
а что может быть подскажите в data tracer идут данные вижу график, а в itm data console не выводится информация о состоянии порта
Номер порта проверьте. Частоту работы SWO ITM.
помогло вот это переопределение из комментариев ниже кто-то написал спасибо ему огромное
int _write(int file, char *ptr, int len){
int i=0;
for(i=0;i
К тому де в видео я добавлял что нужно переопределять. В 06:27 - видимо моё видео и не смотрели...
Здравствуйте! Благодарю за уроки! Есть проблема, при нажатии на дебаг появляется воот такая ошибка:
Error message from debugger back end:
localhost:61234: Ñäåëàíà ïîïûòêà äîñòóïà ê ñîêåòó ìåòîäîì, çàïðåùåííûì ïðàâàìè äîñòóïà.
Failed to execute MI command:
target remote localhost:61234
Там на эльфийском что-то.
Подключаю Discovery F407.
Перезапустил куб, заработало
Пожалуйста. А на эльфийском пишет на какой плате или при каких условиях? Привыкайте что куб глюченный софт, в отличии от партии/кейла.
@@NRelectronics плата Discovery f407vgt6. по поводу условий не скажу, раньше такого не было. Я на работе с линукса прошивал, просто бинарник закидывал как на флешку, меня устраивало. Сейчас, дома, с винды попробовал, после перезагрузки проблема исчезла.
значит вы не разобрались с проблемой, просто перезагрузка это все равно то не решение...
У меня кириллица не понимается в порту отладки в 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 - если внешний.
Вы же в уроке показали байпас - не знаю, у меня с ним код заливался в МК, но ни черта не работало.
У меня код переопределения рекомендован самой ST.com. Он норм рабочий.
@@NRelectronics Как то можно сигнал с SWO проанализировать?
Осциллограф наверное да, а вот логический анализатор показывает чепуху.
SWO - serial wire output. Подключайте терминалку и смотрите текстовые сообщения, через printf.
@@NRelectronics Так и делаю, но думал можно как то информацию(сигналы) с порта PB3 микроконтроллера, проанализировать как тот же UART.
Как именно хотели проанализировать?
Хорошо бы урок по разбору проблем КуБиДе... типа
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....
Это приколы и проблемы кубиде. Не очень хочется в них тонуть...
Так а в чем может быть проблема? Я задолбался уже С этим error in initializing st-link device
Не инициализируется у вас стлинк. Вопрос к драйверам, программатору, кабелю его подключения.
@@NRelectronics с танцами и бубном получилось. Даже не знаю причину. Просто открыл ст линк ютилити, зажал ресет, подождал немного, открылась прошивка та которая была, стёр ее и все ) дальше спокойно записывались другие скетчи через атолик. Подозреваю что это из-за того что я чё то не так делал с SYS в кубе. Лучше пускай всегда будет serial wire.
Mən project build edəndə : Cannot run program make errorunu verir.
what kind of mistake exactly?
О, глядишь скоро и нюансы отладки пойдут всякие.
Конечно, сразу все показать не поймут или еще что, надо ведь подробненько и расжевать...
"stdio.h" это не библиотека ни какая! Это заголовочный файл иначе "хедер", а вот "библиотека" это *.lib или .o указывается в параметрах линкера.
Хедера содержимое препроцессор копипастит в ваш сырец и затем компилирует.
stdio.h это как раз библиотека, все дополнительные свойства, девайсы, добавляются через хидеры .h и.c. В микроконтроллерах именно так. А если ещё точнее, то stdio.h состоит в Стандартной библиотеке языка Си.
Как работает компилятор и препроцессор рассказывать не нужно.
Ну почему у меня в Console и в сторонних терминалах из UART идут кракозябры независимо от шрифта и кодировки??? З а д о л б а л с я!!! SOS! SOS! SOS!
Выполните все как у меня в видео и обязано работать. Значит что-то не так делаете.