STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

Здравствуйте. Нужно оценочное мнение. Хочу в девайс добавить функционал удаленного обновления прошивки. Т-е физического доступа к самому устройству не предполагается. Все что имеется - линия 485 для связи с внешним миром.
Возможно ли из основной программы перенаправить выполнение во встроенный бутлоадер? Но даже если это возможно, то возможен вариант сбоя при передаче прошивки, и тогда новая прошивка не стартанет, и снова передать контроль бутлоадеру некому.
Я видел подход, когда возле МК ставится флешка. В таком случае новая прошивка льется туда, потом сверяются контрольные суммы и если все ок - МК перешивает сам себя.
Может у кого есть такой опыт? Подскажите правильное направление.
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

Ярослав555 писал(а):ставится флешка. В таком случае новая прошивка льется туда, потом сверяются контрольные суммы и если все ок - МК перешивает сам себя.
по-моему, единственно приемлемое решение. тем более что абсолютно все "настоящие" перепрошиваемые устройства так работают - хоть тот же роутер возьмите, хоть мобильник.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
smalcom
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн фев 08, 2016 10:57:14

Re: STM32 новичку в ARM что к чему

Сообщение smalcom »

Возможно ли из основной программы перенаправить выполнение во встроенный бутлоадер?
У STM32 нет определённых областей а-ля BOOT в AVR. Можно переходить куда угодно.
Но даже если это возможно, то возможен вариант сбоя при передаче прошивки, и тогда новая прошивка не стартанет, и снова передать контроль бутлоадеру некому.
Не просто возможно, а будет очень часто.
Я видел подход, когда возле МК ставится флешка.
Да - это хороший пример. Но если нет возможности добавить флешку и МК достаточно объёмный, то можно разделить адресное пространство внутренней памяти программ на три части: 1 - загрузчик, 2 - основная программа, 3 - сохранённая программа. Загрузчик качает программу и сохраняет её в область 3, проверяет, а затем копирует в область 2.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="smalcom",url="/forum/viewtopic.php?p=3697467#p3697467"]Да - это хороший пример. Но если нет возможности добавить флешку и МК достаточно объёмный, то можно разделить адресное пространство внутренней памяти программ на три части: 1 - загрузчик, 2 - основная программа, 3 - сохранённая программа. Загрузчик качает программу и сохраняет её в область 3, проверяет, а затем копирует в область 2.[/uquote]
Да нет, есть возможность. Камешек 070й, на 128 кБ. Обычные флешки копейки стоят. Здесь FRAM не нужен :))) Просто по кодозатратам больше и дольше, потому как опыт новый. Спасибо за ответы, видимо так и сделаю.
Реклама
Эиком - электронные компоненты и радиодетали
jcxz
Мудрый кот
Сообщения: 1726
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: STM32 новичку в ARM что к чему

Сообщение jcxz »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3697289#p3697289"]Я видел подход, когда возле МК ставится флешка. В таком случае новая прошивка льется туда, потом сверяются контрольные суммы и если все ок - МК перешивает сам себя.[/uquote]
Так и следует делать. Иногда можно обойтись без внешней флешки - использовать в этом качестве половину флешь программ МК (но это менее удобно).

Добавлено after 2 minutes 54 seconds:
[uquote="smalcom",url="/forum/viewtopic.php?p=3697467#p3697467"]Да - это хороший пример. Но если нет возможности добавить флешку и МК достаточно объёмный, то можно разделить адресное пространство внутренней памяти программ на три части: 1 - загрузчик, 2 - основная программа, 3 - сохранённая программа. Загрузчик качает программу и сохраняет её в область 3, проверяет, а затем копирует в область 2.[/uquote]
О, уже написали!
Разве что можно ещё добавить, что эти части должны находиться в отдельных секторах стирания флешь МК. Если в качестве буфера используется внешняя flash, то тогда достаточно чтобы в отдельных секторах стирания были загрузчик и основное ПО.
Реклама
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6303
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: STM32 новичку в ARM что к чему

Сообщение Asmodey »

Вопрос о программаторе для STM32 здесь звучал, наверное, не раз. Но все же спрошу - что лучше приобрести для программирования этих МК? На Алиэкспресс в основном два типа программаторов предлагается, вот такие как на картинках:

Изображение

Изображение

