Добавлено after 13 minutes 23 seconds: Короче фигвам получается, обновить как через UART неполучится, нужно сначала в проект файлики добавить USB хоста, а если камень голый то ничё не выйдет
Мне не плевать, мне необходима отладка кода + бесплатная IDE
Насколько я слышал Eclipse + gdb + openocd на это вполне способны. Но сам не проверял. Ну точнее как. openocd + dgb к камню вполне цепляются, и отлаживать в стиле gdb (консольными командами то есть) вполне возможно. Но вот по Eclipse и другим средам разработки не подскажу.
>TEHb< писал(а):
Так статья как раз и подтверждает, что с готовой платой проще начинать.
Так я и написал "кому как". Лично мне не нравится изучать новое семейство с готовых отладочных плат и прочей магии. Приятнее когда сам все с нуля сделал. И плату, и стартовый пример, и способ прошивки. А кто-то любит наоборот, из волшебных Cube-иков все собирать, не понимая, как оно устроено внутри. И плюсы есть у обоих подходов, как и, разумеется, у среднего. Тут уж, повторяю, каждому свое.
>TEHb< писал(а):
Ну какой начинающий вот так походя с кондачка возьмёт и спаяет программатор?
Эм-м-м... Я? Нет, если серьезно, переходник на UART так или иначе понадобится для отладки. А с ним на первых порах можно обойтись и без программатора. Потом да, проще купить, поскольку самостоятельное изготовление не даст какого-либо опыта (кроме разве что разводки и пайки плат). Ну мне еще "повезло" узнать про толщину текстолита. Впрочем, напоминаю про программатор на ft2232h. Ничуть не хуже того же st-link, но плюс возможность использования по другим назначениям. Как переходник на rs232, как программатор для avr, как логический анализатор. Да даже в повседневном использовании совместно со своей платкой, если не хочется городить usb и тому подобные сложные интерфейсы.
>TEHb< писал(а):
PS: у вас ссылка не работает.
То ли косяк форума, который к ссылке какой-то мусор добавил. То ли я как-то неправильно этим пользуюсь. Ладно, продублирую без тегов. Трехмерка на stm32f103: https://www.youtube.com/watch?v=afyTgpuA6sc USB на регистрах: https://habr.com/ru/articles/746704/ (там целый цикл, сама ссылка на составное устройство 2*CDC + флешка. На флешке все исходники - максимум опенсорса!) Цикл о контроллере gd32vf103 - почти та же stm-ка, но на ядре risc-v. Рассматривается в первую очередь программная часть, с ассемблера. https://karakatitsariscv.github.io/ Рассказ о моих собственных первых шагах. Можно посмеяться над косяками, для того и писалось. https://habr.com/ru/articles/456280/
Asmodey писал(а):
У STM еще выводы для переключения способов записи прошивок, что не всякий опытный радиолюбитель сразу прочухает.
Boot0, Boot1 что ли? А чего их чухать? Ну, по крайней мере, у меня с ними проблем не возникло. Еще когда изучал даташит и разводил плату, обратил внимание на странный вывод Boot0, не привязанный ни к портам, ни к периферии. Ну и поиск по тому же даташиту показал зачем он нужен и все варианты загрузок. Хотя накосячить все-таки сумел: не заметил, что stm не умеет по usb прошиваться, надо именно UART1, а на его ноги кнопку повесил. А уж со всякими jtag, swd вообще не знаю какие проблемы могут быть. Разве что обилие несовместимых разъемов, но это тоже мелочь и решается шлейфом - переходником.
Asmodey писал(а):
был несколько озадачен, когда на скорую руку развел и спаял макетку под какую-то STM32, воткнул в нее st-link, а оно не захотело прошиваться
И в чем оказалось дело? Если именно "не захотело прошиваться", а не "прошивка не стартовала", так с ходу и не представляю что там должно быть. Ну не ресет же забытый в самом деле.
Цитата:
кто-нибудь раскажите человеку, что stm32 можно прошивать через uart, а F4 даже через usb.
А надо было мою статью почитать ...у которой ссылка побиась... Про stm32f4 не знаю, а вот gd32vf103 через usb прошиваться умеет. Команда
Код:
dfu-util -a 0 -d 28e9:0189 -s 0x08000000 -D firmware.bin
. Если я правильно помню, vid:pid можно не указывать, найдет само. Ну или для stm-ок заменить на тамошние. Стартовый адрес тоже можно не писать. Чуть подробнее здесь: https://karakatitsariscv.github.io/1.intro.html
Цитата:
JackSmith, а это облегчит задачу или усложнит?
Облегчит, конечно. Если вдруг камень переведен в какой-то режим, где jtag/swd не подхватывают. Например, интерфейс выключен программно, или просто сон. Вроде бы можно connect-under-reset, но можно и с Boot0 поиграться. Ну и ту же gd32vf103 я и сейчас предпочитаю через UART шить, хотя возможность через jtag-программатор появилась. Просто когда изучал USB в stm32 случайно сделал как раз UART-программатор, способный дергать boot0, reset Ну не совсем случайно, конечно.
Короче фигвам получается, обновить как через UART неполучится, нужно сначала в проект файлики добавить USB хоста, а если камень голый то ничё не выйдет
Рефман с вами не согласен:
Цитата:
Embedded bootloader The embedded bootloader mode is used to reprogram the Flash memory using one of the following serial interfaces: •USART1 (PA9/PA10) •USART3 (PB10/11 and PC10/11) •CAN2 (PB5/13) •USB OTG FS (PA11/12) in Device mode (DFU: device firmware upgrade). The USART peripherals operate at the internal 16 MHz oscillator (HSI) frequency, while the CAN and USB OTG FS require an external clock (HSE) multiple of 1 MHz (ranging from 4 to 26 MHz). The embedded bootloader code is located in system memory. It is programmed by ST during production. For additional information, refer to application note AN2606.
вот только начинающему это вряд ли поможет. Каким макаром ему это облегчит? Вы как-то смотрите со своей колокольни, забыв, что когда-то всё в первый раз, притом, что и вообще с мк может быть первый раз, а не переход с 8 бит на 32, и не с ардуины притом.
вот только начинающему это вряд ли поможет. Каким макаром ему это облегчит?
Как поможет что? Возможность простым способом оживить контроллер после ошибки в коде? Возможность начать изучение вообще без программатора? Как по мне, это слишком очевидные вопросы чтобы на них отвечать.
Вы как-то смотрите со своей колокольни, забыв, что когда-то всё в первый раз, притом, что и вообще с мк может быть первый раз, а не переход с 8 бит на 32, и не с ардуины притом.
Ну, если бы вы читали мои посты, то знали бы, что я не просто помню свой первый опыт, но и описал его. Разумеется, знания AVR и работы без IDE помогли. Но не так сильно, как вы описываете. Скажем, неприятным открытием было разделение на даташит и рефман, необходимость писать какие-то стартапы, линкер-скрипты, отсутствие единой стандартной библиотеки, необходимость каких-то волшебных флагов компилятора. Но это особенности именно перехода, а не изучения с нуля, причем решаются поиском готового стартового кода. --- Какие у вас были психологические травмы при переходе с ардуины я без понятия, я-то о самом ее существовании узнал гораздо позже того, как наигрался с AVR на ассемблере и даже после того, как дошел до перехода там же на Си. Впрочем, было бы интересно послушать вашу историю. Что у вас там с ардуиной случилось?
Asmodey, по поводу не-прошиваться. Надеюсь вы не столкнетесь, но у камней stm32 есть еще одна замечательная фича - они могут не подключаться не потому, что у них заблокированы ноги SWD или чему-то еще, а банально (увы, вовсе не банально) потому, что имеется не согласованность кабеля с его ногами. Пару раз наступал и каждый раз было больно - улетало несколько часов на поиск ошибки, разблокировки-ли, возни с осциллографом, пока не приходило прозрение, что дело именно в кабеле. Причем, ни скорость соединения, ни длина шнурка качественно не влияли на наличие соединения. Вот так - кирпич, хоть как тыкай его иголками. Помогало согласование. Первый раз это было на плате F103, не помню какой. Потом на F030, и тут точно была моя плата. И, каждый раз в качестве отладчика ... ну да, куда без него - ST-Link v2 (китайский). Потом сменил отладчик и проблема с подключением по SWD как-то сама рассосалась.
ST-Link v2 (китайский) не могу запустить на работе, а дома работает. Сначала не работал с Кубом, прошивал отдельно ST-LINK Utility, но когда захотелось отлаживать, то пришлось решать проблему. Куб ругался на английском, пришлось переводить и делать, что просят - всё заработало. На работе не работает по причине кривой винды.
Это уже очень далеко от уровня начинающего микроконтроллерщика. Так-то и я после АВР и СТМ смог за неделю разобраться с семейством 430, поморгать диодиком в качестве разминки, а потом считать прошивку с целевого устройства и поправить её прямо в машкодах, Могу рассказать, если хотите. Добавил вычитывание нужных констант из специальной области флеша, куда записывал потом свои константы для каждого экземпляра устройства. Да, в микроконтроллерах от техаса я новичок, это было моё первое знакомство, однако и не подумаю утверждать, что это легко и просто. Это потребовало от меня УЖЕ владеть огромным объёмом знаний и опыта. Да и по-моему, проще разобраться как оно работает, если уже работает, чем понять почему оно не работает, если не работает. Так что я всё же за готовую отладку для начала. Позволяет сильно снизить порог вхождения. А уж свою плату всегда можно изготовить. Будет проще достичь этой высоты, если уже стоишь на некоторой ступеньке.
PS. Кстати, тоже с ардуинами познакомился гораздо позже, чем освоил АВРы. И мне она даже в чём-то понравилась. Ну то есть делать устройство на ней сложнее, чем на просто камне, но элементарные задачи типа сгенерировать два меандра разной частоты или засветить WS2812 делаются там весьма ловко. Но только задачи по-отдельности. Сразу две задачи уже могут не срастись вот так запросто.
А мне нет. Какой прок с того, что я когда-то в блокноте чего-то там корябал на асме под PIC16? Никаких ассоциаций с загрузчиком STM32 у меня с того не возникло, да и не могло возникнуть.
_________________ Астролябия-сама меряет, было бы что мерять!!!
У меня нет психологических травм с ардуиной, не стоит фантазировать..
Но это же вы писали о негативном опыте после ардуины. У меня такого опыта быть не может в принципе, значит вы писали либо о своем, либо об опыте кого-то знакомого. Неужели не хотите поделиться поучительной историей?
u37 писал(а):
потому, что имеется не согласованность кабеля с его ногами.
Что вы имеете в виду под несогласованностью кабеля с ногами? Как это должно проявляться и как с этим бороться? В любом случае, мне кажется, что прошивка по UART (а она идет на скорости 52 кБод) должна сработать.
>TEHb< писал(а):
Так-то и я после АВР и СТМ
После этих двоих вместе - возможно (про 430 ничего не могу сказать). Но от avr до arm тоже большая пропасть.
>TEHb< писал(а):
Могу рассказать, если хотите
Если считаете, что это будет интересно для тех, кто с вашим контроллером никогда дела не имел, то конечно. А если нужны соответствующие знания, то, увы, не оценю.
>TEHb< писал(а):
Так что я всё же за готовую отладку для начала. Позволяет сильно снизить порог вхождения
Так я и не спорю. Еще раз: я ведь описывал собственные прикючения, но не утверждал, что это оптимальный путь. Напротив, предостерег хотя бы от своих ошибок.
Но это же вы писали о негативном опыте после ардуины.
Разве? Вы умудряетесь читать между строк даже то, чего там нет... Всё, что я писал негативного про Ардуино вообще где-либо, это то, что она портит начинающего, оглупляет его. Заняться ARM, да ещё с ходу с Вашей информацией после Ардуино, где совсем иной подход - это просто как прийти к первоклашкам и начать читать им "Теорию поля".
Еще на старте с Cube, глядя на объем комп., думал, что оптимизации нет (default). Был прав: None (-O0) :ПП -> STM32F030F4P6, RAM: 1.62KB 40.62% и FLASH: 7.6KB 47.49% Ниже изменилось: Optimize for size: -Oz -> STM32F030F4P6, RAM: 1.62KB 40.62% и FLASH: 4.62KB 29.27%
Установил и Keil. На данный момент конфигурации чипа осуществляю через STM32 Cube MX -> в Keil. Вы были правы , думать про другое IDE (как Cube) забуду . Как быстрые, обычные меню, о которых не нужно читать, но которые интуитивно понятны, настройки, программа, компиляция выполняются очень быстро (частично +транслейт).
Да, и обновил ST-Link через меню, сейчас Load: одной кнопкой. И Debug работает .
Последний раз редактировалось veso74 Чт сен 07, 2023 22:19:48, всего редактировалось 4 раз(а).
ага... такая же печалька, и ещё надо быть уверенным, что там включено всё, а не где-то прописано что-то еще метров на 200-300 (что вполне может быть). Скриншотами экрана, где код
Добавлено after 3 hours 18 minutes 39 seconds: И ещё одну по М3 докинул (странно, что её не было), ибо "Это руководство должно присутствовать на столе любоrо разработчика, использующего в своей работе микроконтроллеры с ядром CortexM3" https://sunduk.radiokot.ru/view/?id=1694127728
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения