B@R5uk писал(а):dosikus, а если шутки в сторону? Я видел варианты на F102 и на F103, каждый из них якобы прошивался фирменной утилитой от STMicroelectronics. Вот меня одолевают сомнения: где враньё?
Не, я серьезно. Выше ссылку давал, но напомню:
китайский клон STLink v2 - собран на 101, где USB отсутствует . Обновился в STLink utility- все работало.
Очистил и прошил прошивкой с изиэлектроникс - все сдох . Из чего делаю выводы - была софтовая эмуляция USB .
balmer писал(а): Использую стандартные библиотеки подключил GPIO, UART и программа стала уже занимать 6 Кб.
оптимизацию настройте.
СПЛ задумана стмами, что бы народ не дёргался на другие процессоры. Юзайте смcис оно для кортексов (всех) едино.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Точно цифры не помню, но при добавлении только инита FatFs и конфига SPI и PWM на STM32F0 в калокубе, заняло в несколько раз больше чем в рабочем проекте с двумя буферами по 512 .
pcb писал(а):
СПЛ задумана стмами,
ВААщето основная нить, что SPL что калокуб - быстрый старт для нубов и не более.
Однако поумнеть она не поможет...
dosikus писал(а):китайский клон STLink v2 - собран на 101, где USB отсутствует . Обновился в STLink utility- все работало.
То есть можно взять любой МК, прошить его стандартной STM-овской утилитой и получить программатор-отладчик? А обвязка будет одинаковой для всех МК в одинаковом корпусе?
pcb писал(а):оптимизацию настройте.
Это дело очень хорошее, но делать его надо очень аккуратно. Иногда оптимизатор выкидывает часть кода, результат которого явно в программе не используется, но используется в прерываниях (или наоборот). В результате программа перестаёт работать, а такую ошибку иногда не легко найти.
B@R5uk писал(а):То есть можно взять любой МК, прошить его стандартной STM-овской утилитой и получить программатор-отладчик?
Нет, китайцы сделали свой бут и свой STLink на 101, который однако воспринимается как настоящий STLinkv2.
Самому можно собрать на 103ем . На счет совместимости внутри линейки - скорей да ...
А вот здесь F102 используется. Автор говорит тоже утилитой от STM шьётся.
Кстати, у меня вопрос на счёт курицы и яйца. Вот оформил я контроллер и обвязку к нему. Его сразу можно через USB прошить, как это все делают при обновлении прошивки (внутри есть какой-нибудь бут-лоадер)? Или же сначала нужна какая-нибудь магия (типа FT232RL и какого-нибудь особой шьющей программы) для загрузки хоть какой-нибудь версии отладчика-программатора, а уже потом можно обновляться стандартным образом?
Камень прошить с помощью бутлоадера через USB-UART типа FT232 , с помощью flash loader demonstrator/
Затем в STLink utility обновить. Но это прокатит только с STM32F103...
Тут пишут, что прошить микроконтроллер можно без всяких программаторов прям через USB. Правду пишут? (Не все МК и не для любой версии бутлоадера). Какими стандартными прогами это делается в случае если это возможно? Всё тот же flash loader demonstrator ?
Алсо, для прошивки F103 через USART пишут, что нужно подключить пины:
Boot0(Pin) = 1 and Boot1(Pin) = 0
Но в корпусе LQFP48 только boot0 выведен наружу. Как быть?
dosikus писал(а):Кстати там то же самое что на изиэлектроникс , одни и те же лица ...
hybroid писал(а):Давно уже пробегал шухер о том, что в F101 таки имеется USB-стек. Китайцы видимо это усвоили.
Угу пробегало, но видимо не в этой ревизии. Прошил я прошивкой с изиэлектроникс - полный ноль.
И плюс тот 101 с большим флэшем, что наводит на мысль о софтовом USB.
Хотя ...
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 раза.
Меня ещё тут мучает один вопрос на счёт тактовой частоты МК, быстродействия 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, спрячьте, пожалуйста, большие картинки под спойлер, а то у меня форум в экран по ширине не влезает.
В том обсуждении рассмотрен очень частный случай линейного выполнения команд. Даже в случае линейного кода часто бывает, что он насыщен обращениями к FLASH за константами. Примерно так или даже плотнее:
Я правильно понимаю, что обращение к FLASH за константой полностью переписывает содержимое буфера предвыборки и выполнение операции следующей за операцией чтения константы требует очередного её чтения с возможным ожиданием в несколько тактов?
Там не в оптимизации дело. Оказалось, что когда используешь хотябы одну функцию из скомпилированного объектного файла, то линкуются и все остальные функции оттуда. Настроил, чтобы функции линковались по одной, и сразу стало вместо 5 КБ около 2 КБ.
Впрочем все равно переписал общение с UART на прямое обращение к регистрам. Код стал короче, но непонятнее