Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: Stm32 с чего начать изучение...

Вт ноя 08, 2022 13:49:22

Однако где-то мне потом все равно придется указать, что X точка в дескрипторе - это на самом деле Y точка в программе, чего я делать не хочу.
В классе контроллера должен быть алгоритм, который из списка конечных точек в дескрипторе сконфигурирует регистры контроллера. А сам дескриптор от этого должен быть свободен, у него другая задача - описать конфигурацию и функционал устройства. Из этой конфигурации все и должны брать информацию, и хост, и само устройство.

Re: Stm32 с чего начать изучение...

Вт ноя 08, 2022 14:09:35

В классе контроллера должен быть алгоритм, который из списка конечных точек в дескрипторе сконфигурирует регистры контроллера.
Тогда в целом мы про одно и то же говорим, что надо определить описание устройства (конфигурации, интерфейсы, точки) и из них "родить" конкретные элементы программы. Только вы это завернули сразу в дескриптор (и тип так назвали), я сделал почти то же самое, только практически наоборот - сначала определил иерархию, из которой собирается дескриптор (собственно, поэтому мне и не нужен оказался доступ к спискам интерфейсов/точек в компайл-тайме, он изначально был).
Рад, что все больше вижу C++ в этой области, надеясь, что если он и не вытеснит Си, то как минимум люди не будут его сторониться.

Re: Stm32 с чего начать изучение...

Сб дек 10, 2022 21:23:49

Добрый вечер! В Кубе создал проект и запустил генерацию.
Изображение

Далее открываю этот проект в Кейле. Пытаюсь Build - ругается. ЧТо не хватает. Кейл установил последний, лицезия есть....
Изображение

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 06:57:57

Ошибку специально закрыли чтобы труднее угадать было? :)))

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 09:55:19

загадка какая-то. Видимо, так звезды сошлись. Попробуйте "ввести здесь текст для поиска", потому как наши телепаты уехали к генералу Морозу.

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 11:10:27

Ошибку специально закрыли чтобы труднее угадать было? :)))

Уппс! :)
Error: *** Project 'Blink', Target 'Blink', Device 'STMicroelectronics::STM32F407VETx' is not supported by Toolchain ! ***.

P.S. Еще и Toolchain надо ставить?! :shock:

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 11:21:59

Не знаю, как в Кубе, но обычно последние буквы Tx (T6, T7) не указывают, поскольку они относятся к упаковке и температурному диапазону

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 11:26:22

Не знаю, как в Кубе, но обычно последние буквы Tx (T6, T7) не указывают....

Я только еще начал изучать. Делал по видеокурсу с ютуба. Там в Кубе первоначальные настройки делают, потом в Кейле открывают...
Могу ошибаться, возможно Кейл не видит с каким процессором хочу работать....
Проц указал, какой у меня на тестовой плате стоит. В Кубе сокращенного варианта нет.

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 15:02:34

Dmitry_77, начните вот с этого
Изображение

Изображение

изображение_2022-12-11_150216867.png
(46.4 KiB) Скачиваний: 459
изображение_2022-12-11_150349334.png
(31.94 KiB) Скачиваний: 455

Re: Stm32 с чего начать изучение...

Вс дек 11, 2022 16:09:57

Dmitry_77, начните вот с этого

Спасибо! :idea:

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 19:23:12

Товарищи, а у кого сишный стартап для STM32G0 завалялся? Думал, там так же, как в F0, но нет: другие прерывания. Пока что сижу, вручную правлю… Уныло!
UPD: уже переделал. Остается проверить флаги компилятора и т.п. И можно попробовать помигать диодом, адаптируя код под F0. Здесь еще и внутренних генераторов пара лишних (правда, HSI48 нет, но все равно на G070 нет USB).
UPD2: это просто жесть какая-то! Там есть RCC->PLLCFGR! И туева хуча разных каналов… С одной стороны, это - хорошо, т.к. реже будет вариант, что нет возможности задать нужную скорость на SPI или I2C, т.к. "кормящий" их канал не той частоты. С другой - это ж трындец, сколько нужно кода понаписать, чтобы хоть базовую часть моих сниппетов под F0 на G0 портировать!
UPD3: даже собралось, но тестировать как-нибудь потом буду. Всмомнил, что такую же кучу выходов тактирования с PLL видел на F407. Чтобы настроить, нужно на одном экране перед глазами схему тактирования держать, а на другом - флаги PLLCFGR. И внимательно читать предельные частоты на все. И мучиться, подбирая оптимальную частоту PLL…
Последний раз редактировалось Eddy_Em Чт дек 22, 2022 21:18:11, всего редактировалось 1 раз.

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 21:15:37

