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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

COKPOWEHEU писал(а):вы прямым текстом отказались от любой помощи, которую мы можем оказать. И продолжаете демонстративно отказываться.
должен ли утопающий радоваться помощи в виде бросания ему лома, если ничего другого под руками спасателей нет? если вы не можете (или не хотите) помочь, это принимается. не принимается в качестве помощи навязывание ваших решений.
COKPOWEHEU писал(а):Именно адекватную помощь вам и пытаются оказать
адекватность - это соответствие ожиданиям, если кратко. поэтому адекватная помощь - это прямой ответ на прямой вопрос, а не выдача под видом ответа демагогии о неверном подходе.
COKPOWEHEU писал(а):Я бы это интерпретировал как попытку выяснить нужно ли это хоть кому-то
напрасно трудитесь: я конкретно пояснил, почему так написал. могу повторить: в этом форуме не принято помогать начинающим, принято их заставлять подчиняться. так вот, если кто захочет помощи в этом вопросе, он сможет избежать ненужного насилия и унижений, обратившись в ЛС ко мне: я-то точно не стану глумиться, в худшем случае, скажу, что не компетентен.
COKPOWEHEU писал(а):Возможно, когда получит граблями по лбу, мнение поменяется.
возможно. пока что я достиг мигания светодиодами по прерываниям ТИМ7 и примитивной реакции на кнопку по прерыванию "нарастающего фронта", не имея понятия ни об одном из регистров ядра и периферии. поскольку я не знаю, в каком документе есть описание HAL, а здесь спрашивать нет смысла, много времени ушло на разыскивание нужных функций в тех десятках файлов, которые попали мне в проект. ну а что там будет дальше - посмотрим.
Последний раз редактировалось ARV Вс янв 08, 2023 21:50:40, всего редактировалось 2 раза.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4350920#p4350920"]Но если и понадобится, то тот же F303 таки приятней, а по цене - одинаково (имею в виду G0 с USB на борту; а без USB обычно мне нужно совсем уж мало).[/uquote]
F303 уже старенький, ему на замену есть G4 по $3 и G0 по $3.6, но у последних USB с хостом и RAM в 3 раза больше, а со времен G0 еще и дешевле конкурентов должен стать...
Eddy_Em писал(а):Ну, это уж вряд ли понадобится. Все равно у меня неиспользуемые секции удаляются (-Wl,--gc-sections).
Попробовать то не сложно...
Последний раз редактировалось Reflector Вс янв 08, 2023 21:49:25, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25503
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350876#p4350876"][
Ну, интерпретацией сказанного вами оно являться не может по определению. А так, причина почему я назвал такое объединение костылем, уже названа: просто добавить адресов прерываний было бы несложно, но это ломает совместимость, а заранее такое количество таймеров не предусмотрели. Вот и все.
.[/uquote]
Я полагаю это фантазией.
Увеличение количества таймеров не мешает увеличению векторов. Причем тут совместимость?
Кроме того, о какой совместимости может идти речь, если в разных семействах могут быть разные контроллеры ДМА, например. Ну и ничто не мешает мягко перейти на любую другую таблицу векторов просто через конфигурационный переключатель? Собственно с реквестами ДМА так и сделали.
Ну и совершенно не катит ваша аргументация для других вендоров. Например для той же Артери. Код с СТМ на Артери без переработки не переносим, а таблица векторов там идентична. И так не только у Артери.
:dont_know:
Не складывается паттерн, уважаемый...
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4350920#p4350920"]Ну, это уж вряд ли понадобится.[/uquote]Дополнительная оптимизация не понадобится? Она что, жрать просит?
Реклама
Эиком - электронные компоненты и радиодетали
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV, вы не той дорогой идете. За чем?
Таким способом вы не когда не сможете сравнить STM с AVR.
Вы же не пишите для AVR используя ArduinoIDE.
Я еще раз повторю - нет ни какой "кнопочки". Я ваш код уместил в 16 килобайт, мне страшно представить чего стоит всего один printf на hal.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ардуина ничего сама не генерирует, там лишь качественная и богатая "библиотека". и благодаря этому нынешний ардуинщик слёту переходит на стм32, а так же всякие апельсинки, малинки и т.п. штуки, "совместимые" с ардуиной.
так что мне скорее в минус, что я проигнорировал ардуину на момент ее зарождения.
а что касается размера printf, меня это не пугало на AVR, не испугает и сейчас.
в общем, подождем, пока я наступлю на грабли, коими меня пугают.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

