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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

B@R5uk писал(а):dosikus, а если шутки в сторону? Я видел варианты на F102 и на F103, каждый из них якобы прошивался фирменной утилитой от STMicroelectronics. Вот меня одолевают сомнения: где враньё?

Не, я серьезно. Выше ссылку давал, но напомню:
китайский клон STLink v2 - собран на 101, где USB отсутствует . Обновился в STLink utility- все работало.
Очистил и прошил прошивкой с изиэлектроникс - все сдох . Из чего делаю выводы - была софтовая эмуляция USB .
Реклама
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Сообщение pcb »

balmer писал(а): Использую стандартные библиотеки подключил GPIO, UART и программа стала уже занимать 6 Кб.
оптимизацию настройте.

СПЛ задумана стмами, что бы народ не дёргался на другие процессоры. Юзайте смcис оно для кортексов (всех) едино.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Точно цифры не помню, но при добавлении только инита FatFs и конфига SPI и PWM на STM32F0 в калокубе, заняло в несколько раз больше чем в рабочем проекте с двумя буферами по 512 .
pcb писал(а):
СПЛ задумана стмами,
ВААщето основная нить, что SPL что калокуб - быстрый старт для нубов и не более.
Однако поумнеть она не поможет...
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

dosikus писал(а):китайский клон STLink v2 - собран на 101, где USB отсутствует . Обновился в STLink utility- все работало.
То есть можно взять любой МК, прошить его стандартной STM-овской утилитой и получить программатор-отладчик? А обвязка будет одинаковой для всех МК в одинаковом корпусе?
pcb писал(а):оптимизацию настройте.
Это дело очень хорошее, но делать его надо очень аккуратно. Иногда оптимизатор выкидывает часть кода, результат которого явно в программе не используется, но используется в прерываниях (или наоборот). В результате программа перестаёт работать, а такую ошибку иногда не легко найти.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

B@R5uk писал(а):То есть можно взять любой МК, прошить его стандартной STM-овской утилитой и получить программатор-отладчик?

Нет, китайцы сделали свой бут и свой STLink на 101, который однако воспринимается как настоящий STLinkv2.
Самому можно собрать на 103ем . На счет совместимости внутри линейки - скорей да ...
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

А вот здесь F102 используется. Автор говорит тоже утилитой от STM шьётся.

Кстати, у меня вопрос на счёт курицы и яйца. Вот оформил я контроллер и обвязку к нему. Его сразу можно через USB прошить, как это все делают при обновлении прошивки (внутри есть какой-нибудь бут-лоадер)? Или же сначала нужна какая-нибудь магия (типа FT232RL и какого-нибудь особой шьющей программы) для загрузки хоть какой-нибудь версии отладчика-программатора, а уже потом можно обновляться стандартным образом?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Камень прошить с помощью бутлоадера через USB-UART типа FT232 , с помощью flash loader demonstrator/
Затем в STLink utility обновить. Но это прокатит только с STM32F103...
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

Понятно, спасибо. Я так понимаю, частота кварца, выводы для светодиодов и линий отладки жёстко привязаны к прошивке, верно?
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Угу , и это не изменить. Ибо исходников в свободном доступе нет.
А вот здесь F102 используется. Автор говорит тоже утилитой от STM шьётся.
А почему бы и нет, у 102 в отличии от 101 USB есть. :)))
Кстати там то же самое что на изиэлектроникс , одни и те же лица ... :)))
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

Тут пишут, что прошить микроконтроллер можно без всяких программаторов прям через USB. Правду пишут? (Не все МК и не для любой версии бутлоадера). Какими стандартными прогами это делается в случае если это возможно? Всё тот же flash loader demonstrator ?

Алсо, для прошивки F103 через USART пишут, что нужно подключить пины:
Boot0(Pin) = 1 and Boot1(Pin) = 0
Но в корпусе LQFP48 только boot0 выведен наружу. Как быть?
dosikus писал(а):Кстати там то же самое что на изиэлектроникс , одни и те же лица ... :)))
А можно ссылочку на статью почитать, пожалуйста?
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Да какая статья , я о тех кто вытягивал прошивку. :)))

http://forum.easyelectronics.ru/viewtop ... 0%BD%D0%B3

Про прошивку через бут http://forum.chipmk.ru/index.php/topic/ ... xx-48-pin/
Но в корпусе LQFP48 только boot0 выведен наружу. Как быть?
Это в каком , в STM32F103 48 пин boot1 это PB2 .
Boot1 отсутствует в малоногих F0 , но там он конфигурируется в OPTION byte...
Друг Кота
Аватара пользователя
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Сообщение hybroid »