Товарищи, а у кого сишный стартап для STM32G0 завалялся?
Все стартапы для Cortex-M отличаются только таблицей векторов прерываний. Могу подсказать где есть C-шные стартапы и линкерскрипты абсолютно на все STM32 контроллеры. CTRL-C CTRL-V их оттуда 30 секунд делов. Но для этого надо переступить через себя и использовать нечто на W начинающееся и на s заканчивающееся...

Пока что сижу, вручную правлю… Уныло!
:)))

UPD2: это просто жесть какая-то! Там есть RCC->PLLCFGR!
Это вот из-за этого скромного количества кода такие страдания?
Код:
RCC->CR |= RCC_CR_HSEON;
while(!(RCC->CR & RCC_CR_HSERDY));

RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE
             | _VAL2FLD(RCC_PLLCFGR_PLLM,1-1)  | _VAL2FLD(RCC_PLLCFGR_PLLN,8)
             | _VAL2FLD(RCC_PLLCFGR_PLLR,2-1) | (1?RCC_PLLCFGR_PLLREN:0)
             | _VAL2FLD(RCC_PLLCFGR_PLLP,4-1) | (0?RCC_PLLCFGR_PLLPEN:0);

RCC->CR |= RCC_CR_PLLON;
while(!(RCC->CR & RCC_CR_PLLRDY));

RCC->CFGR = RCC_CFGR_MCOSEL_DISABLE | RCC_CFGR_MCOPRE_DIV8
          | RCC_CFGR_PPRE_DIV1 | RCC_CFGR_HPRE_DIV1
          | RCC_CFGR_SW_PLLRCLK;


И туева хуча разных каналов…
Где ты их там нашёл? Проще систему тактирования ещё придумать надо
СпойлерИзображение
изображение_2022-12-22_211027894.png
(82.91 KiB) Скачиваний: 22

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 21:19:54

VladislavS, я и без калокуба нормально обхожусь. И уж тем более, без гнилой мастдайки. Вообще тебя не понимаю: ты - мазохист что ли, уродоваться на игровой приставке, пытаясь ее прошивку превратить в ОС общего назначения?
Вот, создал новую поддиректорию. Тестировать буду позже. Наверняка что-нибудь важное пропустил: на F407 у меня не с первого раза завелось… Да и не факт, что там еще каких-нибудь эдаких флагов не нужно будет gcc передать, кроме изменения cortex-m0 на cortex-m0plus.
Пока, кстати, вообще никаких плюсов в STM32G0 по сравнению с F0 не вижу. Кроме дополнительных телодвижений, чтобы перейти с F0 на G0. И в линейке G0 нет аналогов STM32F072 (по крайней мере, по цене). И HSI48 с синхронизацией по USB выкинули, ироды проклятые! Типа, хочешь USB - ставь кварц! Да нафиг он мне сдался?

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 21:51:59

Вот, создал новую поддиректорию
Я уже как-то давно говорил - SCB->CCR Readonly. Откуда ты эту ересь опять скопипастил?
СпойлерИзображениеИзображение
изображение_2022-12-22_214814711.png
(63.14 KiB) Скачиваний: 15
изображение_2022-12-22_214858928.png
(50.95 KiB) Скачиваний: 15

Типа, хочешь USB - ставь кварц!
Нет в G0 USB от слова совсем, хоть 10 кварцев поставь. :)

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 22:05:50

VladislavS, в G0 есть USB: на G0A/B!
Откуда ты эту ересь опять скопипастил?

Из F0, вестимо. А туда она ХЗ откуда попала. Видать, из каких-нибудь M3/M4. Это же чисто ARMянская фича, надо удалить, спасибо.
И правда: глянул на сайте ARM, этот регистр RW у M3, но RO у M0. И нафиг туда писать дефолтное значение - тоже непонятно.
Лень просто взять, да вычистить из всех этих скопипащенных неизвестно откуда кусков все ненужное…

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 22:38:09