Просто некоторые путают радиолюбительские поделки с профессиональной разработкой для космоса или массового тиражирования с последующей сертификацией, поддержкой и т.д.
я сам так тоже раньше думал, а сейчас... Как-то забабахал рандом, деление и кучу всего штатного, глянул - а оно это всё аж половину флэши сразу сожрало. И что? Какая разница, сколько чего займет, если это - новогодняя мигалка, например, или будильник, которые не разбудит лишь меня из-за моего подхода? Зато на Си выглядит красиво и просто (хотя сравниваю по привычке всё с нулем).
Нет, если конечно ARV потом это в марсоход начнет запихивать, или в автопилот дальноойщиков, то тогда и будет повод для воплей о "калокубе".
Хотя, возможно, уже запихивается именно так.
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="Reflector",url="/forum/viewtopic.php?p=4350929#p4350929"]F303 уже старенький, ему на замену есть G4 по $3 и G0 по $3.6, но у последних USB с хостом и RAM в 3 раза больше, а со времен G0 еще и дешевле конкурентов должен стать...[/uquote]
Ну и ничего, что старенький, зато все, что мне нужно, есть. И нормальный USB, а не OTG. С OTG у меня F407 на работе валяется, если совсем уж скучно будет, надо будет сделать CDC под него. Когда-нибудь…
И, кстати, G0 вообще не замена F303: у G0 ни деления нет аппаратного, ни, тем более, флоатов!
Попробовать то не сложно...
Блин, реально код почти на 1кБ меньше стал! Ну и чудеса, что-то я не подозревал даже, что -flto как-то еще сильней может соптимизировать (и, казалось бы: что там еще оптимизировать-то?).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

ARV писал(а):должен ли утопающий радоваться помощи в виде бросания ему лома
Нет. Но давайте лучше рассмотрим ваш случай: вы, не умея плавать, оказались на лодке посреди озера, после чего настойчиво требуете лом. А попытки дать вам весла или научить плавать воспринимаете с вот такой агрессией.
ARV писал(а):адекватность - это соответствие ожиданиям
Читайте внимательнее: не вашим ожиданиям, а объективным условиям.
ARV писал(а):могу повторить: в этом форуме не принято помогать начинающим, принято их заставлять подчиняться
От того, что вы повторите какую-то чушь, истиной она не станет. Впрочем, если вы искренне в нее верите - что вы вообще здесь делаете?
ARV писал(а):я-то точно не стану глумиться, в худшем случае, скажу, что не компетентен.
А когда вам то же самое говорят публично (что я про себя говорил, что Эдди: не разбираемся мы в ST-HAL и разбираться не собираемся, потому что он ужасен), у вас возникают какие-то странные претензии.
Хотя если бы вы были готовы принять адекватную помощь - всегда пожалуйста.
ARV писал(а):я не знаю, в каком документе есть описание HAL, а здесь спрашивать нет смысла
Это хорошие новости относительно этого форума.
КРАМ писал(а):Увеличение количества таймеров не мешает увеличению векторов. Причем тут совместимость?
Можете сравнить таблицу векторов прерываний в контроллерах разных семейств. Мне вот под руку попались F100 и F405, отличий почти нет. Хотя в F4 вектора таймерам тоже костыльно назначены.
КРАМ писал(а):Код с СТМ на Артери без переработки не переносим, а таблица векторов там идентична.
И?
КРАМ писал(а):Не складывается паттерн, уважаемый...
Ну так сформулируйте что же у вас там не складывается, может не все так страшно.
Dimon456 писал(а):ARV, вы не той дорогой идете. За чем?
Думаете, хоть вас послушает? Боюсь, месье слишком уперся. Но это все еще его право: не хочет принимать помощь, его дело.
ARV писал(а):ардуина ничего сама не генерирует, там лишь качественная и богатая "библиотека".
Это в ардуине качественная библиотека? Ну-ну...
ARV писал(а):а что касается размера printf, меня это не пугало на AVR, не испугает и сейчас.
в общем, подождем, пока я наступлю на грабли, коими меня пугают.
С таким подходом вы и правда не заметите, когда наступите на грабли. Это примерно как домохозяка не замечает адских тормозов системы, просто потому что уже привыкла и не знает, что 90% производительности тратится впустую.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="ARV",url="/forum/viewtopic.php?p=4350963#p4350963"]нынешний ардуинщик слёту переходит на стм32, а так же всякие апельсинки, малинки и т.п. штуки, "совместимые" с ардуиной.[/uquote]
Это каким боком линуксовые одноплатники с абдуриной совместимы? Уж вендовозу там вообще ловить нечего...
И, кстати, всякие убогие библиотеки, вроде wired (или как оно там), не всегда подходят. Мне вот пришлось для работы с MLX90640 писать свой обработчик I2C, т.к. "библиотечный" не умел работать с 16-битными регистрами.
Ну и уж тем паче, сравнивать одноплатники, где на борту [почти] нормальный линукс с МК - совсем уж не то! Абсолютно ведь разная парадигма разработки. На МК нельзя аллокаторы, нельзя принтф, часто нельзя флоаты, там нет ни одной вменяемой реализации работы с файловыми системами или ethernet (я уж молчу о wifi) и т.д., и т.п. А "апельсинки" нонче даже 64-битные есть: мне вот купили пяток на работу, я заказывал 0, а купили 0+ (видимо, 0 уже не делают). Приятно удивился, что там arm64.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

