-
- После появления CubeIDE, для STM32 Keil, Iar, Segger и пр. плавно
уходят в туман. - dastun(26.04.2021 22:32)
- А потом возвращаются, когда надоедает преодолевать кривизну CubeIDE - AlexG(26.04.2021 22:55)
- Кривизна CubeIDE - такая же байка, как и прямизна всего остального. dastun(339 знак., 26.04.2021 23:33)
- А если нужен NXP или какой-нибудь CC1352 от TI? А может даже
gd32vf103? - evgeniy1294(26.04.2021 23:55)
- Я стал топить за CubeIDE в ответ на "...мне Keil больше нравится
(для STM32)...". У "...NXP или какой-нибудь CC1352 от TI? А может
даже gd32vf103?..." свои танцы. - dastun(27.04.2021 00:05)
- Нет там никаких танцев, все атоллики, CubeIde, CodeComposer студии
и прочие солюшены построены на базе эклипса, и как следствие
наследуют все его проблемы. Мостом же для связи МК с ide являются
всё те же openocd и gdb, а все эти хваленые плагины нужны только
для того, чтобы правильно задать команду запуска для openocd.
Что-нибудь типа: evgeniy1294(458 знак., 27.04.2021 00:48)
- А можете привести примеры программных сред, в которых удобно вести
отладку? - teap0t(27.04.2021 07:08)
- Ребят, вся я понимаю. Сам пользую IAR, и (привычка - вторая натура)
он меня устраивает. Но я реагировал на конкретную реплику. - teap0t(27.04.2021 10:16)
- Удобство - понятие очень субъективное. Мне удобен консольный gdb,
так как от него я получаю только ту информацию, которая мне нужна,
в том формате, который мне нужен. Куча цветастых окошечек в ide
меня отвлекает от работы и, обычно, очень раздражает. Работает при
этом все железобетонно, а не как в очередном багованом плагине от
эклипса, написанном индусами. Мой выбор не всем понравится, но
многие ide, типа code, предоставляют разработчику доступ к консоли,
не лишая его evgeniy1294(951 знак., 27.04.2021 12:21)
- Поделитесь ссылкой, а то сочетание "ide code" можно толковать
слишком широко. - teap0t(27.04.2021 18:35)
- VS Code. Обожаю эту штуку. - SciFi(27.04.2021 18:43, ссылка)
- я так и не научился его варить для отладки мк . Возможно стоит
снова попробовать... - Constantin24(27.04.2021 19:21)
- Типо вот так? evgeniy1294(27.04.2021 22:50, ссылка)
- благодарю, приятно смотреть. Constantin24(117 знак., 28.04.2021 20:51)
- Это процесс отладки гетерогенного процессора stm32mp15x. Пришлось
повозиться, чтобы запустить отладку, с одноядерными камнями должно
быть по-проще. Так ide прикольная, но настраивается очень долго и
нудно. - evgeniy1294(28.04.2021 23:23)
- меня смущают разговоры о том, что code не является ide, просто
редактор с кучей фич. Ходят слухи, что при больших проектах( это
каких?...) она начинает сыпаться и тормозит.ь Подтвердить и
опровергнуть не могу. Похоже у вас хороший опыт работы с ней, что
можете сказать? - Constantin24(29.04.2021 08:23)
- Пардон, что вклиниваюсь. А вы с какой целью интересуетесь? Не
смущайтесь, VS Code отличный софт, надо брать. - SciFi(29.04.2021 08:58)
- Вопрос. Как его задружить с J-Link и прикрутить пошаговую отладку с
брекпоинтами и заглядыванием во все регистры? - Звepoящep(01.05.2021 14:46)
- Может будет полезно. "Visual Studio Code for C/C++ with ARM
Cortex-M" - Ruslan(05.05.2021 07:12, ссылка)
- Спасибо, будем пробовать - symbions(05.05.2021 08:49)
- Готовлю примеры - evgeniy1294(01.05.2021 19:47)
- Буду весьма признателен. - Звepoящep(03.05.2021 13:18)
- Потихоньку заканчиваю, скоро выложу черновик. - evgeniy1294(03.05.2021 15:25)
- Пока писал статью, наткнулся на прикольный баг/фичу в
CLion. GDB. Он неявно модифицирует регистры толи систика, толи PLL, но мигать светодиод начинает сильно чащё. Именно при отладке, если позватьreset, monitor reset init, начинает работать корректно. Вообщем, нужно разбираться. - evgeniy1294(04.05.2021 14:25 - 14:31)- Ни разу это не CLion, фича проявляется при вызове monitor reset
init в gdb. - evgeniy1294(04.05.2021 14:30)
- А gdb, в свою очередь, передает в openocd reset init. Что означает
"немедленно перезапусти устройство и выполни reset-init скрипт" - evgeniy1294(04.05.2021 14:51)
- Ну вот и причина, в скрипте на таргет есть вот такой скрипт. Не думал, что такое есть, согласно документации функцию можно переопределить в своём board.cfg: evgeniy1294(515 знак., 04.05.2021 19:23)
- А gdb, в свою очередь, передает в openocd reset init. Что означает
"немедленно перезапусти устройство и выполни reset-init скрипт" - evgeniy1294(04.05.2021 14:51)
- Ни разу это не CLion, фича проявляется при вызове monitor reset
init в gdb. - evgeniy1294(04.05.2021 14:30)
- Пока писал статью, наткнулся на прикольный баг/фичу в
- Потихоньку заканчиваю, скоро выложу черновик. - evgeniy1294(03.05.2021 15:25)
- Буду весьма признателен. - Звepoящep(03.05.2021 13:18)
- Может будет полезно. "Visual Studio Code for C/C++ with ARM
Cortex-M" - Ruslan(05.05.2021 07:12, ссылка)
- Благодарю, импонирует своим функционалом, ощущением легкости при
работе с ней, intellisense хороший. Единственная среда, в которой
сразу зашла темная тема. Думал когда то в ней выполнять проекты. - Constantin24(29.04.2021 10:08)
- За чем же дело стало? У меня эта штука почти не требовала
настройки. Скачал, установил и уже через несколько минут начал
офигевать от её крутизны. - SciFi(29.04.2021 10:10)
- Средства у нас есть. У нас ума не хватает. @кот матроскин - Constantin24(29.04.2021 10:16)
- За чем же дело стало? У меня эта штука почти не требовала
настройки. Скачал, установил и уже через несколько минут начал
офигевать от её крутизны. - SciFi(29.04.2021 10:10)
- Там с рефакторингом кода на С не очень. Переименовать по всем
проекту не может. Правда мучал давно, может уже починили. - Ruslan(29.04.2021 09:14)
- не в тему вопрос будет, ради интереса: когда на с++ перейдете?) - Constantin24(29.04.2021 10:08)
- А зачем? Использовать классы для моргания светодиодом? ) Чтобы
писать на С++, надо очень хорошо представлять как это все под
капотом работает. Ruslan(53 знак., 29.04.2021 11:05)
- Ну как раз для "моргания светодиодами", когда их больше одного, C++
очень полезен :-) Samx(575 знак., 01.05.2021 23:06)
- "Все формы жизни имеют право на существование" ) Ruslan(348 знак., 02.05.2021 12:47)
- тогда уж Go - Constantin24(29.04.2021 20:31)
- Ну как раз для "моргания светодиодами", когда их больше одного, C++
очень полезен :-) Samx(575 знак., 01.05.2021 23:06)
- А зачем? Использовать классы для моргания светодиодом? ) Чтобы
писать на С++, надо очень хорошо представлять как это все под
капотом работает. Ruslan(53 знак., 29.04.2021 11:05)
- У меня переименовывает как надо, и по всему проекту тоже. А ещё
обнаружил, что поиск/замена с регулярными выражениями — это весчь. - SciFi(29.04.2021 09:18)
- Ну хорошо тогда. А есть отображение "call hierarchy" как в eclipse
? - Ruslan(29.04.2021 09:23, картинка)
- В жабаскрипте показывает, а в сишнике не хочет. Но мне "show
references" всегда хватало. - SciFi(29.04.2021 09:28)
- в eclipse кстати, не всегда эта штука для меня работает. приходится делать поиск обычным способом... - Constantin24(29.04.2021 10:09)
- В жабаскрипте показывает, а в сишнике не хочет. Но мне "show
references" всегда хватало. - SciFi(29.04.2021 09:28)
- Ну хорошо тогда. А есть отображение "call hierarchy" как в eclipse
? - Ruslan(29.04.2021 09:23, картинка)
- не в тему вопрос будет, ради интереса: когда на с++ перейдете?) - Constantin24(29.04.2021 10:08)
- Вопрос. Как его задружить с J-Link и прикрутить пошаговую отладку с
брекпоинтами и заглядыванием во все регистры? - Звepoящep(01.05.2021 14:46)
- Пардон, что вклиниваюсь. А вы с какой целью интересуетесь? Не
смущайтесь, VS Code отличный софт, надо брать. - SciFi(29.04.2021 08:58)
- меня смущают разговоры о том, что code не является ide, просто
редактор с кучей фич. Ходят слухи, что при больших проектах( это
каких?...) она начинает сыпаться и тормозит.ь Подтвердить и
опровергнуть не могу. Похоже у вас хороший опыт работы с ней, что
можете сказать? - Constantin24(29.04.2021 08:23)
- Это процесс отладки гетерогенного процессора stm32mp15x. Пришлось
повозиться, чтобы запустить отладку, с одноядерными камнями должно
быть по-проще. Так ide прикольная, но настраивается очень долго и
нудно. - evgeniy1294(28.04.2021 23:23)
- благодарю, приятно смотреть. Constantin24(117 знак., 28.04.2021 20:51)
- Типо вот так? evgeniy1294(27.04.2021 22:50, ссылка)
- я так и не научился его варить для отладки мк . Возможно стоит
снова попробовать... - Constantin24(27.04.2021 19:21)
- VS Code. Обожаю эту штуку. - SciFi(27.04.2021 18:43, ссылка)
- Нащщот вузов, агрессивной интеграции и привязки студентов к "правильному" продукту +100500. dastun(369 знак., 27.04.2021 14:41)
- Поделитесь ссылкой, а то сочетание "ide code" можно толковать
слишком широко. - teap0t(27.04.2021 18:35)
- Удобство - понятие очень субъективное. Мне удобен консольный gdb,
так как от него я получаю только ту информацию, которая мне нужна,
в том формате, который мне нужен. Куча цветастых окошечек в ide
меня отвлекает от работы и, обычно, очень раздражает. Работает при
этом все железобетонно, а не как в очередном багованом плагине от
эклипса, написанном индусами. Мой выбор не всем понравится, но
многие ide, типа code, предоставляют разработчику доступ к консоли,
не лишая его evgeniy1294(951 знак., 27.04.2021 12:21)
- мне Кейл для отладки удобен. По крайней мере есть всё, что мне
нужно. Есть только два минуса. Один связан с невозможностью
установить программный счетчик куда мне нужно. Но это из-за моей
привычки в АСМе. Как я понимаю с текстом на Си тут проблемки. Ну и
иногда напрягает невозможность увидеть значения временных
переменных типа int i. Когда что-то там крутится в цикле и не
можешь пройтись посмотреть. - Лaгyнoв(27.04.2021 08:52)
- Ну не знаю. Пишу PC=0x12345678, и всё работает. И переменные все
вижу. ЧЯДНТ? - SciFi(27.04.2021 09:01)
- Я думал понятно, про что речь. Речь про то, чтобы встать на строку
программы и скомандовать - шпарь отсюда. - Лaгyнoв(27.04.2021 11:48)
- Может я что-то не понял, но ведь в debug mode если кликнуть левой D++(197 знак., 28.04.2021 12:50 - 12:55)
- Хм-м-м... Спасибо добрый человек. Век живи, век учись. Сейчас
попробовал - реально перепрыгнул несколько строк, не стал делать,
чего не хотел. :-) - Лaгyнoв(28.04.2021 14:26)
- А разве актуальные переменные не отображаются в окошке "Call Stack
+local" D++(172 знак., 28.04.2021 19:52)
- ну вот, я столько нового про Кейл узнаю! Спасибо. Я это окошко что-то не пользовал. Буду знать - Лaгyнoв(28.04.2021 20:09)
- А разве актуальные переменные не отображаются в окошке "Call Stack
+local" D++(172 знак., 28.04.2021 19:52)
- О! Спасибо, бум знать. Но использовал ручную установку PC раз в пятилетку, так что не много потерял :-) - SciFi(28.04.2021 12:54)
- Хм-м-м... Спасибо добрый человек. Век живи, век учись. Сейчас
попробовал - реально перепрыгнул несколько строк, не стал делать,
чего не хотел. :-) - Лaгyнoв(28.04.2021 14:26)
- Нет, непонятно. Пример можно? Ведь это, вероятно, тоска о прошлом
счастливом опыте? Вот и хочется понять, что это за опыт был. - SciFi(27.04.2021 11:52)
- Я же сказал в самом начале, в любой АСМ-программе при отладке я
могу прыгнуть куда угодно, на любую строку. - Лaгyнoв(27.04.2021 13:04)
- Зачем?? Сколько в асме не отлаживался, никогда такой нужды не было.
При этом же стек и локальные переменные летят. - Andreas(27.04.2021 13:10)
- "У каждого свой вкус, сказал индус...." (с) :-) - Лaгyнoв(27.04.2021 16:45)
- А, это. Неинтересно. Ну и в сях то же самое с теми же оговорками,
что и в асме. - SciFi(27.04.2021 13:08)
- и в Си я могу повторить вызов функции, видя что она сделал фигню? К
примеру есть строка, обработана неправильно. Но чтоб повторить - ее
надо опять считать откуда-то, что не всегда легко доступно. А
раньше я в АСМе прыгал в точку перед вызовом ф-ии (там
подпрограммы) и по шагам ее уже проходил. Строка-то никуда не
делась. - Лaгyнoв(27.04.2021 16:49)
- А ещё функцию обработки строки можно оформить отдельным небольшим
проектом, который можно запускать целиком в симуляторе. Тоже такое
практиковал, чтобы отрабатывать чисто программные штуки, для
которых железо не нужно. - SciFi(27.04.2021 17:04)
- Ага, если заранее знаешь про возможные глюки. Обычно они тебя ждут за углом, когда ты ни сном ни духом. :-) - Лaгyнoв(27.04.2021 19:34)
- А не проще онлайн компилером проверить? Я недавно велосипед для
парсинга строк писал, очень удобно так отдельные куски проверять
было. - Andreas(27.04.2021 19:10)
- Я сам так же делаю. Но думаю, что Лагунову будет удобнее в привычном Кейле. - SciFi(27.04.2021 19:28)
- Синтетический порт, который постоянно рекламировал fk0. Последнее время логику отлаживаю именно этим методом, ускоряет разработку. - evgeniy1294(27.04.2021 17:50)
- Да, можно. В дизассемблере подсмотреть, по какому адресу лежит
инструкция вызова функции. После возврата из функции отмотать
счётчик команд на этот адрес (там будет всего несколько байт). Я
так делал, чтобы немного перепрыгнуть вперёд, но и назад не вижу
препятствий. - SciFi(27.04.2021 16:52)
- В это я могу даже и поверить. Но сложно. В моей студии ZDS II (где
у меня АСМ) я просто тыкаю мышку в строку текста и жму кнопку. - Лaгyнoв(27.04.2021 19:32)
- Это просто лень. Для возможности повторного вызова функции можно
добавить в код прибамбасы: SciFi(131 знак., 27.04.2021 19:57)
- как-то страшно (странно), мне говорили, что на Си go to ( к метке)
нельзя! - Лaгyнoв(27.04.2021 20:33)
- Врут-с. Но можно и без goto: SciFi(68 знак., 27.04.2021 21:16)
- Ну в общем понятно, спасибо. Может прижмет где - втисну. - Лaгyнoв(28.04.2021 07:24)
- Кстати, тему прибамбасов можно обобщить. Бывает полезно иметь
возможность поставить точку останова со сложным условием: SciFi(185 знак., 28.04.2021 08:06)
- ага, главное потом не забыть. :-) - Лaгyнoв(28.04.2021 08:46)
- Уж это решается легко. Есть разные способы вставлять в код напоминалки, которые трудно обойти. Или даже просто условная компиляция: SciFi(185 знак., 28.04.2021 09:04)
- Вах, спасибо. - teap0t(28.04.2021 08:36)
- ага, главное потом не забыть. :-) - Лaгyнoв(28.04.2021 08:46)
- Кстати, тему прибамбасов можно обобщить. Бывает полезно иметь
возможность поставить точку останова со сложным условием: SciFi(185 знак., 28.04.2021 08:06)
- gdb умеет вызов функций - evgeniy1294(27.04.2021 22:52)
- Ну в общем понятно, спасибо. Может прижмет где - втисну. - Лaгyнoв(28.04.2021 07:24)
- Врут-с. Но можно и без goto: SciFi(68 знак., 27.04.2021 21:16)
- как-то страшно (странно), мне говорили, что на Си go to ( к метке)
нельзя! - Лaгyнoв(27.04.2021 20:33)
- Это просто лень. Для возможности повторного вызова функции можно
добавить в код прибамбасы: SciFi(131 знак., 27.04.2021 19:57)
- В это я могу даже и поверить. Но сложно. В моей студии ZDS II (где
у меня АСМ) я просто тыкаю мышку в строку текста и жму кнопку. - Лaгyнoв(27.04.2021 19:32)
- А ещё функцию обработки строки можно оформить отдельным небольшим
проектом, который можно запускать целиком в симуляторе. Тоже такое
практиковал, чтобы отрабатывать чисто программные штуки, для
которых железо не нужно. - SciFi(27.04.2021 17:04)
- и в Си я могу повторить вызов функции, видя что она сделал фигню? К
примеру есть строка, обработана неправильно. Но чтоб повторить - ее
надо опять считать откуда-то, что не всегда легко доступно. А
раньше я в АСМе прыгал в точку перед вызовом ф-ии (там
подпрограммы) и по шагам ее уже проходил. Строка-то никуда не
делась. - Лaгyнoв(27.04.2021 16:49)
- Зачем?? Сколько в асме не отлаживался, никогда такой нужды не было.
При этом же стек и локальные переменные летят. - Andreas(27.04.2021 13:10)
- Я же сказал в самом начале, в любой АСМ-программе при отладке я
могу прыгнуть куда угодно, на любую строку. - Лaгyнoв(27.04.2021 13:04)
- Может я что-то не понял, но ведь в debug mode если кликнуть левой D++(197 знак., 28.04.2021 12:50 - 12:55)
- адрес сомнительный - Kpoк(27.04.2021 09:03)
- Да, нужно 0xDEADBEEF :)) - MBedder(27.04.2021 10:40)
- Я думал понятно, про что речь. Речь про то, чтобы встать на строку
программы и скомандовать - шпарь отсюда. - Лaгyнoв(27.04.2021 11:48)
- Ну не знаю. Пишу PC=0x12345678, и всё работает. И переменные все
вижу. ЧЯДНТ? - SciFi(27.04.2021 09:01)
- МПЛАБы старые, вестимо. - Kpoк(27.04.2021 07:58)
- Ребят, вся я понимаю. Сам пользую IAR, и (привычка - вторая натура)
он меня устраивает. Но я реагировал на конкретную реплику. - teap0t(27.04.2021 10:16)
- Да, всё так, и CubeIDE тормозит (иногда раздражающе), dastun(229 знак., 27.04.2021 00:56)
- Раньше на SystemWorkbench да со старым ноутом можно было чай ходить
пить при сборке) В Иаре было намного резвее. Сейчас ноут помощнее и
выполняет сборку в CubeIde без всяких тормозов - рекомендую)))
Глюков особых не наблюдаю, главное
не бежать впереди паровозане спешить, лечится переиндексацией файлов. Главное понять как устроено, хотя бы приблизительно. Constantin24(152 знак., 27.04.2021 19:41)- Константин, спасибо. dastun(455 знак., 27.04.2021 20:18)
- а чего там осваивать? эклипс эклипсом... если только искать какие либо плагины и настройки интересные. Хорошая бесплатная среда, для новичком самое то - Constantin24(28.04.2021 21:08)
- Вы с каким-то маниакальным упорством пытаетесь впарить людям,
которые ездят на БМВ - жигули. Да еще такие жигули, которые ездят
только по рельсам. Да еще нахваливаете, какие они хорошие и
неприхотливые. Я сам на БМВ не езжу :-) - только на жигулях, но не
по рельсам :-), а куда надо :-). И делаю потуги пересесть на БМВ
:-) - il-2(28.04.2021 06:47)
- Спасибо, очень ценное мнение. dastun(548 знак., 28.04.2021 13:19)
- Константин, спасибо. dastun(455 знак., 27.04.2021 20:18)
- CubeIde не может выгнать с поляны никого, просто за счет привязки к
конкретному вендору (думаю, можно обойти привязку и отлаживать что
угодно). Траханья стало меньше, потому что openocd и gdb, а не
потому что CubeIde. - evgeniy1294(27.04.2021 12:25)
- "Тёплое и мягкое", сезон 642, серия 018. dastun(417 знак., 27.04.2021 14:29)
- Нет средств для разработки под stm32, есть средства для разработки
под ARMv7. Это как раз то, о чем я и говорил, вендорлок в голове у
разработчика. - evgeniy1294(27.04.2021 15:35)
- Во, докопались до истины. dastun(522 знак., 27.04.2021 16:02)
- Я прекрасно понял вашу мысль, это вы не поняли мою, постараюсь
разъяснить более детально: evgeniy1294(1089 знак., 27.04.2021 17:38)
- Резюме (и для уважаемого Перворожденного тоже))) ) dastun(1560 знак., 27.04.2021 18:17)
- Ты едешь на жигулях по рельсам. Все, на что пригодны STM-овские
либы - HAL, SPL, Куб и прочая дребедень, написаная говно-индусами -
это проводить лабораторки в школах и ВУЗах. В изделиях их
категорически нельзя использовать. Это ясно любому мало-мальски
грамотному программеру, который хоть раз удосужился посмотреть что
там ВНУТРИ!!! Там хаос, ужас и маразм в N-ой степени. Все эти
библиотеки как-то работают со своими-же примерами. Хотя есть
исключения, когда без них не il-2(139 знак., 28.04.2021 06:59)
- Херню написал и сам поверил. Сравнил конструктор - "сделай сам/настрой для себя" с уже проверенным и настроенным инструментом, которым бери и
пользуйся :) В изделия STM-кие библиотеки встраиваются и нормально
работают, а кто не использует, тот не умеет готовить, ну а кому по
приколу самому и с нуля всё писать, то велкам, можете начать всё
переписывать. Если нужен зоопарк процессоров, и при этом желание
все в одной среде у тех судьба такая - красноглазить и "пилить" User_(59 знак., 28.04.2021 09:15)
- Это не инструмент, а гуано, сделаное неадекватными людьми. И насчет
"проверенного" инструмента - это и есть херня. Ошибок в этих
библиотеках - дофига. Причем их там столько много, что процесс их
исправления (который, надо отдать должное - идет) ничего не
улучшает. Я вот последнее время тружусь над портированием - за
неимением в ближайшем будущем процессоров STM32F103 мы закупили: il-2(610 знак., 28.04.2021 11:48)
- Этапесдец, я сразу и не понял. dastun(1326 знак., 28.04.2021 13:51)
- хозяин барин, можешь всё переписать. А про дофига ошибок в STD
Peripheral Lib конкретнее можно? - User_(28.04.2021 12:26)
- Все-же не удержался и нашел кое что про USB il-2(112 знак., 28.04.2021 14:45, ссылка, ссылка)
- Писал я здесь про ошибки в STMовских либах, и в Кейловских. Примеры приводил. А уж про USB... это ппц чего там было. Все писал и ссылки кидал раза 3-5, когда аналогичная тема (как сейчас) всплывала. Искать не буду - надоело. Через пару месяцев опять всплывает подобная тема. - il-2(28.04.2021 14:36)
- Лично видел две: с I2C и в USB Device. USB давно исправили, про I2C
- не в курсе. Но бага с USB была настолько эпичной, что говорит о
качестве кода больше тысячи слов. - LightElf(28.04.2021 12:30)
- I2C из библиотеки не использовал в stm32f4xx сам аппаратный I2C
глюкавый изначально. А где там USB в Std? В
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 например вообще про USB не
нахожу упоминания. Была отдельная STM32_USB_Device_Library, в каких
то версиях глюк с VCP был точно, на форуме ST он описывался. - User_(28.04.2021 12:46)
- Давно было, в нынешних версиях не ориентируюсь. Моя логика была
такая: взял то, что на тот момент выдавалось на сайте ST. Копнул,
огреб багу с серийным номером (вообще днище). Сделал по-своему.
Работает - не трогаю. Ну и сама идеология (которая была тогда) мне
не зашла. На мой взгляд - ни рыба ни мясо, хотя тут еще и специфика
самих камней играет рояль. Взять, к примеру, таймеры. Классные,
навороченные - но зачем-то все разные. Реверсивные/не реверсивные;
с выходами и без; с LightElf(201 знак., 28.04.2021 13:03)
- Это выходит нельзя просто в конфиге поменять например UART1 на
UART3 , надо еще и код лопатить? - Andreas(28.04.2021 13:23)
- Смотря какой функционал от UART используется. Если нужно просто
115200-8-N-1 - то просто заполняешь пяток регистров за пять минут с
перекуром. Если нужно что-то специфическое (CTS/RST, RS485, LIN,
ИК-передатчик, смарт-карта, DMA) - то сначала по даташиту выбираешь
UART, на котором есть нужный функционал. Потом смотришь, не
пересекается ли он по ногам и по каналам DMA с чем другим нужным.
Утрясаешь это безобразие, если понадобится. Потом за десять минут
пишешь код напрямую на LightElf(80 знак., 28.04.2021 15:45)
- Это одна из причин, почему я люблю C8051F380 (efm8), там всего 3
регистра для Uart/spi - для управления, делителя и данных. А шина
позволяет двигать Spi и т.д по всем ногам почти. Win! - Costic(29.04.2021 12:42)
- Ну оно такое. Чем больше фич - тем больше битиков для конфигурации. Аппаратный flow-control вкл/выкл, аппаратное управление трансивером RS485 - вкл/выкл, аппаратный адрес - вкл/выкл и тыды. - LightElf(29.04.2021 15:36)
- так у любого 8-битника разве не так? У моего Z8 бит включения UART, количество стоповых бит и скорость. Всё. Тоже в 3-х регистрах. SPi - 2 регистра. - Лaгyнoв(29.04.2021 15:15)
- Сейчас тенденция однако, :) чтобы чего-то запустить из периферии надо освоить кучу страниц pdf-а и познать комбинации настроек разных регистров и тогда какой-то USART, SPI, CAN, оживет, а в старых 8-ми битниках хватало настроить несколько регистров и осилить 2-3 страницы Pdf-а - User_(29.04.2021 12:55)
- На регистрах я и сам знаю как, там все просто и в свои ф-ции я просто номер порта передаю, а уже в них по номеру из таблиц указатели на структуру, пины вкл клока, номера прерываний берутся. Интересно как болезненно такое в стшной либе. А доп функции(ооочень редко нужные) я обычно дефайнами вкл/выкл и тут уж если выбрал не тот уарт - лови исключение. - Andreas(28.04.2021 15:54)
- Это одна из причин, почему я люблю C8051F380 (efm8), там всего 3
регистра для Uart/spi - для управления, делителя и данных. А шина
позволяет двигать Spi и т.д по всем ногам почти. Win! - Costic(29.04.2021 12:42)
- в большинстве случаев можно. - User_(28.04.2021 13:30)
- Смотря какой функционал от UART используется. Если нужно просто
115200-8-N-1 - то просто заполняешь пяток регистров за пять минут с
перекуром. Если нужно что-то специфическое (CTS/RST, RS485, LIN,
ИК-передатчик, смарт-карта, DMA) - то сначала по даташиту выбираешь
UART, на котором есть нужный функционал. Потом смотришь, не
пересекается ли он по ногам и по каналам DMA с чем другим нужным.
Утрясаешь это безобразие, если понадобится. Потом за десять минут
пишешь код напрямую на LightElf(80 знак., 28.04.2021 15:45)
- в комплекте с std lib идут примеры. Если их брать за основу и
работать по аналогии, то проблем не обнаружено. Можно долго
рассуждать о количестве строк в инициализации и прочих "вкусах", но
оно там в большинстве рабочее. Всякие там таймеры, SPI, DMA, CAN,
USART, порты и т.д. все это работает в STD lib - User_(28.04.2021 13:12)
- Я, видимо, непонятно выразился. Зачем нужен уровень абстракции,
если он ничего не абстрагирует? Ну заменили при ините DMA
используемый макрос с LightElf(239 знак., 28.04.2021 13:21)
- то что оно все не идеально, это понятно. Но когда надо быстро
запустить, то открыв пример с работой данной периферии все
становится понятно. Если начать использовать std lib без примеров,
то в ней еще больше запутаешься. Там алгоритм действий простой: 1.
открыл пример. 2. повторил использование, слегка подправив под свою
задачу. Без примеров полезность std lib уменьшается, но не
отменяется. :) Можно до дыр зачитывать pdf чтобы настроить USART, а
можно просто по примеру User_(420 знак., 28.04.2021 13:40)
- Ну вот как-то так: LightElf(330 знак., 28.04.2021 15:58)
- Кстати, прерывания зачастую не нужны, подключаю DMA. На приём
закольцованный режим, если в главном цикле успевать выгребать, то
кольцевой буфер не переполнится. А на отправку бывает достаточно
каждую посылку делать одной пачкой DMA. SciFi(791 знак., 28.04.2021 16:45)
- Прием - так же, передачу - когда как, по потребности. - LightElf(28.04.2021 18:32)
- Нафиг CR2 и CR3 обнулять? Там и так нули. - SciFi(28.04.2021 16:33)
- UART мог уже использоваться ранее в другом режиме - LightElf(28.04.2021 16:45)
- А вот не надо пускать на территорию кого попало, тогда и не будет
использоваться непонятно когда и как :-) - SciFi(28.04.2021 16:46)
- А ежели системный бут порезвился? Или его тоже не пускаем? - Andreas(28.04.2021 16:53)
- А вдруг? :) - LightElf(28.04.2021 16:51)
- А вот не надо пускать на территорию кого попало, тогда и не будет
использоваться непонятно когда и как :-) - SciFi(28.04.2021 16:46)
- UART мог уже использоваться ранее в другом режиме - LightElf(28.04.2021 16:45)
- Кстати, прерывания зачастую не нужны, подключаю DMA. На приём
закольцованный режим, если в главном цикле успевать выгребать, то
кольцевой буфер не переполнится. А на отправку бывает достаточно
каждую посылку делать одной пачкой DMA. SciFi(791 знак., 28.04.2021 16:45)
- Другими словами, на чём примеры сделаны, на том и кодим. Хоть на
васике. Если бы примеры были на голых регистрах, нам тут даже не о
чем было бы спорить :-) - SciFi(28.04.2021 13:40)
- Коллеги, LL нашефсё! - dastun(28.04.2021 13:53)
- когда начинал, LL еще не было, в новых проектах попробую. - User_(28.04.2021 14:24)
- Вот в помощь для F4 и F0 dastun(4 знак., 28.04.2021 21:04, ссылка, ссылка)
- LL нормально, тупые обертки над битовыми операциями. Использую на G0. - michas(28.04.2021 18:08)
- когда начинал, LL еще не было, в новых проектах попробую. - User_(28.04.2021 14:24)
- истину глаголишь :) , но даташит читать приходиться, а учитывая их
качество примеры облегчают существенно процесс понимания. В итоге,
проверку в железе никто не отменял, хоть std используй, хоть всё
ручками перепиши, тут уже все глюки проверяются и исправляются. - User_(28.04.2021 13:43 - 13:45)
- А вот с этого момента поподробнее, пожалуйста. Что там с качеством
даташитов? И желательно с примерами. - SciFi(28.04.2021 13:44)
- Им можно их улучшать. Есть стиль оформления, когда описывается
периферия, потом идет краткое итого - как настроить по шагам,
буквально делай раз, делай два и т.д. Вот таким подходом STM
похвастаться не может. Такое у них встречается не всегда. - User_(28.04.2021 13:58)
- У F0 хороши примеры в конце Reference Manual - LightElf(28.04.2021 15:47)
- Им можно их улучшать. Есть стиль оформления, когда описывается
периферия, потом идет краткое итого - как настроить по шагам,
буквально делай раз, делай два и т.д. Вот таким подходом STM
похвастаться не может. Такое у них встречается не всегда. - User_(28.04.2021 13:58)
- А вот с этого момента поподробнее, пожалуйста. Что там с качеством
даташитов? И желательно с примерами. - SciFi(28.04.2021 13:44)
- Коллеги, LL нашефсё! - dastun(28.04.2021 13:53)
- Ну вот как-то так: LightElf(330 знак., 28.04.2021 15:58)
- то что оно все не идеально, это понятно. Но когда надо быстро
запустить, то открыв пример с работой данной периферии все
становится понятно. Если начать использовать std lib без примеров,
то в ней еще больше запутаешься. Там алгоритм действий простой: 1.
открыл пример. 2. повторил использование, слегка подправив под свою
задачу. Без примеров полезность std lib уменьшается, но не
отменяется. :) Можно до дыр зачитывать pdf чтобы настроить USART, а
можно просто по примеру User_(420 знак., 28.04.2021 13:40)
- Я, видимо, непонятно выразился. Зачем нужен уровень абстракции,
если он ничего не абстрагирует? Ну заменили при ините DMA
используемый макрос с LightElf(239 знак., 28.04.2021 13:21)
- Это выходит нельзя просто в конфиге поменять например UART1 на
UART3 , надо еще и код лопатить? - Andreas(28.04.2021 13:23)
- Давно было, в нынешних версиях не ориентируюсь. Моя логика была
такая: взял то, что на тот момент выдавалось на сайте ST. Копнул,
огреб багу с серийным номером (вообще днище). Сделал по-своему.
Работает - не трогаю. Ну и сама идеология (которая была тогда) мне
не зашла. На мой взгляд - ни рыба ни мясо, хотя тут еще и специфика
самих камней играет рояль. Взять, к примеру, таймеры. Классные,
навороченные - но зачем-то все разные. Реверсивные/не реверсивные;
с выходами и без; с LightElf(201 знак., 28.04.2021 13:03)
- I2C из библиотеки не использовал в stm32f4xx сам аппаратный I2C
глюкавый изначально. А где там USB в Std? В
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 например вообще про USB не
нахожу упоминания. Была отдельная STM32_USB_Device_Library, в каких
то версиях глюк с VCP был точно, на форуме ST он описывался. - User_(28.04.2021 12:46)
- Пробую для этих целей внедрять BSP, который уникален для каждой
платы. Смысл в том, что вызов функции, завязанной на работу с
железом, например LedGreenOn(), описывается отдельно для каждой
платы: evgeniy1294(530 знак., 28.04.2021 12:05)
- BSP скорее для проца должен быть. gpio_set_pin(uint32_t pin) един для stm32f0, stm32f1, MKL27, lpc1850... - Andreas(28.04.2021 12:33)
- Я тоже о таком подумывал. Но, немного поразмыслив, рассудил, что в моей ситуации геморроя получится больше, чем выхлопа, и забил... - SciFi(28.04.2021 12:20)
- Это не инструмент, а гуано, сделаное неадекватными людьми. И насчет
"проверенного" инструмента - это и есть херня. Ошибок в этих
библиотеках - дофига. Причем их там столько много, что процесс их
исправления (который, надо отдать должное - идет) ничего не
улучшает. Я вот последнее время тружусь над портированием - за
неимением в ближайшем будущем процессоров STM32F103 мы закупили: il-2(610 знак., 28.04.2021 11:48)
- красиво сказано, но .... приходится использовать. :-) - Лaгyнoв(28.04.2021 07:26)
- Херню написал и сам поверил. Сравнил конструктор - "сделай сам/настрой для себя" с уже проверенным и настроенным инструментом, которым бери и
пользуйся :) В изделия STM-кие библиотеки встраиваются и нормально
работают, а кто не использует, тот не умеет готовить, ну а кому по
приколу самому и с нуля всё писать, то велкам, можете начать всё
переписывать. Если нужен зоопарк процессоров, и при этом желание
все в одной среде у тех судьба такая - красноглазить и "пилить" User_(59 знак., 28.04.2021 09:15)
- А он умеет чужие камни? - Kpoк(27.04.2021 20:09)
- Класс! )))))))))))))))))))))))) dastun(7 знак., 27.04.2021 20:22, ссылка)
- Ну прое балл..... - Kpoк(27.04.2021 21:13)
- Да ладно, тем более, вопрос оказался не пустым. dastun(202 знак., 27.04.2021 21:17)
- Ну прое балл..... - Kpoк(27.04.2021 21:13)
- Класс! )))))))))))))))))))))))) dastun(7 знак., 27.04.2021 20:22, ссылка)
- Ты едешь на жигулях по рельсам. Все, на что пригодны STM-овские
либы - HAL, SPL, Куб и прочая дребедень, написаная говно-индусами -
это проводить лабораторки в школах и ВУЗах. В изделиях их
категорически нельзя использовать. Это ясно любому мало-мальски
грамотному программеру, который хоть раз удосужился посмотреть что
там ВНУТРИ!!! Там хаос, ужас и маразм в N-ой степени. Все эти
библиотеки как-то работают со своими-же примерами. Хотя есть
исключения, когда без них не il-2(139 знак., 28.04.2021 06:59)
- Резюме (и для уважаемого Перворожденного тоже))) ) dastun(1560 знак., 27.04.2021 18:17)
- Ну вот с конкретной нынешней ситуевиной я усиленно слезаю с STM32
на всякое разное. Поскольку всегда без куба обходился - то не так
уж и страшно. Че бы я делал, если бы плотно присел на куб - пес его
знает. - LightElf(27.04.2021 16:05)
- Ну и? Продолжите мысль!? - dastun(27.04.2021 16:17)
- "Не надо лезть на куб, слазить больно"? :-) - SciFi(27.04.2021 16:19)
- Не надо брать узкозаточенные инструменты. - LightElf(27.04.2021 16:45)
- Не надо мыслить и изъясняться лозунгами. dastun(214 знак., 27.04.2021 17:03)
- STM32 - решают, а вот узкозаточенные на STM32 инструменты - создают
проблемы. - LightElf(27.04.2021 17:09)
- ??? Опять лозунги! dastun(208 знак., 27.04.2021 17:21)
- STM32 - решают, а вот узкозаточенные на STM32 инструменты - создают
проблемы. - LightElf(27.04.2021 17:09)
- Не надо мыслить и изъясняться лозунгами. dastun(214 знак., 27.04.2021 17:03)
- Да с чего бы с него слезать и с чего бы больно, если всё-таки? dastun(631 знак., 27.04.2021 16:35)
- Сроки поставки от 240 дней на основные линейки STM32, кагбэ, не
оставляют выбора - LightElf(27.04.2021 16:44)
- Ну я изначально вот на это изделие намекал Там срок тепримый - Kpoк(27.04.2021 20:01, ссылка)
- Там же 4 шт в наличии всего - LightElf(28.04.2021 00:42)
- Эти же 4 штуки у Элитана. А далее : от 383 дней - Kpoк(28.04.2021 08:05)
- Мне хватит на год :-) - Kpoк(28.04.2021 07:13)
- Там же 4 шт в наличии всего - LightElf(28.04.2021 00:42)
- это про какие количества в месяц? Если десятки и сотни штук - пошел
да купил. Цена конечно не как в 2019 (меньше 300 руб), но и не в 10
раз. - Лaгyнoв(27.04.2021 19:37, ссылка)
- Без Ethernet - в топку :) - LightElf(28.04.2021 00:36)
- Это с Ethernet - "основная линейка"? Мой L476 имеет USB OTG, 6
UART-ов, прорву разных интерфейсов (о некоторых я только недавно
узнал). Ну да, Ethernet-а нет. Зато в наличии больше 800 штук в
течение нескольких дней. По 660 руб. Корпус LQFP. В наши времена
совершенно непугающая цена. :-) - Лaгyнoв(28.04.2021 07:31)
- У меня Ethernet - основной интерфейс, все вокруг него построено.
Потому - так. Была мысль перейти с F4 на H7 (некоторые модели пока
доступны), но они не pin-to-pin совместимы. Ежели все равно менять
плату - то зачем держаться за ST? - LightElf(28.04.2021 08:39)
- ну надо признать, что "Ethernet - основной интерфейс" - далеко не
мэйнстрим. :-) - Лaгyнoв(28.04.2021 08:47)
- Просто мы молчаливое большинство. - SciFi(28.04.2021 08:48)
- ну надо признать, что "Ethernet - основной интерфейс" - далеко не
мэйнстрим. :-) - Лaгyнoв(28.04.2021 08:47)
- У меня Ethernet - основной интерфейс, все вокруг него построено.
Потому - так. Была мысль перейти с F4 на H7 (некоторые модели пока
доступны), но они не pin-to-pin совместимы. Ежели все равно менять
плату - то зачем держаться за ST? - LightElf(28.04.2021 08:39)
- Это с Ethernet - "основная линейка"? Мой L476 имеет USB OTG, 6
UART-ов, прорву разных интерфейсов (о некоторых я только недавно
узнал). Ну да, Ethernet-а нет. Зато в наличии больше 800 штук в
течение нескольких дней. По 660 руб. Корпус LQFP. В наши времена
совершенно непугающая цена. :-) - Лaгyнoв(28.04.2021 07:31)
- Без Ethernet - в топку :) - LightElf(28.04.2021 00:36)
- Коллега, ещё раз: Вы правы, dastun(283 знак., 27.04.2021 17:04)
- Еще раз: поменять процессор на более другой гораздо проще, если
код/среда разработки не заточена на конкретного производителя. LightElf(111 знак., 27.04.2021 17:12)
- Мои иллюзии, Души контузии... dastun(596 знак., 27.04.2021 17:39)
- Возможно просто разные области. У меня есть проекты, которые живут уже лет 15. За это время процессор (производитель и ядро) меняется уже в четвертый раз. Большая часть кода - стабильна. Периодически добавляются кое-какие мелкие новшества и иногда они распространяются на ранее выпущенные изделия. Завязываться на решения от вендора - с ума сойти можно. - LightElf(27.04.2021 18:11)
- Мои иллюзии, Души контузии... dastun(596 знак., 27.04.2021 17:39)
- Еще раз: поменять процессор на более другой гораздо проще, если
код/среда разработки не заточена на конкретного производителя. LightElf(111 знак., 27.04.2021 17:12)
- Ну я изначально вот на это изделие намекал Там срок тепримый - Kpoк(27.04.2021 20:01, ссылка)
- Сроки поставки от 240 дней на основные линейки STM32, кагбэ, не
оставляют выбора - LightElf(27.04.2021 16:44)
- Не надо брать узкозаточенные инструменты. - LightElf(27.04.2021 16:45)
- "Не надо лезть на куб, слазить больно"? :-) - SciFi(27.04.2021 16:19)
- Ну и? Продолжите мысль!? - dastun(27.04.2021 16:17)
- Я прекрасно понял вашу мысль, это вы не поняли мою, постараюсь
разъяснить более детально: evgeniy1294(1089 знак., 27.04.2021 17:38)
- У этой проблемы есть две крайности. Вторая тоже так себе. А пагубность первой зачастую преувеличена. - SciFi(27.04.2021 15:38)
- Во, докопались до истины. dastun(522 знак., 27.04.2021 16:02)
- Нет средств для разработки под stm32, есть средства для разработки
под ARMv7. Это как раз то, о чем я и говорил, вендорлок в голове у
разработчика. - evgeniy1294(27.04.2021 15:35)
- "Тёплое и мягкое", сезон 642, серия 018. dastun(417 знак., 27.04.2021 14:29)
- Раньше на SystemWorkbench да со старым ноутом можно было чай ходить
пить при сборке) В Иаре было намного резвее. Сейчас ноут помощнее и
выполняет сборку в CubeIde без всяких тормозов - рекомендую)))
Глюков особых не наблюдаю, главное
- А можете привести примеры программных сред, в которых удобно вести
отладку? - teap0t(27.04.2021 07:08)
- Нет там никаких танцев, все атоллики, CubeIde, CodeComposer студии
и прочие солюшены построены на базе эклипса, и как следствие
наследуют все его проблемы. Мостом же для связи МК с ide являются
всё те же openocd и gdb, а все эти хваленые плагины нужны только
для того, чтобы правильно задать команду запуска для openocd.
Что-нибудь типа: evgeniy1294(458 знак., 27.04.2021 00:48)
- Я стал топить за CubeIDE в ответ на "...мне Keil больше нравится
(для STM32)...". У "...NXP или какой-нибудь CC1352 от TI? А может
даже gd32vf103?..." свои танцы. - dastun(27.04.2021 00:05)
- А если нужен NXP или какой-нибудь CC1352 от TI? А может даже
gd32vf103? - evgeniy1294(26.04.2021 23:55)
- Кривизна CubeIDE - такая же байка, как и прямизна всего остального. dastun(339 знак., 26.04.2021 23:33)
- А потом возвращаются, когда надоедает преодолевать кривизну CubeIDE - AlexG(26.04.2021 22:55)
- После появления CubeIDE, для STM32 Keil, Iar, Segger и пр. плавно
уходят в туман. - dastun(26.04.2021 22:32)