Ссылки на лоты с этими программаторами:
Первый https://ru.aliexpress.com/item/32869967 ... 2e0e9dAwCo
Второй https://ru.aliexpress.com/item/32796459 ... 2e0e9dAwCo

По информации найденной в интернете первый не умеет управлять питанием программируемого микроконтроллера. По комментариям к заказам на Алиэкспресс второй умеет рулить питанием целевого девайса. Так ли это? Опять же из комментов с Али узнал, что второй программатор мало чем отличается от первого. К тому же пишут, что в последнее время во втором не хватает какой-то микросхемы, вроде буферной памяти (раньше как будто была, но потом упростили). Стоит ли брать второй? Есть ли какие-то преимущества кроме очевидных (подключается кабелем, не нужно тыкать донгл в USB разъем системника и тянуть от него провода к плате с микроконтроллером)? Для чего нужен широкий разъем под шлейф на втором программаторе?

Еще вопрос - эти программаторы могут использоваться в качестве отладчиков? Или нужен отдельный отладчик для проверки работы залитой в МК программы в IDE (установка точек остановки программы, получение значений переменных и состояния регистров микроконтроллера)?

Если без отдельного отладчика никак, можно ли использовать такое устройство:

Изображение

Ссылка на лот с преобразователем https://ru.aliexpress.com/item/32814913 ... 2e0e9dAwCo

По какому интерфейсу производится отладка STM32? Если по USART, то нельзя ли обойтись таким преобразователем USB-USART?

Изображение

Ссылка на лот с преобразователем: https://ru.aliexpress.com/item/32670594 ... b201603_60
У меня, правда, не на CP2102, а на CH340G, но думаю, большой разницы между ними нет.
PRG01.JPG
(26.71 КБ) 577 скачиваний
PRG02.JPG
(30.01 КБ) 609 скачиваний
Otladchic01.JPG
(32.22 КБ) 674 скачивания
Otladchic02.JPG
(22.21 КБ) 634 скачивания
Астролябия-сама меряет, было бы что мерять!!!
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

Шить ли st-link'ом — на любителя. Лично я предпочитаю шить через бутлоадер. А, скажем, приличные чипы (взять те же STM32F0x2) вообще через DFU можно шить — т.е. никакой программатор не нужен! Прошил, нажал reset и работай себе через USB!
Если разработчик видит смысл в использовании отладчика вместо обычных отладочных сообщений через консоль, то может быть вообще имеет смысл перешить st-link в j-link и работать в SES. Но, повторю, лично я категорически против такого подхода!

Насчет сохранения данных во флеш-памяти МК, я вот такую штукенцию сделал. Используются все свободные страницы памяти (т.е. писать туда можно очень много, особенно учитывая то, что минимум аж 5 тысяч перезаписей гарантируется), сделан бинарный поиск (т.о. поиск последних сохраненных данных требует всего-то пяти-девяти итераций, а не сотен или тысяч как при линейном поиске)...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

Asmodey писал(а):что лучше приобрести для программирования этих МК?
Любой подойдет.
Asmodey писал(а):Еще вопрос - эти программаторы могут использоваться в качестве отладчиков?
ST-Link это не программатор, а отладчик. Прошивка МК это одна из функций отладчика.
Немного об отладке. http://purebasic.mybb.ru/viewtopic.php?id=564
Asmodey писал(а):Если по USART, то нельзя ли обойтись таким преобразователем USB-USART?
По USART можно только залить или прочитать прошивку, а отладка производится по интерфейсу JTAG или SWD, т. е. нужен ST-Link или другой отладчик.
Eddy_Em писал(а):Шить ли st-link'ом — на любителя.
Asmodey про отладку спрашивал.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

[uquote="Мурик",url="/forum/viewtopic.php?p=3699420#p3699420"]Asmodey про отладку спрашивал.[/uquote]
Так я и про отладку отвечал!
На мой взгляд, погружаться в дебри gdb не имеет никакого смысла: ну как, ставя брейкпойнты и просматривая регистры, можно отладить, скажем, работу с USB, CAN или любым другим интерфейсом, который ждать не будет?
Только отладочные сообщения в UART или USB на скорости в 3мбод.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

Eddy_Em писал(а):На мой взгляд, погружаться в дебри gdb не имеет никакого смысла
Завязывайте с линуксом. Поставьте винду и IDE и не нужно будет лезть в дебри gdb. :)
Eddy_Em писал(а):ну как, ставя брейкпойнты и просматривая регистры, можно отладить, скажем, работу с USB, CAN или любым другим интерфейсом, который ждать не будет?
Представьте отлаживал, причем успешно. Когда USB полностью инициализирован и с компом связь установлена, работу программы можно останавливать без опасения что USB отвалится. Контроллер отсылает компу сообщение NACK когда программа остановлена и попытки доставить пакет повторяются до тех пор пока программе не будет вновь запущена, т. е. пакеты не теряются. :)
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

Asmodey, первый поддерживает только SWD и SWIM интерфейсы. Второй так же и JTAG. Третий только JTAG. Последний бесполезен для прошивки и отладки STM-овских МК, если в МК нет уже прошитого бутлоадера.
Принципиальной разницы между SWD и JTAG я не вижу, кроме того, что для SWD достаточно двух проводов, а для JTAG надо пять (не считая землю и питание).

Добавлено after 4 minutes 47 seconds:
Мурик, на линуксе как раз с GDB проблем даже меньше, чем в винде. По крайней мере к Eclipse все прикручивается на раз. Точнее для STM32 на раз, а для STM8 и SDCC - после ряда ручных операций, которые могут представлять для новичка определенный гимморой.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

ПростоНуб писал(а):Последний бесполезен для прошивки и отладки STM-овских МК, если в МК нет уже прошитого бутлоадера.
Через USART аппаратная отладка невозможна. Бутлоадер есть и прошит он изготовителем.
ПростоНуб писал(а):на линуксе как раз с GDB проблем даже меньше, чем в винде. По крайней мере к Eclipse все прикручивается на раз.
В винде в нормальной IDE все изначально настроено и прикручивать не нужно.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Asmodey, по первой ссылке свисток не бери - там даже на фото не stm32 видно. Второй, скорее всего, можно взять. А ещё j-link-OB какой-нибудь ему в пару. Один китайский отладчик это не отладчик :)
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

VladislavS писал(а):Второй, скорее всего, можно взять.
Думаешь в него китайцы не могут поставить не STM32?
А что касается "свистков". Не первый год пользуюсь и работают нормально.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="Мурик",url="/forum/viewtopic.php?p=3699447#p3699447"]Думаешь в него китайцы не могут поставить не STM32?[/uquote]Могут, конечно. Но в первый то точно поставили, так что...

[uquote="Мурик",url="/forum/viewtopic.php?p=3699447#p3699447"]А что касается "свистков". Не первый год пользуюсь и работают нормально.[/uquote]На F103 будет работать, куда он денется. В хозяйстве должен валяться про запас. А работать j-link удобнее.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

[uquote="Мурик",url="/forum/viewtopic.php?p=3699428#p3699428"]Завязывайте с линуксом. Поставьте винду и IDE и не нужно будет лезть в дебри gdb. :)[/uquote]
Жесть-то какая! Мастдайку использовать для работы? Мдее.... Это ж совсем слов нет!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

VladislavS писал(а):Но в первый то точно поставили
Просто фоток второго нет...
Eddy_Em писал(а):Жесть-то какая!
Согласен. Не понимаю как можно пользоваться линуксом? Как-то пробовал - очень неудобный.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

Вы, батенька, неправильно пробовали.
Потому что линукс — операционная система. Отличная, кастомизируемая — на любой вкус.
А мастдайка — обычная прошивка для игровых приставок. Серьезные люди ее в работе не используют. Это как у плотника забрать циркулярку и дать лобзик: пили, дорогой!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

Мурик, ну не знаю, где Вы покупаете МК, но в последних двух купленных STM32F100C8T6 с Али никаких признаков бутлоадера я не обнаружил.
Что касается нормальной IDE, то это уже дело вкуса. Ни одной проприетарной IDE, полностью меня устраивавшей, со времен Multi-Edit я не встречал. А опенсорсные всегда можно заточить под себя, как захочется. Но тут следует учесть, что мои проекты, нередко, гетерогенные и мультиплатформенные, представляя собой объединение от МК до BI и BigData. То бишь, мне нужно одно IDE, в котором комфортно можно управлять проектом не только на C/С++, но и на C#, Perl, Python, Java, Ruby, DAX, MDX, SQL и т.п. Поэтому IDE, которая заточена только на МК меня не устраивает категорически.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

ПростоНуб, как может в F100 не быть USART-бутлоадера? Вот DFU нет, это да...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Ответить

Вернуться в «ARM»