помнится, в этой теме некто КРАМ высказался в том ключе, что "кто ты такой, чтобы сомневаться в разумности разработчиков ST?". так вот, выходит, что те, кто сомневается в правильности решений разработчиков куба, "кто такие ваще?!"

не зря же ST продвигает именно HAL так настойчиво? не могут же разработчики из ST ошибаться?! :))) если звезды зажигают, значит, это кому-нибудь нужно...

Добавлено after 2 minutes 25 seconds:
эдди, я тебе поражаюсь: ты такой зашуганный! мне и на AVR было можно printf и float, а тебе и на ARM этого часто нельзя... кто ж тебе, сиротинушке, запрещает?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Здравый смысл мне это запрещает. Здравый смысл.
Если нужны флоаты - есть Cortex-M4. Если нужен вывод типа printf и аллокаторы — то здесь уж проще одноплатник взять, там заодно и ethernet есть с вменяемыми прокладками, а не убогим lwip, да и файловые системы из коробки поддерживаются без геморроя (в т.ч. не только пресловутая ext2, но и всякие btrfs, reiserfs и т.п.)…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

нет, это не здравый смысл, а его отсутствие. по-твоему, до появления FPU вообще нельзя было ничего вычислять? а ведь Апполон управлялся компьютером, которому и до atmega8 было далеко...

Добавлено after 3 minutes 21 second:
и вообще, не останавливайся на одноплатниках, бери сразу хотя бы CRAY4, или подобное - там точно с printf проблем не будет!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

[uquote="ARV",url="/forum/viewtopic.php?p=4350974#p4350974"]не могут же разработчики из ST ошибаться?! :)))[/uquote]Могут.По крайней мере, находил у них ошибки (ими признанные). про HAL они не говорят, что надо его ну прям обязательно, более того, иногда на их форуме от их специалистов прямо говорится, что в первую очередь надо думать головой и выбирать необходимое. Куб вполне может использоваться без всего вообще. Я в нём только частоту конфигурирую - очень удобно, остальное подглядываю у Эдди :)
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Martian",url="/forum/viewtopic.php?p=4350997#p4350997"]про HAL они не говорят, что надо его ну прям обязательно, более того[/uquote]
Иногда даже прямо рекомендуют его не использовать:

The HAL takes 50% more space in the memory compared to the LL. Due to the limited flash memory size of the STM32C0, using the LL library as early as possible is recommended.