VladislavS, в G0 есть USB: на G0A/B!
Каюсь, эти с буквами пропустил. Но у них и HSI48 есть для этого.

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 22:54:18

Пока, кстати, вообще никаких плюсов в STM32G0 по сравнению с F0 не вижу. Кроме дополнительных телодвижений, чтобы перейти с F0 на G0. И в линейке G0 нет аналогов STM32F072 (по крайней мере, по цене). И HSI48 с синхронизацией по USB выкинули, ироды проклятые! Типа, хочешь USB - ставь кварц! Да нафиг он мне сдался?

У ST F072C8 стоит $1.97 крупными партиями, а G0B0CE - $1.7. На али понятное дело цены другие, но они падают, на днях G431CB за $3 заказывал(а ты до сих пор F303 мучаешь), G0B1CB по $3.56 есть. И HSI48 естественно от SOF по прежнему триммится, никто из новых серий это выбрасывать не будет.

Eddy_Em писал(а):Там есть RCC->PLLCFGR! И туева хуча разных каналов… С одной стороны, это - хорошо, т.к. реже будет вариант, что нет возможности задать нужную скорость на SPI или I2C, т.к. "кормящий" их канал не той частоты. С другой - это ж трындец, сколько нужно кода понаписать, чтобы хоть базовую часть моих сниппетов под F0 на G0 портировать!

PLLCFGR в большинстве серий есть, у G0 PLL еще простенький, с H7 и близко не сравним...

Re: Stm32 с чего начать изучение...

Чт дек 22, 2022 23:14:22

Ну, H7 - вообще дичь какая-то адова! Не представляю, кому оно может понадобиться, если дешевле и проще купить одноплатник, а RT и всякую периферию приаттачить к нему на более дешевом и простом МК.
Я вот, думаю, надо разработать расширяемую управляемую розетку в блоках под DIN-рейку. Основной блок - на апельсинке-0, расширения - хоть на STM32F030 (там-то ног много не надо: пара каналов на симисторы или реле + RS-485 + несколько GPIO для конфигурирования адреса; адрес - или перемычками, или шину межблочную сделать, как у NI'шных крейдлов, тогда автоматом буде). А из самого сложного на МК, с чем приходилось иметь дело, был (точнее - есть, я еще только плату нарисовал, как получу компоненты, буду прошивку писать) контроллер восьми независимых ШД. Туда аж 100-ногую F303 пришлось совать. С F407 тоже начал понемногу работать, но пока не вижу никаких преимуществ. Флоаты и математика мне пока не нужны: я квадрокоптеры не разрабатываю. Как раз, чаще всего нужны вообще элементарные (иной раз и 8 ног хватило бы) МК, но мне что-то совсем восьмибитки опротивели, по удобству разработки таки STM32 приятней, чем STM8.

Да, что насчет цены, то сейчас какая-то дичь творится: F030, которые были по 25-30 рублей, уже переплюнули по цене F103C6T6!

Re: Stm32 с чего начать изучение...

Сб дек 24, 2022 17:46:46

С другой - это ж трындец, сколько нужно кода понаписать, чтобы хоть базовую часть моих сниппетов под F0 на G0 портировать!
Перестаём называть скетчи сниппетами и пишем нормальные библиотеки, чтобы они при переходе с одного чипа на другой работали. Вот смотри, в G0 появился новый для тебя модуль DMAMUX. Можно сделать затычку, а можно посмотреть, что он есть в чипах G0, G4 и H7 и написать один раз нормально под них всех. Тогда компилируем под G071 - получаем
Изображение
А если под H750, то
Изображение
Конечно, при написании библиотеки надо больше чем в один мануал заглянуть, но потом при повседневной разработке вообще не надо будет RM открывать. У меня некоторые модули даже на китайцев c RISC-V перекочевали.
Спойлер
02.png
(18.42 KiB) Скачиваний: 419
03.png
(31.21 KiB) Скачиваний: 235

Re: Stm32 с чего начать изучение...

Сб дек 24, 2022 23:24:48

VladislavS, нет уж, кресты — это чересчур!
Ответить