dosikus писал(а):А почему бы и нет, у 102 в отличии от 101 USB есть.
Давно уже пробегал шухер о том, что в F101 таки имеется USB-стек. Китайцы видимо это усвоили.

B@R5uk: камни 105/107 умеют по UART/USB/CAN прошиваться штатно. Гугли аппноут от ST.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

hybroid писал(а):Давно уже пробегал шухер о том, что в F101 таки имеется USB-стек. Китайцы видимо это усвоили.
Угу пробегало, но видимо не в этой ревизии. Прошил я прошивкой с изиэлектроникс - полный ноль.
И плюс тот 101 с большим флэшем, что наводит на мысль о софтовом USB.
Хотя ...
Друг Кота
Аватара пользователя
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Сообщение hybroid »

Завтра могу опять раскурочить свой, гляну, что за ревизия камня, когда его слепили.. А то фото я сделал какое-то невменяемое :))
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

hybroid писал(а):Гугли аппноут от ST.
Так ведь уже:
B@R5uk писал(а):Тут пишут, что прошить микроконтроллер можно без всяких программаторов...
dosikus писал(а):Это в каком , в STM32F103 48 пин boot1 это PB2.
А как об этом самому догадаться? На распиновке нету. В альтернативных функциях искать?

dosikus, за ссылочки спасибо, буду ознакамливаться.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

B@R5uk писал(а):А как об этом самому догадаться? На распиновке нету. В альтернативных функциях искать?
Это не наш метод... Я открою один секрет - в Foxit Reader прекрасно работает поиск по документу...
Для F1
Вот скрин с описания пинов из даташита .
СпойлерИзображение
Это из аппноты AN2586 Getting started with STM32F10xxx hardware development
Весьма полезная веЩь.
СпойлерИзображение
Для F0
Выжимки из RM
СпойлерИзображение
Изображение
Ну м есть аппнота AN2606 STM32™ microcontroller system memory boot mode

Где расписаны буты для всех линеек
Последний раз редактировалось dosikus Вс июн 28, 2015 15:56:42, всего редактировалось 2 раза.
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

Понятно, спасибо. Чувствую себя дурачком. :)))

Меня ещё тут мучает один вопрос на счёт тактовой частоты МК, быстродействия FLASH и скорости выполнения кода. Вот в это документе в разделе Reading the Flash memory на странице 59 пишут следующее:
Note:
These options should be used in accordance with the Flash memory access time. The wait
states represent the ratio of the SYSCLK (system clock) period to the Flash memory access time:
zero wait state, if 0 < SYSCLK ≤ 24 MHz
one wait state, if 24 MHz < SYSCLK ≤ 48 MHz
two wait states, if 48 MHz < SYSCLK ≤ 72 MHz
Я пробовал эту штуку на STM32L053C8T6, установка задержки чтения приводила к замедлению работы программы в два раза (там были доступны варианты без задержки и с задержкой в один цикл). Какой тогда смысл в повышении частоты МК, кроме ускорения работы периферии? Код же будет работать с той же скоростью, что на меньшей частоте, но без задержки. Или же буфер упреждающей выборки (prefetch buffer) при правильной организации кода позволяет добиться большего быстродействия? Кто нибудь это пробовал на практике? Какие там есть хитрости?

Алсо, dosikus, спрячьте, пожалуйста, большие картинки под спойлер, а то у меня форум в экран по ширине не влезает.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

B@R5uk писал(а):
Алсо, dosikus, спрячьте, пожалуйста, большие картинки под спойлер, а то у меня форум в экран по ширине не влезает.
С холодильника что-ли пишешь? :)))

На счет флэша http://electronix.ru/forum/index.php?showtopic=115476
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

В том обсуждении рассмотрен очень частный случай линейного выполнения команд. Даже в случае линейного кода часто бывает, что он насыщен обращениями к FLASH за константами. Примерно так или даже плотнее:

Изображение

Я правильно понимаю, что обращение к FLASH за константой полностью переписывает содержимое буфера предвыборки и выполнение операции следующей за операцией чтения константы требует очередного её чтения с возможным ожиданием в несколько тактов?
Вложения
Untitled-1.gif
(10.49 КБ) 793 скачивания
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

pcb писал(а):оптимизацию настройте.
Там не в оптимизации дело. Оказалось, что когда используешь хотябы одну функцию из скомпилированного объектного файла, то линкуются и все остальные функции оттуда. Настроил, чтобы функции линковались по одной, и сразу стало вместо 5 КБ около 2 КБ.

Впрочем все равно переписал общение с UART на прямое обращение к регистрам. Код стал короче, но непонятнее :)
Ответить

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