У STM32C0 конечно флеша будет всего 32КБ, но тем не менее...
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Eddy_Em писал(а):Мне вот пришлось для работы с MLX90640 писать свой обработчик I2C, т.к. "библиотечный" не умел работать с 16-битными регистрами.
Не 16-битными регистрами, а 16-битными адресами, наверное. На счет регистров какая разница, 2 байта читать или 768.
ARV писал(а):помнится, в этой теме некто КРАМ высказался в том ключе, что "кто ты такой, чтобы сомневаться в разумности разработчиков ST?"
А что, даже после всего, что он тут наговорил, вы считаете его авторитетом?
Друг Кота
Аватара пользователя
Сообщения: 25503
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350972#p4350972"]
КРАМ писал(а):Увеличение количества таймеров не мешает увеличению векторов. Причем тут совместимость?
Можете сравнить таблицу векторов прерываний в контроллерах разных семейств. Мне вот под руку попались F100 и F405, отличий почти нет. Хотя в F4 вектора таймерам тоже костыльно назначены.[/uquote]
:))) :))) :)))
Прикольная "логика"...
Типа если вектора назначены одинаково, значит они назначены костыльно... Поздравляю!
Любезный, вы хоть понимаете, что это смешно? Я жду от вас ПРИЧИНУ, а не оценку. У Микрочипа в 16-разрядных МК тоже разное количество таймеров в разных семействах, но вектора индивидуальны. И это никак не противоречит совместимости - адреса в таблице не изменяются, независимо от состава периферии.
Да и у СТМ увеличение, положим УАРТов или там SPI, не приводит к совмещению векторов. И их почему то не заботит совместимость. Где логика, любезный? Чем таким таймеры (причем не все), ДМА и внешние прерывания провинились, что именно их выбрали в жертву совместимости? :music:
COKPOWEHEU писал(а): А что, даже после всего, что он тут наговорил, вы считаете его авторитетом?
:facepalm: :))) :))) :)))
Вы не поверите... Мне болт положить на то, кто меня считает авторитетом, а кто нет, и считают ли вообще...
Но меня интересует истина, если таковая есть и вообще может существовать.
В вопросе поиска обработчиков в проекте я и не претендовал на оптимальность. Но моим способом найти БЕЗУСЛОВНО МОЖНО. Хотя бы потому, что примерно год назад я сам так нашел коллеге, когда у него возник аналогичный вопрос по HAL. Можно даже найти в проекте просто по ключевому слову Handler, если мне не изменяет память.
Хотя я сам никогда Куб не применял и применять не буду. Даже в справочных целях.
Я предпочитаю Кейл и CMSIS c редкими включениями SPL.
Martian писал(а):[uquote="ARV",url="/forum/viewtopic.php?p=4350974#p4350974"]не могут же разработчики из ST ошибаться?! :)))[/uquote]Могут.По крайней мере, находил у них ошибки (ими признанные). про HAL они не говорят, что надо его ну прям обязательно, более того, иногда на их форуме от их специалистов прямо говорится, что в первую очередь надо думать головой и выбирать необходимое. Куб вполне может использоваться без всего вообще. Я в нём только частоту конфигурирую - очень удобно, остальное подглядываю у Эдди :)
Совершенно верно. И ошибаться они могут, и ошибки находить и признавать тоже. Но есть ошибки и ошибки. В смысле они бывают разные.
"Костыльное" решение, вообще то ошибкой не является. Это просто решение. И у него всегда есть причина.
А сам по себе HAL предназначен для определенной целевой аудитории и скорее является следствием маркетологических тенденций, а не оптимальности. В нем, как и в любом другом продукте, могут быть ошибки. Есть стандартная процедура заявлений про их обнаружение. У всех вендоров. Вендоры их рано или позно рассматривают и включают в эррату, фиксят в коде чипа или правят в документации. Ну или признают заявление ошибочным.
[uquote="ARV",url="/forum/viewtopic.php?p=4350974#p4350974"]помнится, в этой теме некто КРАМ высказался в том ключе, что "кто ты такой, чтобы сомневаться в разумности разработчиков ST?". так вот, выходит, что те, кто сомневается в правильности решений разработчиков куба, "кто такие ваще?!"[/uquote]
В цитате присутствуют фантазия и интерпретация и полностью отсутствует здравый смысл. Впрочем, я чуть выше уже про это написАл...
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

а отладка в кубе тормозит у всех, или только у меня? скажем, от запуска отладки до момента "остановки" на входе в main проходит секунд 40, а потом каждый шаг еще секунд 10... это нормально?
или это следствие моих костылей с ST-Link V1 (или из-за слабого ноута)?

Добавлено after 9 minutes:
что касается HAL, то сколько себя помню, и сколько помню чужих кодов, то каждый стремится к созданию собственной версии HAL, т.е. от работы с регистрами напрямую так или иначе прийти к функциям, оперирующими "человекопонятными" сущностями. например, кто поклянется, что никогда не пытался сделать "универсальную функцию, настраивающую USART"? типа "передаем ей номер USART и скорость, а нужные биты в нужных регистрах она сама ставит"? думаю, все это делали(ют). ну и чем это не HAL? вся разница-то между самодельным велосипедом и заводским...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 25503
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Для этого есть SPL/LL.
Там есть все функции настройки периферии.
Как раз через указатель.
Отладка через v2 происходит практически в реальном времени. То есть время входа в отладчик порядка 2 сек. Время пошагового исполнения и время останова зависит от количества наблюдаемых переменных. При их количестве порядка полусотни исполнение практически мгновенное.
Последний раз редактировалось КРАМ Пн янв 09, 2023 07:59:50, всего редактировалось 1 раз.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

А что, в личке про это не пишут?
Ответить

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