Тормознутость Ардуино... Сравнение скорости (Arduino vs. AVR vs. STM32)

  Рет қаралды 75,334

Alexander Guryanov

Alexander Guryanov

6 жыл бұрын

Результаты тестов поражают! Arduino могла быть в 28 раз быстрее, а 8-битный AVR может обогнать STM32. Да и сам STM32 может быть до трех раз быстрее, если правильно использовать STDPeriph и тем более CubeMX.
Для проведения тестов я придумал несложный алгоритм, чтоб при помощи логического анализатора измерить скорость выполнения программы на разных микроконтроллерах, с использованием Arduino, AVR ATMega328(Atmel Studio), STM32 (STDPeriph или CMSIS).
#ВТопкуАрдуино #arduino #stm32 #avr
Пожалуйста подпишитесь: / axgxp

Пікірлер: 697
@xKyPAx
@xKyPAx 5 жыл бұрын
Ассемблер всегда был быстрее. Но жизнь слишком коротка.
@AxGxP
@AxGxP 5 жыл бұрын
Тут ключевое слово "БЫЛ"! На современных процессорах и компиляторах (с включенной оптимизацией) придется очень сильно постараться, чтоб на ассемблере написать хоть немного быстрее.
@AxGxP
@AxGxP 4 жыл бұрын
@@kazancevss откуда такая уверенность, может проверим? Это мнение не больше чем ошибочный миф... Если писать правильно на Си, учитывая всякие преобразования типов, явные и неявные, правильно используя типы данных и указатели, имея понятие, как это всё будет выглядеть после компиляции, то компилятор оптимизирует проект намного лучше, чем человек. А главное намного быстрее и без банальных ошибок присущих человеку! К тому-же в Си вполне возможно будет что-то подредактировать и это не приведет к необходимость переписывать заново всю функцию, компилятор сам все переоптимизирует. Ассемблер имеет смысл только там, где нужно четко зафиксировать количество байт, тактов, и выполнять инструкции в четкой последовательности, или для выполнения экзотических инструкций процессора, которые не предусмотрены языком Си (например барьеры памяти). P.S. работаю с ARM Cortex-M3 именно на этом микроконтроллере согласен сравнивать C vs ASM. Всякие древние x86 не предлагать!
@AxGxP
@AxGxP 4 жыл бұрын
​@@kazancevss ну вот, что и следовало доказать, вы говорите про микроконтроллер с набором инструкций 90-х годов. Меня тоже когда-то очень удивило, как на практике автоматическая оптимизация творит чудеса... Нет смысла писать проект на ассемблере для Cortex-M, не получится заметно лучше, какие-то места может и лучше, а какие-то хуже, в общем в лучшем случае ничего не изменится. Тут больше инструкций предназначенных для конкретных целей, меньше свободных регистров, не остается особо места для всяких извращений и полета фантазии. Большинство узких мест старых процессоров, типа условных переходов, обращений к памяти, извлечения полуслов и изменения отдельных битов, имеет свои специальные инструкции и нет никакой необходимости изобретать велосипед, все делается аппаратно. Кстати только вчера мне нужно было перевести данные little-endian в big-endian, и тут как раз воспользовался вставкой единственной ASM инструкции, REV16, как заставить это сделать компилятор я не знаю. Но писать целиком на асме не имеет никакого смысла... Тут главный вопрос именно в том, что опытный программист знает как написать, чтоб это было оптимально. Для этого конечно нужно знать архитектуру, знать команды ассемблера и понимать, как заставить компилятор сделать то, что хочется, как подсказать ему, что именно и как именно нужно оптимизировать... Всё это нужен опыт, и именно опытность программиста в большей степени определит быстродействие и компактность. А количество ошибок в Си-шном варианте будет точно меньше, хотя-бы только потому, что там меньше строк.
@AxGxP
@AxGxP 4 жыл бұрын
@@kazancevss Мне тоже несколько раз дизассемблировать приходилось. Так вот, что скажу, это не компиляторы кривые, это руки кривые у тех кто библиотеки к этим ARM-ам писал. Там только от этих вложенных функций на одно действие с ума сойти можно... Ни к чему не призываю, у каждого есть свой опыт, свое мнение. Взаимно))
@Violancergta
@Violancergta 4 жыл бұрын
Я на асме пики прогаю.. евли честно , то переход на arm на си как глоток воздуха. да , код больше, ручной оптимизации нет , код работает медленнее, но не критично. а вот скорость неписан я проги в разы увеличилась. да и бошка не болит к вечеру,
@SkyVladTV
@SkyVladTV 6 жыл бұрын
Шикарный монтаж, это ж какой труд! Уважаю специалиста в своем деле!
@Argentum79
@Argentum79 6 жыл бұрын
Аж слеза навернулась... :( спасибо.
@alexs8579
@alexs8579 4 жыл бұрын
Такое счас не только в мире микроконтроллеров, но и в мире софта. Большое количество надстроек программирования, порождающих другие надстройки, ведет к тому, что тормознутость нивелируется увеличением тактовой частоты и количеством ядер. Мы с этим столкнулись еще во времена ВИН95, когда написанная на ассемблере мультиоконная графическая ОС умещалась на дискете 1.44 и работала на самом слабом железе, позволяя реанимировать че-то пк. тогда еще не было лайв сиди или рекавери флешек. Немного отступления: "и возомнили люди себя богами"... "и смешал он их языки, что бы не могли они понять друг друга" .... Да тут и смешивать не надо, мы сами себя закапываем в расстантартизации и увеличении паразитного кода. Вместо того, чтобы заставлять думать, мы все создаем и создаем "более дружественный интерфейс" и как результат сравнивая по моей отрасли качество софта с 15 летним... извините, но доступность и легкость и скорость написания идет в ушерб надежности и простоты. Есть незыблимый закон физики чем больше шестеренок в механизме, тем меньше его КПД.
@user-jp8kv1ts5q
@user-jp8kv1ts5q 4 жыл бұрын
Наверное по этому сейчас в новом железе нету поддержки Windows XP, она просто быстрее Windows 10. Пробовал на своём уже старом ПК на 1156 сокете, жаль ХР лишилась поддержки ряда нужных мне программ, так бы на неё перешёл а так на Windows 10 LTSC сижу.
@user-il4kd9qq3y
@user-il4kd9qq3y Жыл бұрын
Колибри??? )
@user-vf1jm9rr8t
@user-vf1jm9rr8t Жыл бұрын
Бесконечное согласие с комментом
@sam_po_sebe_35
@sam_po_sebe_35 11 ай бұрын
Все просто, стоимость машинного времени сейчас ниже стоимости времени работы программиста.
@treugolinik
@treugolinik 5 жыл бұрын
Длинная беседа и как посмотрю людей критикующих библиотеки и платформу ардуино не мало ну так в том и смысл OpenSource чтоб пониммающие ребята писали библиотеки и проги лучше так давайте создадим репозиторий в который зальем переписанные и оптимизированые библиотеки дадим советы как писать тру код для ардуинки чего попусту языком теребить. Перепишем IDE убрав JAVA из него и добавив елементарных функций, напишем модуль и конфиги для более простой работы с Vim. Лично как по мне Arduino дала толчок к тому чтоб больше людей интересовались програмированием и хардуером а функция знающих и понимающих ну как все тут давать более точные и правельные знания.
@MaiklTil
@MaiklTil 5 жыл бұрын
Правильные мысли!
@logicfacts9964
@logicfacts9964 5 жыл бұрын
Наоборот Ардуино остановил развития даст возможность дебилов делать свои программы и проекты и распространят их на вес мир, а те кто смогли бы сделать это все профессионально остались без работы и пошли мыть туалеты. Ардуинчики их хлеб взяли а они им будут помагат да? Все эти опен сорс проекты как Arduino, Raspberry Pi, CMS, и так далее хрен делают что бы установит технического развития и убит малый и средний бизнес и остались одни корпорации и разумеется Ардуинчики дебилы. Тот кто хочет он и без Ардуино может заниматься электроники и делать свои проекты, только после Ардуино он эти проекты некому продавать, потому что каждый дебил скачает все на готово и сделает себе что захочется
@LiebGoth
@LiebGoth 5 жыл бұрын
@@logicfacts9964 ахахахахаха))))))
@LiebGoth
@LiebGoth 5 жыл бұрын
Ахахахахаха, ардуинщики отняли работу у настоящих программистов и инженеров, ахахахахаха)))))))
@logicfacts9964
@logicfacts9964 5 жыл бұрын
@@LiebGoth А ты все время о себя та у себя. Хватит о себя. Если ничего разумного сказать не можеш лучше стой молча
@peterlents983
@peterlents983 5 жыл бұрын
Все супер, но блин Ц.Э.Л.К.А.!!! Пин читается - КЛОК! :)
@Bagasl
@Bagasl 4 жыл бұрын
Ну зачем так качественно и наглядно, придется подписаться и поставить лайк
@user-fs7ml9ql9q
@user-fs7ml9ql9q 4 жыл бұрын
Монтаж и в целом подача великолепны А возможности оптимизации кода под восьмибитный AVR поражают
@looowblooow7508
@looowblooow7508 5 жыл бұрын
Вот это работа. Молодец. Теперь для меня все стало еще интереснее!!!
@user-be8nn7nr4f
@user-be8nn7nr4f 5 жыл бұрын
Спасибо! Очень интересно! Хорошая работа.
@HamsterTime
@HamsterTime 6 жыл бұрын
Не очень понимаю в програмировании, но было интересно)
@Vlad_4572
@Vlad_4572 5 жыл бұрын
Hamster Time , понимаю чуть больше, но тоже было интересно)
@33KK
@33KK 5 жыл бұрын
Нифига не понял, но очень интересно)
@XYZ.cnc.
@XYZ.cnc. 5 жыл бұрын
@@33KK слышу какой то набор звуков и всё ровно интересно )))
@user-zi1hf6xn2w
@user-zi1hf6xn2w 5 жыл бұрын
@@XYZ.cnc. , не смотрел видео, но интересно. Кажется, дальше абсурдность поднимать уже некуда )))
@user-vt3bh9vg5z
@user-vt3bh9vg5z 4 жыл бұрын
Вы о чем? Очень интересно :))
@user-ve8om5zg3s
@user-ve8om5zg3s 5 жыл бұрын
Спасибо за труды! Если хорошо разбираешься в электронике и мк расскажи. Создай отдельный плейлист из серии уроков по электронике и мк. Здорово услышать человека, который разбирается.
@AxGxP
@AxGxP 5 жыл бұрын
Таких уроков в youtube не мало, например погуглить программирование stm32. Конечно везде есть ошибки... Но как говориться, не ошибается тот, кто ничего не делает. Информации много, учитесь, разбирайтесь, никто вам свои мозги не подарит. Есть конкретные вопросы, задавайте, отвечу.
@ktspn
@ktspn 3 жыл бұрын
Очень круто! Желаю успехов, видео просто отличное
@user-jz7qw2cv2p
@user-jz7qw2cv2p 5 жыл бұрын
Спасибо за видео, полезная информация.
@durnevm
@durnevm 5 жыл бұрын
Важную проблему подняли, ведь многие пишут лишь бы работало, и не задумываются об оптимизации, в лучшем случае надеются на компилятор или на то что уж библиотеки то написаны как нужно и профессионалами. Понятно новичку принцип - "лишь бы работало" подходит. Опыт приходит с проектами, но вы этим видео заронили мысль о том что - все равно можно сделать лучше. И как раз это и есть толчок к развитию. Спасибо за ваш труд!
@sergey7dvd
@sergey7dvd 4 жыл бұрын
Аж тронуло. Спасибо за видео. Кайфанул от просмотра))
@markgajevskis8824
@markgajevskis8824 5 жыл бұрын
Как STM Microelectronics говорит: разработка Std peripheral library была прекращена. Взамен появились HAL и LL. Былобы интересно их быстродействие увидеть. 👍🏻
@vovan5341
@vovan5341 5 жыл бұрын
Скачайте и посмотрите. Потом тут напишете. :-)
@user--22
@user--22 3 жыл бұрын
Зачёт! Благодарность! Респект!
@makoveliprod
@makoveliprod 6 жыл бұрын
Кстати, если на AVR переписать вывод данных типа i2c spi на ассемблер, то можно еще раз в 5 ускорить выполнение передачи 8 бит данных. В ассемблере AVR есть специальные команды, ускоряющие вывод отдельных битов в порт. Только вот компиляторы на это забили... Ну и время входа в прерывание тоже затягивается в пару раз из-за сохранения огромного количества регистров перед выполнением тела прерывания (потому что си).
@TheMorpheus017
@TheMorpheus017 6 жыл бұрын
Обычно использую avr-gcc, он без проблем оптимизирует установку/снятие бита через битовые операции с чтением в одну инструкцию sbr/cbr
@windy_sky
@windy_sky 5 жыл бұрын
Нормальное ПО стоит денег, а эта халява всегда боком выходит.
@kardanium
@kardanium 5 жыл бұрын
Почему забивают? Код: PORTx |= (1
@TheIntellekt
@TheIntellekt 5 жыл бұрын
Очень круто! спасибо! если есть возможность то сделайте такой обзор на PIC!
@AxGxP
@AxGxP 5 жыл бұрын
PIC-ами сейчас не занимаюсь, хотя начинал с них, давно, когда-то. По цене они дороже и обычно имеют достаточно узкую спецификацию. Нет той универсальности... Сейчас большинство производителей перешли на STM, чего и Вам рекомендую.
@AxGxP
@AxGxP 5 жыл бұрын
@easyJet А с чего бы им переставать? У них объемы продаж микроконтроллеров огромные, они могут себе позволить снижать цену за счет количества продаж. Сейчас STM32 уже во все, что угодно пихают, от mp3 плееров до роботов и промышленной автоматизации... Даже если ST поднимут цену (что вряд-ли) остается еще множество аналогов на тех-же Cortex-ах. Да и у ST уже есть полные китайские аналоги, еще дешевле и даже быстрее Giga Device (GD32). Кто перешел на ARM-ы назад не вернется!
@electronicsashobby
@electronicsashobby 5 жыл бұрын
Видео познавательное. Еще интересно было бы взглянуть на скорости работы ОСРВ, например, FreeRTOS при выполнении тех же задач. Автору спасибо.
@Oleg_Parfenv
@Oleg_Parfenv 2 жыл бұрын
Без ардуино библиотек мы бы не получили столько энтузиастов и будущих инженеров. За это разработчикам спасибо. И за видео спасибо. Всё так, как и должно быть.
@user-vf1jm9rr8t
@user-vf1jm9rr8t Жыл бұрын
Очень спорно, особенно по поводу будущих инженеров. Осмелюсь предположить, что "ардуинщиков" мы получили сильно больше, но толку то от них? Также, осмелюсь предположить, что без ардуино библиотек инженеров было получено сильно больше. Короче, корелляции между количеством инженеров и существованием ардуины нет.
@user-et2ce9nt4l
@user-et2ce9nt4l 5 жыл бұрын
Вот это я понимаю ролик! Класс!
@terrakottech417
@terrakottech417 6 жыл бұрын
Великолепное видео (да и весь канал), спасибо! В ответ тем, кто пишет, что Arduino это игрушка для детей и т.п. могу сказать, что всё зависит от поставленной задачи. Минусы Arduino известны (согласен со всем, что сказано в видео, в т.ч. в поле «фанатам Arduino не читать» :) ), но его плюсы это быстрота и простота реализации ряда задач. Притом человеку практически не нужно обладать никакими знаниями в области программирования и схемотехники. Если для реализации задачи достаточно быстродействия и функционала (самого дешёвого китайского) Arduino (и тех малых знаний человека), то не важно, во сколько там раз родной AVR, или STM будет быстрее. Можно сделать сравнение с тем, что нет смысла стрелять с пушки по воробьям, когда их можно поразить пневматической винтовкой. Ну и конечно для того чтобы заинтересовать детей (и не только) данной темой, Arduino, я думаю, подходит лучше чего-либо другого. P.S. Говорю всё это как человек, впервые познакомившийся с программированием AVR на ассемблере, а уже потом программировавший AVR на C в то время когда Arduino ещё не был таким популярным.
@AxGxP
@AxGxP 6 жыл бұрын
+TerraKOT Tech Все так, для тех кто не умеет программировать и не знает английский это вероятно единственный выход. Но мне странно то, что никто не хочет исправить элементарные ошибки во встроенных функциях. Да и в библиотеках ошибок хватает, так что надеятся на стабильность работы таких программ я бы не стал.
@terrakottech417
@terrakottech417 6 жыл бұрын
Полностью с этим согласен. Ситуация действительно странная. Когда есть ошибки в библиотеках и функциях (и вообще код не оптимизирован) это очень нехорошо. Похоже на то, что для разработчиков стало важнее рубить бабло на продажах, а не совершенствовать Arduino.
@user-yo1hz6et8f
@user-yo1hz6et8f 5 жыл бұрын
В свое время ВМ80 в HEX программировал, то еще удовольствие) Зато фундамент в понимании программирования просто железобетонный дает.
@FLomasterZ
@FLomasterZ 5 жыл бұрын
@@terrakottech417 Нет ничего странного. Рубят бабло, экономят на программерах. Библиотеки явно кто-то бухой сонный и зеленый пишет. Во многих девайсах тырят опенсорс и не открывают код по лицензии, чтобы скрыть позор и подлог.
@Vlad_4572
@Vlad_4572 4 жыл бұрын
@@AxGxP , они стали исправляться. Время выполнения некоторых команд сократили до адекватного.
@Drex_Andrey
@Drex_Andrey 5 жыл бұрын
Красиво и доходчиво. Но развязка настолько трагична, что аж слеза навернулась. Но тем не менее, лайк
@user-jr5wg1um6e
@user-jr5wg1um6e 4 жыл бұрын
Очень хорошая тема, безукоризненная работа, шикарный видос!
@BorisYutube
@BorisYutube 4 жыл бұрын
Спасибо за видео!!!
@sergeyvp
@sergeyvp 5 жыл бұрын
Скорость выполнения программы это половина проблемы. Решил тут сделать один проект связанный с шаговыми двигателями, взял простейшую функцию управления шаговиком под ардуино, а затем ту же функцию переписал в студии, размер прошивки уменьшился в четыре раза. И это я ещё ничего не оптимизировал.
@AxGxP
@AxGxP 5 жыл бұрын
Достаточно часто программистам приходится искать компромисс, между скоростью выполнения и объемом использованной памяти. Но к ардуино это не относится)))
@IgorChudakov
@IgorChudakov 4 жыл бұрын
А можно ещё сравнить STM32 CMSIS vs. оптимизированный HAL? Или уже было, всё-таки 2 года прошло?
@PiFonCHEG
@PiFonCHEG 3 жыл бұрын
Очень познавательно, спасибо за Ваш труд! На скольки МГц работает STM32 в этом тесте?
@AxGxP
@AxGxP 3 жыл бұрын
На максималке, 72 MHz.
@user-tt3pb2ry6w
@user-tt3pb2ry6w 5 жыл бұрын
Спасибо, было полезно
@Legantmar
@Legantmar 6 жыл бұрын
спасибо. интересный обзор. очевидна плата за удобство программирования без изучения ассемблера и регистров. было бы интересно посмотреть на обзор esp8266 и ее "разгон"
@Popugaj4ik
@Popugaj4ik 4 жыл бұрын
Так вот оно что Михалыч! А я то думал, почему микроконтроллеры такие медленные. А они на самом деле жесть какие быстрые.
@user-qk1vf9cg9i
@user-qk1vf9cg9i 4 жыл бұрын
Невероятно ценный и полезный эксперимент Вы провели, показав, что ардуино в помойку, индусские библиотеки STM тоже в помойку. Для Real-time программ ( например оцифровка звука внутренним АЦП и передача его по радиоканалу посредством СС1101) программа пишется, только путем жесткого "вкуривания" даташита и жесткого обращения к регистрам и битам. Только так.
@enisykin1299
@enisykin1299 5 жыл бұрын
было интересно!
@user-tx8om1kg1q
@user-tx8om1kg1q 4 жыл бұрын
Крутое видео. Спасибо.
@user-cv7um1ds7m
@user-cv7um1ds7m 6 жыл бұрын
Обзор просто супер!
@ruslan.zhumabai
@ruslan.zhumabai 3 жыл бұрын
грамотное видео. скажи плж где можно научиться программировать мк авр на си с нуля?
@AxGxP
@AxGxP 3 жыл бұрын
Где - нет разницы. Главное желание и соответствующий склад ума. Поймите, где бы Вы не учились, никто вам свои мозги не поставит. 90% зависит от Вас, и только 10% от "учителей".
@user-cn6iv4xs4g
@user-cn6iv4xs4g Жыл бұрын
О! Интересно было бы увидеть подобное сравнение stm с esp32...
@isakneuman9995
@isakneuman9995 3 жыл бұрын
Если ты все еще ведешь канал, можешь подсказать, что мне учить? Тоже хочу кодить микроконтроллеры. Сейчас изучаю С++ по Прате чтоб базу получить. До этого были попытки изучить сам Avr и кодить для атмега8, но все заканчивалось тем, что не понимал даже библиотеку. Может ты знаешь по каким книгам учить, и что учить avr или stm. Спасибо
@AxGxP
@AxGxP 3 жыл бұрын
У него же вроде есть по Си, без плюсов, я считаю, что актуальнее. А по поводу микроконтроллеров, документации от производителей вполне достаточно. AVR наверное проще, зато с STM можно отладкой на лету пользоваться, без значительных дополнительных вложений. В любом случае рекомендую с 8-bit начинать. А 32 - STM мне намного больше нравится.
@isakneuman9995
@isakneuman9995 2 жыл бұрын
@@AxGxP интересно ответишь или нет, но после последнего вопроса где то 3 месяца лета я поработал и подеградировал и только вот последние 3 месяца из которого первый месяц учил авр а потом последние два учу stm32. Как адекватный человек учу с cmsis с голыми регистрами чтоб понимать каждый такт и чих. Рекомендуют перейти на халл, но не хочу. Возможно в будущем когда я буду профи буду кое что брать с халла. Во время универа были проблемы с обучением, относительно меньше времени уделял. Но вот с начала декабря как вышли на зимние каникулы каждый день стараюсь по максимуму учиться. С голой документацией тоже проблематично. Я долго откладывал темы с таймерами в стм наивно полагая что они так же просты как у авр, но тут оказывается так много настроек и возможности. А в документации не сразу понятен алгоритм настройки шим или захвата импульса. Да кое что написано но по любому лезу по форумам. Можешь дать какой то совет по изучению? или как гуглить интересную тему. Ибо что б я не гуглил с стм всегда выходит халливар
@AxGxP
@AxGxP 2 жыл бұрын
К сожалению, по поводу гугления много раз сталкивался с тем, что люди копипастят одни и те-же ошибки. Работа всего микроконтроллера и периферии описана в референс мануале. По нему и рекомендую ориентироваться. Если будут конкретные вопросы - задавай.
@isakneuman9995
@isakneuman9995 2 жыл бұрын
@@AxGxP у вас есть телеграмм? Я обычно так и поступаю. Перехожу с переферии на переферию по рм. Но бывают моменты, когда из за большого количества регистров, просто не понятно алгоритм действий для настройки.
@user-po9cn9og2g
@user-po9cn9og2g 5 жыл бұрын
бальзам на мою перфекционистскую душу. я люблю ассемблер.
@Al.Sy.
@Al.Sy. 5 жыл бұрын
Представьте, что Вам надо быстро получить каноэ из бревна. Вы его будете выдалбливать топором (Си) или вырезать скальпелем (ассемблер)? Каждый решает сам, как он будет достигать результата.
@916363
@916363 5 жыл бұрын
@@Al.Sy. , конечно вначале пишется основа на языке высокого уровня, а потом дорабатывается на низком, в углах, где есть проблемы и недоработки, но последнее занимает порой годы. Другое дело, когда попутно правятся библиотеки и в новых проектах уже используют более удобный и точный инструмент, но это уже наработка каждого разработчика под себя. Невозможно изучить какое-либо дело с нуля за пару дней, если делом не заниматься постоянно, ни о каких сверх результатах надеяться не приходится. За примером ходить далеко не надо, посмотрите историю создания проигрывателя WinAmp.
@vovan5341
@vovan5341 5 жыл бұрын
@Lada Timofeeva , была уже где-то на АВРе... :-)
@AxGxP
@AxGxP 5 жыл бұрын
Чтоб сделать программный USB на микроконтроллере с ограниченными возможностями конечно ассемблер. Проект MJoy называется, напиан в 2003-м году на ассемблере под микроконтроллер AVR. На то время ничего лучшего, за адекватные деньги не было... Сегодня есть дешёвые и мощные Cortex, но некоторые почему-то продолжают жить в прошлом.
@lekuriable
@lekuriable 5 жыл бұрын
Великолепно !!!
@Danshyn
@Danshyn 4 жыл бұрын
прям блокбастер в мире микроконтроллеров ))) за работу респект
@ua6em
@ua6em 3 жыл бұрын
а в какой версии IDE компилировалось? Я об ошибке - attachInterrupt(Pin, ISR_prog, RISING);
@ua6em
@ua6em 3 жыл бұрын
увидел 1.8.5 )))
@yehorpererva181
@yehorpererva181 5 жыл бұрын
Прекрасное сравнение. Хотя стоило бы добавить сюда же mbedOS
@viyacheslav.
@viyacheslav. 4 жыл бұрын
Зачетное видео!
@tarasn.6892
@tarasn.6892 3 жыл бұрын
Ничего не понятно, но очень интересно. P.S. Лайк прставил 😂
@user-qg8cs1yh4c
@user-qg8cs1yh4c 4 жыл бұрын
Хороший ролик!
@HeavyHeavyvich
@HeavyHeavyvich 5 жыл бұрын
А почему бы не сравнить HAL vs STDPeriph vs CMSIS?
@RogovAB
@RogovAB 5 жыл бұрын
А смысл их сравнивать? Что одно, что другое мало чем отличаются от ардуино идейно. Теже грабли, и косяки в либах, избыточный код и прочий мусор.
@nixtonixto
@nixtonixto 4 жыл бұрын
Однако у стм32 рефмануалы от 1000 страниц начинаются, поэтому даже опытные программисты в первый год знакомства боятся всю программу делать на регистрах а не на ХАЛовских абстракциях
@yevhenukrainianer4781
@yevhenukrainianer4781 4 жыл бұрын
@@nixtonixto у NXP даже посложнее имхо
@saturn9754
@saturn9754 5 жыл бұрын
Это должен знать каждый!!!И вообще,Ардуино -это просто материнская плата микроконтроллера,обвязка,питание и пины для подключения к портам...для начала можно работать в Ардуино,а потом перейти на AVRSTUDIO...для большинства задач автоматики возможностей этого контроллера вполне хватит...
@user-zi8kn9sl1g
@user-zi8kn9sl1g 3 жыл бұрын
я БЫ ПЕРЕШОЛ ДАК ВЕДЬ НЕЗАДАЧА ПОД СТУДИО НУЖЕН РЕАЛЬЬНО ДОРОГОСТОЯЩИЙ КОМП
@user-mj7ry1ir5o
@user-mj7ry1ir5o 2 жыл бұрын
@@user-zi8kn9sl1g что за бред? Любой комп подойдет.
@personamems
@personamems 4 жыл бұрын
Отличная работа! Вы, гений! Хоть у кого-то голова работает. Ардуино превратило хорошее железо в игрушки
@dreinakh
@dreinakh 4 жыл бұрын
Это, блин, и была задача ардуины - создать плату разработки понятную студенту 1го курса или даже школьнику. Код всего этого барахла открыт, но вместо того чтоб поправить косяк в либе народ ноет на ютубе.
@user-vg9nq5rj3w
@user-vg9nq5rj3w 5 жыл бұрын
Годный контент!
@KolyuhaKostylev
@KolyuhaKostylev 6 жыл бұрын
Я только начал знакомство с ардуино, а тут такое, мало чего понял, но скорости вычисления впечатляют! Сейчас почувствовал себя пятилетним ребёнком, что я фигнёй занимаюсь...
@81n90
@81n90 4 жыл бұрын
Монтаж ролика збз, красава! По теме - чем ниже уровень и опытнее и внимательнее прогер, тем быстрее исполнение. На асме было бы ещё быстрее. Но в наше время, стоимость железа, несравнимо меньше по сравнению со стоимостью работы прогера. Мы тож кушать хотим и не только электроэнергию ) А ещё ведь может быть целая компания, со сроками и все хотят кушать. Поэтому много раз наблюдал наращивание кластеров в датацентрах, без допиливания оптимизации проектов. А вы тут про копеечные контроллеры.
@banzay989
@banzay989 5 жыл бұрын
Голос, подача материала, а сам метериал!) Браво!)
@MAKAROV.REALTY
@MAKAROV.REALTY Жыл бұрын
Респект!
@andreikashin
@andreikashin 5 жыл бұрын
качество на высоте
@KishovRasul
@KishovRasul 4 жыл бұрын
А настройки компилятора в Keil какие? Как же можно про это умолчать? Максимальную оптимизацию выставить и сравнить не пробовали? А в IAR какой будет результат?
@AxGxP
@AxGxP 4 жыл бұрын
Я не умолчал, а просто явно на этом не акцентировал. Сегодня опции оптимизации это обязательная фича любого компилятора. На 2:00 в тексте написал, что в Arduino IDE настроек оптимизации к удивлению нет (там всегда с -O3 GCC компилит). Конечно-же на всех примерах в этом видео одинаковые условия, включена оптимизация -O3.
@Konoplj2010
@Konoplj2010 5 жыл бұрын
Молодец! Приятно осознавать что в нашем мире кроме "Упоратых Ардуинщиков" есть ещё и нормальные специалисты. Когда я пытался сделать такое же видео то меня так обплевали в комментах что я даже не рад был что я вообще принялся пояснять людям что кроме Ардуинки ещё есть на чём можно работать. Лайк.
@Letivnebo
@Letivnebo 6 жыл бұрын
Супер
@user-kn8xo9jd7l
@user-kn8xo9jd7l 2 жыл бұрын
Чётко чеканишь!
@user-kv9cy3sq1e
@user-kv9cy3sq1e 5 жыл бұрын
*_Бро, хоть и ролик старый, может сохранился сурс для STM?_*
@AxGxP
@AxGxP 5 жыл бұрын
Неа, грохнул...
@user-sb9kb9xb3f
@user-sb9kb9xb3f 5 жыл бұрын
может где-то на просторах инета или гитхаба есть улучшенные версии этих библиотек?
@AxGxP
@AxGxP 5 жыл бұрын
Маловероятно... Точнее, что-то может и можно найти, но там другие глюки вылезут. Подход у людей разный... Многие пишут программы с помощью копипаста (весь рунет завален однотипными ошибками), другие используют библиотеки (в большинстве из которых четко написано "распространяется как есть, автор не несет ответственности, и не гарантирует работоспособность"), но я рекомендую самый надежный способ - открыть документацию и написать согласно datasheet, хотя там тоже иногда ошибки попадаются, но это достаточно редкое и обычно относится к уникальным конфигурациям. Так вот, я когда первый раз взялся программировать на STM32 тоже думал, что все очень сложно, и неделю времени убил пытаясь заставить работать все, что мне надо с помощью библиотек всяких.... В основном безрезультатно, лучший случай был - работает 10-15 сек и зависает нафиг... Для того, чтоб поиграться - пожалуйста. Но если делать готовое устройство, никаких opensource библиотек, только хардкор))) Дешевле получается, не смотря на кажущуюся на первый взгляд сложность.
@user-kn8xo9jd7l
@user-kn8xo9jd7l 2 жыл бұрын
Я на всякий случай подпишусь =)
@NathanielIten
@NathanielIten 2 жыл бұрын
Добрый день. Что за модель анализатора?
@AxGxP
@AxGxP 2 жыл бұрын
Китайский клон на Saleae... Там разве ссылок в описании нет?
@user-gk3yk3br5h
@user-gk3yk3br5h Жыл бұрын
красава
@user-pl4gz8lm5t
@user-pl4gz8lm5t 3 жыл бұрын
Всем в нашем чате (да, есть такой) говорю что Ардуино и ХАЛ для чайников и что-то серьезное делать на нем - ну такое себе. В ответ получаю лишь выпады, что мол тогда уж замени микросхемы транзиторами и пиши на АСМе. Вы один из немногих, кто видит реальную картину =))
@AxGxP
@AxGxP 3 жыл бұрын
Радует, что ведущие производители наконец-то признали эти проблемы, можно сказать официально. Так что надеюсь увидим интересные реализации уже совсем скоро.
@masterkit9517
@masterkit9517 4 жыл бұрын
перешёл на STM32, ардуино действительно 80-90 годы по удобству и мощности. Каменный век, дорогой раритет.
@andrumosko687
@andrumosko687 Жыл бұрын
Все так принялись ругать ардуинку... Хотя это же школьный конструктор для развития, хочешь чего то посерьёзнее вперёд обучайся. Не стоит обижаться на отвёртку за то что она медленнее шуруповерта, иногда она удобнее.
@user-uu9gb6hj1m
@user-uu9gb6hj1m 3 жыл бұрын
Ардуино для учащихся и новичков...там никто не питался писать чот особо производительное...а так за видео однорзначно лайк
@user-fb9hx4gf1v
@user-fb9hx4gf1v 4 жыл бұрын
Круто
@user-ev5zy3ql9m
@user-ev5zy3ql9m Жыл бұрын
Я только олного не понял: на какой частоте работала STMка, на 16 или 72 МГц?
@AxGxP
@AxGxP Жыл бұрын
На 72.
@alexeykim9928
@alexeykim9928 4 жыл бұрын
где найти видеоуроки по программированию на stm?
@AxGxP
@AxGxP 4 жыл бұрын
Есть не мало на youtube, рекомендую посмотреть Sappise или narod stream. Но в любом советую читать мануалы, самое главное это Reference Manual и Datasheet. Ну а потом, если хотите стать настоящим программистом на STM32, и вообще на ARM, нужно ознакомится с Programming Manual и Cortex M3 Technical Reference Manual. Если английского не знаете - очень плохо, нужно учить, а покамись учите поищите "Мартин М. Инсайдерское руководство по STM32", там на русском. P.S. Вместе с библиотеками STDPeriph идут примеры, по ним можно учится, подсматривая мануалы, так как в примерах есть некоторые ошибки.
@MrASmitt
@MrASmitt 5 жыл бұрын
В ардуино ИДЕ можно писать на С++, а также использовать регистры. Это позволит добиться той скорости, которую АТМега показала при использовании АВР? Я тут к арудине подключил самый простенький экранчик для вывод цифр из цикла, так она в 5 раз медленнее стала работать)))
@AxGxP
@AxGxP 5 жыл бұрын
В ардуино только на Си и пишется, компилятор GCC. Если писать через регистры возможно удасться добиться почти той-же скорости. Но Arduino запрещает доступ к некоторым регистрам, а также не позволяет настроить режимы оптимизации компилятора. А самое главное неудобно, сложно и медленно писать что-то в ардуино.
@MrASmitt
@MrASmitt 5 жыл бұрын
@@AxGxP я пишу в Sublime с плагином, это чуточку удобнее)
@AzamatTimerbaev
@AzamatTimerbaev 3 жыл бұрын
Препод по радиоэлектронике в 2007 году говорил те же слова, что контроллеры становятся мощнее, но программисты и разработчики не тратят время на оптимизацию кода
@user-sb9kb9xb3f
@user-sb9kb9xb3f 5 жыл бұрын
как вариант, делать патчи и отправлять через git pull reqiest в репозиторий ардуинки
@kardanium
@kardanium 5 жыл бұрын
Я ардуиновскую среду использую только с одним МК. Это ESP8266, ибо разбираться в его родном SDK у меня нет желания. С ESP32 ситуация конечно в разы лучше. Среду - в смылсе окружение, библиотеки и систему сборки. Только саму IDE я взял чуть поодекватнее - Visual Studio Code + PlatformIO, ибо Arduino IDE в этом плане - как отвертка без ручки. Неужели они не могут сделать "Режим для продвинутых", где ихняя IDE превращается во что-то нормальное? Хотя бы, просто с возможностью нормального управления файлами проекта. Если они задумали Arduino как учебный проект, то могли бы и сделать что-нибудь такое, что познакомило бы новичков с настоящим процессом разработки. В остальном - IAR, Atmel Studio, MPLABx и другие нормальные среды и нормальное программирование. В боевых проектах на STM32 я не использую SPL\HAL. HAL используется только для проверки идеи, ибо проект генерится легко и быстро с помощью STM32CubeMX. Да и то не всегда. Например, средствами HAL и Cube в частности, невозможно использовать аппаратную работу DMA с двумя буферами на STM32F407 и других камнях, DMA которых умеет работать с двумя буферами. Еще HAL проверяет все флаги периферии при входе в прерывание и тем самым растрачивая время, когда реакция нужна незамедлительная. Особенно если это касается внешних прерываний. Потому и STMicroelectronics не рекомендует использовать их библиотеки в критичных проектах.
@yevhenukrainianer4781
@yevhenukrainianer4781 4 жыл бұрын
У Espressif IDF SDK хорошо задокументирована.
@user-vd1dg5fw3y
@user-vd1dg5fw3y Жыл бұрын
А вы не пробовали функции LL или HAL, интересно насколько они тормазят работу
@AxGxP
@AxGxP Жыл бұрын
Конечно пробовал) LL в этом смысле очень не плохо работает, там большинство функций инлайнятся и в них нет ничего лишнего, просто можно сказать более понятная запись чем через CMSIS. Только вот CubeIDE часто генерирует код LL с ошибками, что затрудняет разработку. С HAL в этом смысле лучше, автогенерация обычно исправно работает. Но в HAL есть много всякого лишнего, поэтому и скорость программы страдает, и ROM и RAM нужно заметно больше.
@Baton1804
@Baton1804 6 жыл бұрын
Ну так почему бы не выложить в открытый доступ исправленные библиотеки Ардуинки?
@AxGxP
@AxGxP 6 жыл бұрын
Неужели вы думаете такие, что такие существуют? Кому это надо?
@Baton1804
@Baton1804 6 жыл бұрын
Ну как бэ проблема как раз в этом что те кто якобы знают и умеют, не хотят засунуть в ножны меч критики спуститься с пьедестала всезнания и взяться за плуг созидания чтоб облегчать жизнь тем кто не знает и не умеет. Что делать тем кому надо просто решить свою частную проблемку и нет желания практически осваивать новую профессию? Остается пользоваться пусть и "кривыми" но удобными решениями типа Ардуино. Понятное дело что никто никому ничего не должен, это не претензия, это объяснение почему популярен продукт который на ваш взгляд "некачественный", просто лучше нету. Может быть придет время и найдется знающий и в тоже время альтруистически настроенный человек который сделает что то реальное для исправление ситуации.
@sssserya1
@sssserya1 5 жыл бұрын
кто Это будет делать ? Сказать вот я поравил библиотеку теперь она быстрее и выложить для людей. Лучше же обгадить все и вся в и плакаться как все хуево.
@lord4683
@lord4683 5 жыл бұрын
@@sssserya1 это не каких то две строчки) так может вместо того чтобы плакаться как всё хуево и никто не делает хорошую библиотеку ты соберёшь деньги и наймёшь разработчиков?
@sergnova528
@sergnova528 3 жыл бұрын
@@Baton1804 та ничего там удобного в ардуино нет , начнете делать что-то нормальное и только время потратите . и закончится тем что будете сами писать библиотеки для вашего проекта
@vadimzhikharev1243
@vadimzhikharev1243 5 жыл бұрын
Всё верно подмечено
@masterskaya_3d
@masterskaya_3d 5 жыл бұрын
Скорость, ускорение, да оно то классно, но вот, что делать с размерностью памяти 103й STM и mega например? Что делать с прерываниями, таймерами? Ведь это всё как у STM появилось только в XMega, а ардуины помоему на XMega вообще ещё нет, да и цена XMega совсем другая нежелеи arduino mini или ей подобной STM. Ну про 32бита я вообще молчу, математика вся быстрее вычисляется.
@vovan5341
@vovan5341 5 жыл бұрын
Отсюда мораль: библиотеки - зло! :-)
@Vlad_4572
@Vlad_4572 4 жыл бұрын
Нет, не зло. Это удобный вход для начинающих, крайне удобный!!! Я несколько лет не хотел заниматься МК, из-за их сложности, (поэтому работал на логике), но на базовом знании ардуино собрал работающие(уже несколько лет,) устройства. Стало тесно и вот я уже изучаю stm))
@user-fs7ml9ql9q
@user-fs7ml9ql9q 4 жыл бұрын
По большей части библиотеки на МК в продакшене - это попросту недопустимо
@Vlad_4572
@Vlad_4572 4 жыл бұрын
@@user-fs7ml9ql9q , что такое продакшен? Типа массовое производство?
@user-fs7ml9ql9q
@user-fs7ml9ql9q 4 жыл бұрын
Да, имелся ввиду этап перехода от прототипа к проектированию серийного образца
@irongarden8415
@irongarden8415 5 жыл бұрын
В свою защиту могу сказать, что купив ардуину и поработав с ней загорелся изучением мк, через пол года уже играюсь с tft экранчиком, и возникло несколько проблем, ну если не учитывать проблему подключения, то проблема скорости уж точно. Рисовать графики на экранчике или сложные последовательные цикличные анимации очень интересно, но ждать пока оно все прорисуется по пять минут полный отстой. Естественно я стал интересоваться поч? Так как я не программист и изучаю программирование и С в свободное время, обучение идет не быстро. Появилось желание интегрировать мк в свои проекты, задумки. Стало интересно потрогать больше памяти, более высокую скорость тех же Stm32 или даже fpga но это для меня пока дальняя цель, благодаря вашему видео я переосмыслю некоторые моменты своего путешествия в мир мк. Благодарю за внимание, лойс однозначно поставил!
@AxGxP
@AxGxP 5 жыл бұрын
Удачи! Обращайтесь, помогу, чем смогу.
@irongarden8415
@irongarden8415 5 жыл бұрын
Я правильно понял, любой скетч написанный в arduino IDE, в 28 раз медленней, чем скетч написанный в правильной среде разработки?
@AxGxP
@AxGxP 5 жыл бұрын
Нет, конечно не любой. В ардуино можно написать почти (ардуино блокирует доступ к некоторым ресурсам) нормальные программы, но это очень не удобно, так как есть множество более адекватных IDE. Но если писать так, как рекомендуют разработчики, то да - медленно и глючно.
@irongarden8415
@irongarden8415 5 жыл бұрын
скорость вычислений с плавающей точкой, можно увеличить? Строю различные двумерные фигуры, и приходится пользоваться такого рода вычислениями.
@AxGxP
@AxGxP 5 жыл бұрын
Наверное можно... Разные способы есть, надо смотреть код. Фигуры на дисплее или для чего используются?
@tutralex
@tutralex 6 жыл бұрын
Да, Arduino кривой, тут поддерживаю, но теория заговора в конце ролика - это просто смешно. То, что там наставляли проверок параметров - это нифига не заговор разработчиков (StdPeriph). Эти проверки по умолчанию не производятся, пока не раскомментировать или не поменять некоторые определения (USE_ASSERT_INFO/USE_FULL_ASSERT), так что никакой дополнительный код не генерируется. Конечно это не inline-функции и есть расходы на передачу параметров через регистры, переход и возврат из функции, но назвать это ошибкой, заговором или криворукостью разработчиков - бред!
@AxGxP
@AxGxP 6 жыл бұрын
Ну так и посмейтесь, youtube же развлекательный портал! А то, что по вашему "бред" - факт давно признанный производителем. Мне вот интересно, почему так StdPeriph защищаете, к MCD Application Team имеете отношение? Хотя нет, знали бы, что ST сами считают ошибкой создание STDPeriph, в связи с безнадежностью реализации, и даже создали специальную утилиту, для автоматической миграции с STDPeriph на LL.
@tutralex
@tutralex 6 жыл бұрын
Ссылок на пруфы конечно же не будет? Давайте вы не будете говорить за ST, а просто покажете где они сказали, что STDPeriph - ошибка (именно ST). Далее, возьмем любую функцию из STDPeriph, которую вы назвали кривой, например GPIO_SetBits: void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Pin)); GPIOx->BSRRL = GPIO_Pin; } Код одной строкой, но разбирающийся программер поймет. И так, если там исключить проверку параметров (assert_param), а она по умолчанию выключена, я писал уже об этом, то остается GPIOx->BSRRL = GPIO_Pin; - это и есть прямое обращение к регистрам, просто завернутое в функцию GPIO_SetBits. Ну и в чем тут криворукость разработчика? Да, это не inline функция, но это ж библиотека!!! Они дали вам возможность легко включить ловушки возможных ошибок, при отладке, а вы называете это криворукость!ю? Посмотрите правильные примеры кода, как этим вообще пользоваться.
@tutralex
@tutralex 6 жыл бұрын
В целом же, мне ваше видео понравилось, так как заморочились, измерили, и показали на сколько медленный код компилирует Arduino. По поводу STDPeriph, может у вас каким-то образом не были выключены assert_param, поэтому получился на выходе медленный Debug код, а не оптимизированный Release?
@AxGxP
@AxGxP 6 жыл бұрын
Нет, дело не в assert_param, они не были включены. Задержка возникает именно из-за вызова функции. Если посмотреть листинг disasm, то разница небольшая, всего в две команды, но появляется 32-битная команда перехода, из-за неё и возникает большая задержка. Дело в том, что контроллер flash памяти(FLITF), в которой и находится программа, работает на частоте всего 8MHz (FLITFCLK всегда подключен к HSI). Чтоб обеспечить возможность выполнения программы на частоте ядра 72MHz на шине ICode существует 2х64-бит буфер (prefetch buffer), в который и читаются команды процессору с опережением. Но когда мы вызываем функцию линейное чтение памяти нарушается, и ядро вынуждено ждать пока медленный контроллер памяти считает команды по нужному адресу, а при возврате из функции эта ситуация повторяется. При написании программ нужно знать этот нюанс. В библиотеках LL это уже учтено! Все короткие функции имеют директиву inline, что в несколько раз повышает производительность и уменьшает код. По поводу того, где ST сказали, что это ошибка даже не стану искать, это на какой-то конференции было, естественно, что они не идиоты, и не напишут у себя на сайте что их продукт фуфло. Но косвенно об этом можно судить и на сайте. Попробуйте скачать STDPherip на официальном сайте, вам сразу предложат HAL, LL и даже утилиту SPL2LL для переделки вашего проекта с STDPeriph на LL.
@AxGxP
@AxGxP 6 жыл бұрын
Хоть я и продолжаю использовать SPL в своих проектах, уже учитывая многие ошибки, мое отношение к её разработчикам уже никогда не поменяется. Из-за ошибки в библиотеке I2C я когда-то потратил неделю или больше времени, чтоб запустить тогда еще засекреченный DMP (Digital Motion Processor) на MPU6050. Какие сложности были, чтоб получить хоть какую-то документацию, подписание всяких соглашений о неразглашении и т.д. а оно нихера не заработало. Я уже тогда начал думать, что IvenSense не все документы дали, или специально какую-то ошибку в них сделали. И даже посоветоваться не с кем, в инете инфы конечно тоже нет. Только после долгих колупаний с логическим анализатором, я обнаружил, что MPU5060 зависает именно после передачи трехбайтной последовательности. Все заработало, только после того, как я сам переписал эту библиотеку.
@olegotdelka37
@olegotdelka37 5 жыл бұрын
Имеет ли смысл связоватся с ардуино . Или продолжить изучение авр. А то получается устройство на процессоре а внем плата ардуино торчит . С тем же процером . Может ну её ардуино то ?
@olegotdelka37
@olegotdelka37 5 жыл бұрын
@@AxGxP я занимался с avr некоторые проекты до сих пор работают . Но там не пользовался библиотеками . Чисто как логика не соожные вычисления . Как на авр с библиотеками ? Можно ли модули от ардуино прикрутить к avr . Интересует мп3 модуль . работа с сервой . И модули передатчиков. Возникла необходимость попаять. Ивот мне щас определится авр вспоминать . Или с ардуино связаться. Ардуино исключительно только из за модулей . Очень подкупает .
@AxGxP
@AxGxP 5 жыл бұрын
@@olegotdelka37 раза два пробовал пользоваться чужими библиотеками - лотерея ещё та, если и заработает, то от глюков долго избавляться придется! Когда квадрокоптер программировал почти две недели убыл перебирая разные библиотеки и в попытках заставить работать все вместе. А когда эти все датчики запустились вместе и вроде как все заработало - оно начало зависать через 12-15 сек после запуска, дальше нервов не хватило. Грохнул все, написал сам все, что надо, через два дня уже летал на проводе)) Так что мое мнение, нужно брать документацию на микросхему и использовать её в удобном режиме. Это будет лучше и быстрее, и места кучу сэкономит! А на ардуино в крайнем случае можно проверить работоспособность одного модуля, а если он в проекте не один - никто ничего не гарантирует.
@olegotdelka37
@olegotdelka37 5 жыл бұрын
@@AxGxP 1 тоесть всё риально самому на писть . 2 2 И модули от ардуино можно подружить с процем ? 3 на ардуино проще но не факт што всё дружно работать будет. 4. сильно ли отличаются програмирование на ардуино и на авр в плане команд ? Ну за исключением настройки частоты и фюзов . Я про само тело программы . Как я заметил очень похоже но ардуино у меня нет не очень понятно .
@AxGxP
@AxGxP 5 жыл бұрын
@@olegotdelka37 ардуино это не язык и не процессор, это просто набор кривоватых библиотек. Все ардуино это тот-же C/C++.
@olegotdelka37
@olegotdelka37 5 жыл бұрын
@@AxGxP ну и нахер не буду покупать . Программатор куплю и макетку . Щас с ком портом проблеммы старый мой не подойдет. Да и в протеусе чудесно все моделировались
@tonyb7977
@tonyb7977 3 жыл бұрын
Когда-то давно проводил похожий эксперимент, но с объёмом кода. Был небольшой проект, где хотел использовать оставшиеся залежи ATTiny2313a-SU с мизерным 2КБ ROM (но всё же больше чем на Tiny13). Код незамысловатый, но чуток длинноват. Arduino IDE хронически не переваривал с самого начала, но ради смеха попробовал и на нём. Получилось почти 5КБ скомпилированного бинаря, который ну никуда не годился.... В AVR Studio почти вписался, но "почти" не считается. Пожже получилось оптимизировать код до 900Б с хвостиком, но это уже пост-фактум. Почитал немного макулатуры по AVR assembly, покопошился по даташиту, перевёл прогу один-в-один из С в ассемблер, попил кофе, добавил пару мелких оптимизаций, и в итоге получил 500 с лишним байт делающих то же самое что и всё вышеупомянутое. Оставшееся место использовал под пару сабрутин самодиагностики получившегося девайса. Кстати, всем скептикам и пессимистам, когда речь идёт об ассемблере на AVR, то на практике всё пишется так же интуитивно и просто как и на С. Особенно если есть привычка не юзать чужие модули и сниппеты слепо скачанные из инета. Во многом даже интуитивнее чем С или С++ конкретно в этой ситуации.
@sergnova528
@sergnova528 3 жыл бұрын
а я вот на авр пишу сам все без библиотек через регистры , а вот ассемблек никогда не пробовал . и хотел бы чтобы мне подсказали лучшую книжку для того чтобы ассемблер для авр именно научится
@tonyb7977
@tonyb7977 3 жыл бұрын
@@sergnova528 Лучшая литература - это даташит микроконтроллера и application notes, а если с регистрами уже привычно работать, то переход вобще будет безболезненный. Я как бы и сам не спец в ассемблере, но AVRASM настолько простой что там не запутаешься. Там всего сотня с хвостиком инструкций из которых повседневно будут использоваться от силы полтинник. Главное попрактиковаться с branch инструкциями, прерываниями, периферией после этого разницы от С не ощущается. Даже AVR Studio использовал только для отладки если было лень разбираться где накосячил. По началу ещё заглядывал на avrfreaks и просматривал интересные проекты на хабре и радиокоте. На ARM до сих пор не рискнул на асме писать. Ознакомительный курс прошёл, книжку прочитал, но там всё настолько запутанно, что можно только охарактеризовать фразой "стопиццот методов сложить 2+2". Там лучше на С/С++, да и обилие ресурсов не требует такой оптимизации.
@user-oi1zl6de8i
@user-oi1zl6de8i 5 жыл бұрын
Подписка.
@porese
@porese 2 жыл бұрын
Это прям про венду от мелкомягких. Кстати для ардуины есть и быстрые библиотеки, от гивера.
@TDMLab
@TDMLab 5 жыл бұрын
Круто! Но странно сравнивать Ардуино ИДЕ и Атмел Студио если там пользуешься функциями, а там напрямую с регистрами работаешь это как-то нечестно, интересно было бы при равных условиях сравнить компиляторы.
@dima_dmitrenok
@dima_dmitrenok Жыл бұрын
Компилятор один и тот же
@TDMLab
@TDMLab Жыл бұрын
@@dima_dmitrenok У студии должна быть оптимизация только если на этом профит получить, может конечно и в ардуино можно через ключи это задать.
@yourobaz1376
@yourobaz1376 5 жыл бұрын
Такие же проблемы с софтом на смартфонах и даже просто веб страницами. Они занимают все больше памяти, работают все медленнее, переключение между задачами все дольше. Подгружаются миллион строк кода библиотек для простого вывода на экран текста и картинки. А все началось с компиляторов, использование которых уже увеличивало код в десятки раз по сравнению с ассемблером
@AxGxP
@AxGxP 5 жыл бұрын
На что на смартфонах, что на PC проблема есть, у вторых даже хуже. Если углубиться, то все началось с изобретения транзистора и внедрения интегральных схем))) Вряд ли кто-то поспорит с этим прогрессом, да и современные компиляторы прекрасно справляются, не многие вещи на ассемблере ещё можно сделать лучше, чем это сделает компилятор с правильными опциями оптимизации. Кодить стало быстрее и проще, поэтому многие программисты забыли (а некоторые даже и не знали) что на самом деле происходит при вызове функции, выполнении сравнения, даже банальном преобразовании типов, явном и неявном. Появилась целая пирамида вложенных функций и библиотек... Пошла мода не исправлять ошибки, устраняя их причину в корне, а делать заплатки, а потом заплатки на заплатки, и т.д. В итоге имеем то, что имеем - лохмотья, кучу дыр и множество заплаток.
@cultofsogga5863
@cultofsogga5863 3 жыл бұрын
Посоветуй пожалуйста литературу или другие источники знаний🥺😭
@AxGxP
@AxGxP 3 жыл бұрын
Объясните подробнее, что именно вас интересует?
@sculp_vetrov
@sculp_vetrov 6 жыл бұрын
Да не плохой канал.
@NIKOLAY_PSHONIA
@NIKOLAY_PSHONIA 6 жыл бұрын
Вы абсолютно правы - я в ардуинке заменял sbi(P_CS, B_CS); cbi(P_CS, B_CS); на PORT DDR библиотека UTFT и изображение на TFT начало летать.
@user-kv9cy3sq1e
@user-kv9cy3sq1e 6 жыл бұрын
Никола Пшоня *_Должно быть наоборот...._*
@NIKOLAY_PSHONIA
@NIKOLAY_PSHONIA 6 жыл бұрын
Работа с регистрами всегда работает быстрее. тест проходит на 9-10 сек быстрее.
@user-kv9cy3sq1e
@user-kv9cy3sq1e 6 жыл бұрын
Никола Пшоня *_Sbi и Cbi - старые DDR и PORT. _**_goo.gl/8FF1Y3_*
@user-zo4gz1vc3m
@user-zo4gz1vc3m 5 жыл бұрын
Могу дать прогноз.... С появлением искусственного интеллекта в бытовом уровне отпадет необходимость в знании языков программирования. Мы будем иметь устройство в виде ящика с входными и выходными шинами данных, а любой человек просто будет формулировать голосом свойства на входе и выходе устройства. Код и алгоритм выполнения будет писать искусственный интеллект. Это упрощённый пример . Я думаю моё видение подтвердится.. )))
@AxGxP
@AxGxP 5 жыл бұрын
Ага, сейчас люди друг-другу объяснить не могут, чего хотят, а искуственный интелект будет уметь мысли читать?
@user-gm4dd6gu2o
@user-gm4dd6gu2o 6 жыл бұрын
на сколько я понял библиотека HAL на stm тоже нехило так нагружает проц и от нее тоже нужно отказываться?
@AxGxP
@AxGxP 6 жыл бұрын
Конкретных тестов я не проводил, но наличие значительного количества разных проверок, callback функций и т.д. вероятно сильно замедляет работу программы. Вместе с HAL сейчас распространяется LL, предназначенная как раз чтоб избавится от громоздкости HAL, но мне тоже пока не довелось ею пользоваться. Для большинства моих проектов вполне хватает CMSIS и StdPeriph. В чем-то более мощном чем STM32F103 необходимости не возникало. Только один раз не хватало USB-HiSpeed, а для этого уже надо хотя-бы STM32F4xx. Главный плюс HAL в простоте настройки USB с помощью Cube, и на этом все. Мне проще было потратить день-два и разобраться, как создавать необходимые USB устройства без HAL, тем самым избавляясь от уймы бессмысленных структур.
@AxGxP
@AxGxP 6 жыл бұрын
Ну а LL зачем тогда? И как оно вообще применяется, а то LL вместе с HAL завязано вроде, не стал вникать. Есть где инфа по этому поводу?
@pivnoimen17
@pivnoimen17 5 жыл бұрын
Всё правильно говоришь. Но по другому наверное никак.
@sergkaev6075
@sergkaev6075 3 жыл бұрын
Жаль, что нет варианта управления портами через регистры в Arduino, то же ускорилось бы, но интересна разница в т.ч. с Atmel studio. Я так понял STM-ка работала на 72mhz, а если на той же частоте что и AVR, то AVR походу быстрее.
@AxGxP
@AxGxP 3 жыл бұрын
Да, STM32 во всех тестах на 72 Mhz.
@sovchem1275
@sovchem1275 5 жыл бұрын
Ни разу не понимаю арДУРино.... AVR, хорошо, но есть же нормальная среда CAVR с виз. кодгенератором с человеческой отладкой и прошивкой !
@gogmagog6285
@gogmagog6285 4 жыл бұрын
А детские кубики, конструкторы с большими элементами -понимаешь? Для начинающих.
@user-zi8kn9sl1g
@user-zi8kn9sl1g 3 жыл бұрын
Все хорошо а ты попробуй подцепить i2C дисплей через Codevision
@nonameuser635
@nonameuser635 4 жыл бұрын
в конце не хватает реквиема по мечте Криса Манселла
@xintreavideo
@xintreavideo 2 жыл бұрын
На 106 секунде я так и не понял: на экране написано что прерывания будут отключены. Голосом же автор говорит, что будет оцениваться скорость входа и выхода из прерывания. Так что же на самом деле хочет сделать автор?
STM8S103F3 vs ATmega328p
19:29
Электроника в объективе
Рет қаралды 113 М.
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Brawl Stars
Рет қаралды 16 МЛН
🍕Пиццерия FNAF в реальной жизни #shorts
00:41
We accelerate Arduino more than 20 times!
28:18
Home Made
Рет қаралды 70 М.
Изучаю STM32!
20:26
Лёша Кластер
Рет қаралды 189 М.
Какой микроконтроллер выбрать?
17:32
Егор Соколов
Рет қаралды 47 М.
Фишки Arduino, о которых ты не знал!
13:37
Заметки Ардуинщика
Рет қаралды 107 М.
🖥️Играю в Cyberpunk на Ардуино!
18:22
AlexGyver
Рет қаралды 1,2 МЛН
Оптимизация кода Ардуино и ускорение работы Ардуино проекты.
15:18
Где раздвижные смартфоны ?
0:49
Не шарю!
Рет қаралды 925 М.
Apple watch hidden camera
0:34
_vector_
Рет қаралды 61 МЛН
Iphone or nokia
0:15
rishton vines😇
Рет қаралды 1,7 МЛН
Непробиваемый телевизор 🤯
0:23
FATA MORGANA
Рет қаралды 419 М.
ВЫ ЧЕ СДЕЛАЛИ С iOS 18?
22:40
Overtake lab
Рет қаралды 107 М.