16.05.2019, 09:42
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Фигасе. Столько раз повторили, а он не понял. Да я уже даже сам понял, а он все ещё нет.. че, картинки рисовать или видео урок пошаговый надо снять?
У вас нe SWD порт, а UART. Посмотрите в этом вашем CoFlash, есть ли там выбор UART. Если нет, то я уже дважды написал, с помощью чего это Программируютчя через UART
Последний раз редактировалось NewWriter; 16.05.2019 в 09:56.
|
|
|
|
16.05.2019, 10:39
|
|
Вид на жительство
Регистрация: 09.08.2017
Сообщений: 362
Сказал спасибо: 7
Сказали Спасибо 31 раз(а) в 20 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Сообщение от NewWriter
|
Посмотрите в этом вашем CoFlash
|
Ладно... Попробую ещё раз.
Изначально я уже указывал: по ряду причин у меня не установлена утилита CoFlash (и не устанавливается). Причину этого, я так понял, никто не посоветует как устранить. Значит - только сторонняя утилита мне поможет. И эта утилита должна поддерживать режим прошивки через UART. Так правильно?
|
|
|
|
16.05.2019, 10:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Сообщение от mike-y-k
|
Таки отладка, интерфейсы для неё существуют
|
Ну пусть хоть один человек найдется, который сможет объективно сказать: да, ему внутрисхемная отладка помогла, когда чтение RM, даташита и errata уже завели в тупик!
Да быть такого не может!!!
Кроме того, внутрисхемной отладкой невозможно пользоваться в работе с реальными протоколами. Поставили breakpoint внутри обработчика прерывания USB — бдымц, поломали USB...
А ТСу тоже нужно для начала документацию почитать, и лишь затем браться за это! А то он мне напоминает тех теток, которые за компьютером себя как мартышки ведут: абсолютно ничего не знают и не умеют, но мнят о себе...
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
16.05.2019, 11:43
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
AleksandrS_59, таки удаление и установка всего пакета должны вылечить проблему с утилитой. В промежутке неплохо почистить реестр любимой программой.
Утилита из пакета CoFlash ЕМНИП Вам не поможет - она не умеет работать с UART.
Собственно совет об этом, как и ссылка на саму утилиту прошивки через UART, так и манипуляции с джампрами на Ваше плате выше уже описаны были и не одним участником - осталось просто выполнить. С самим чипом ничего страшного не случится - этот режим собственно и сделан производителем для борьбы с окирпичиванием.
eddy, наличие внутрисхемной отладки и инструмента для работы с ней весьма помогает в работе, а про использование тут очень подходит анекдот про использование стеклянного протеза.
Особенно сие касается ситуаций, когда спектр используемых чипов весьма широк и при портировании кода между разными μCU/μPU/SoC/SoM/…
Все помнить никак невозможно…
Ну и при освоении тоже неплохое подспорье…
И чтение всех документов ну никак не поможет при отладке математики - там широкий простор для использования. С тем же выводом сообщений в UART число итераций в разы больше - тут тоже чистая математика.
Собственно это уже оффтоп начался.
Желаете за и против внутрисхемной отладки - создайте тему в Делимся опытом с голосованием типа:
- пользуюсь изредка
- пользуюсь постоянно
- всегда пишу рабочий код
- пользуюсь только UART, дисплеем,…
- не знаю что это такое
Список можно добавить ещё вариантами
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 16.05.2019 в 11:51.
|
|
|
|
16.05.2019, 13:22
|
|
Вид на жительство
Регистрация: 03.10.2011
Сообщений: 485
Сказал спасибо: 35
Сказали Спасибо 234 раз(а) в 138 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Сообщение от eddy
|
Кроме того, внутрисхемной отладкой невозможно пользоваться в работе с реальными протоколами. Поставили breakpoint внутри обработчика прерывания USB — бдымц, поломали USB...
|
Как раз подключение по SWD тут замечательно помогает - можно использовать диагностический вывод через SWO внутри критичных ко времени участков, ибо такой вывод не тормозит программу на время вывода байтиков через UART.
Опять-же например если программа "улетела" в какой-нибудь HardFault, то в отладчике можно посмотреть откуда именно и как она до этого дошла.
Последний раз редактировалось Serg3301; 16.05.2019 в 13:25.
|
|
|
Сказали "Спасибо" Serg3301
|
|
|
16.05.2019, 17:51
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Мда. Видимо, придется рисовать картинки и пошагово:
- скачиваем Flash Loader Demonstrator - https://www.st.com/en/development-to...her-stm32.html (потребуется ввести действующий адрес эл.почты - туда придет ссылка на скачивание), устанавливаем. Установленное приложение будет называться Demonstrator GUI.
- подключаем плату к переходнику USB-UART вот так:
TXD к A10,
RXD к A9,
3V3 к 3.3
GND к GND.
- на плате крайнюю желтую перемычку (та, которая ближе к краю) переставляем в положение "1"
- втыкаем USB-UART в комп (в USB). Нам надо узнать, под каким именем зарегался в системе COM-порт. Для этого открываем виндовый Диспетчер устройств и списке Порты находим наш переходник. У него например будет номер COM12. Запоминаем этот номер.
- запускаем Demonstrator GUI.
В поле Port Name выбираем COM-порт с тем номером, под которым значится наш переходник. Например, COM12. Остальное - по умолчанию.
- на плате с МК нажимаем кнопочку RESET (она там одна).
- нажимаем в Demonstrator GUI кнопочку Next.
Если всё правильно сделали, перейдет к следующему экрану, в котором будет зеленый "светофорик" и надпись Target is readable. Жмем дальше Next.
- произойдет определение подключенного МК и отобразится список секторов флеша и их состояние. Зеленый цвет - сектор не защищен и может быть записан.
Нажимаем снова Next.
- в следующем окне выбираем, что надо сделать. Стереть флеш - ставим точку в Erase. Залить новую прошивку - ставим точку в Download to device. Прочесть прошивку из флеша - Upload from device. Остальное - не трогаем, нам оно нафик не нужно.
Значит, поставили точку в Download to device.
Выбираем нужный нам файл кнопочкой [...]. Можно выбрать как hex, так и bin - справа список фильтра.
Чуть ниже можно выбрать предварительное стирание флеша - только требующиеся сектора; без стирания; или глобальное стирание флеша.
Можно выбрать верификацию после прошивки - галочка Verify after download.
- нажимаем Next. Начнется прошивка. По завершении ее появится сообщение об успешном (или неуспешном) её завершении.
Всё, мы прошили МК. Но сейчас он не работает. Он находится под управлением загрузчика.
- Возвращаем крайнюю перемычку в положение "0".
- Нажимаем на плате RESET.
Всё готово!
- Возрадуйтесь.
|
|
|
|
16.05.2019, 18:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Чтобы не дергать туда-сюда перемычку, удобно кнопку-концевик (на али таких полно, где есть нормально открытый и нормально закрытый контакты) подцепить. В нормально замкнутом она должна позволять грузиться с флеша, а при замыкании — с бутлоадера.
А еще, инструкция для линукса намного короче: втыкаем все это дело в USB, при помощи dmesg смотрим, куда у нас сел преобразователь USB‹›UART (если он один, то будет /dev/ttyUSB0), затем нажимаем нашу кнопочку и, не отпуская ее, жмем и отпускаем reset. Потом отпускаем нашу кнопку — все, МК в режиме бутлоадера. В консольке пишем make flash и наблюдаем, как прошивка пишется в МК. Далее жмем reset — вуаля!
Если USB‹›UART умеет RTS/DTR, то можно boot и reset подцепить на них и соответствующим образом пропатчить stm32flash, в этом случае никаких телодвижений с кнопками совершать не нужно будет, но количество проводов к плате возрастет.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
16.05.2019, 18:47
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
...а чтобы не делать ни того, ни другого, ни третьего, просто дожидаемся прихода ST-Link, подключаем его четырьмя проводами и спокойно прошиваем прямо из того ПО, в котором же и пишем прогу.
В последствии, ST-Link нам поможет прошивать стм-ы и на других платах, на которых не выведена перемычка Boot0.
В том числе, и в самодельных платах, как например вот тут: две контактные площадки под штырьки для SWD
|
|
|
|
17.05.2019, 21:30
|
|
Вид на жительство
Регистрация: 09.08.2017
Сообщений: 362
Сказал спасибо: 7
Сказали Спасибо 31 раз(а) в 20 сообщении(ях)
|
Re: Попытка программирования STM32F103C8T6
Сообщение от NewWriter
|
В поле Port Name выбираем COM-порт с тем номером, под которым значится наш переходник
|
Как это ни странно, мой переходник регится в системе под номером СОМ20. Однако, при запуске программатора в списке его нет: 1, 3, 6-14. Справедливости ради в Диспетчере устройств у него восклицательный знак. Но заливку прошивки через ArduinoIDE производится.
Не... Дико извиняюсь - драйвер слетел. Восклицатель не зря система поставила.
Последний раз редактировалось AleksandrS_59; 17.05.2019 в 21:47.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:16.
|
|