bvn123 0 9 января, 2023 Опубликовано 9 января, 2023 · Жалоба При реализации каких-то функций на микроконтроллерах, например, генератора импульсов, я примерно представляю - максимальную частоту импульсов (ассемблер, С в разных средах разработки (IAR или, например, компиляторы GCС и XC8, прикрученные к Microchip Studio), Ардуино); - соотношение размера кода, который получу, написав программу на ассемблере, на С в разных средах и в Ардуино, Можно ли в этом плане сравнить среды разработки для ESP? Ардуино, Eclipce с TDM-GCC и MinGW, PlatformIO, что-то еще... Тот же генератор импульсов - использование какой среды разработки и компилятора обеспечит -максимальную частоту -минимальный размер кода? Может, попадалась статья по такому сравнению с результатами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 13 января, 2023 Опубликовано 13 января, 2023 · Жалоба Я проверил минимальный период импульсов на выводе модуля ESP8266 - задержки убраны, без сброса сторожевого таймера, только чередование записей в порт 1-0-1... в цикле при использовании - Eclipse + MinGW + ESP8266 NonOS SDK: while(1){ gpio_output_set(0, 1<<LED, 1<<LED, 0); //ets_delay_us(1); //delay step 1us gpio_output_set(1<<LED, 0, 1<<LED, 0); //ets_delay_us(1); } длительность импульса 0,7 мкс, период 1,2мкс; небольшое отличие от меандра из-за организации цикла while(1); объем памяти 29680 + 212992 байт (двумя кусками с 0x0 и с 0x10000); есть библиотечная функция задержки с шагом 1мкс - части примера ардуино Blink.ino: void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) // delay(1000); //delay step 1ms digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW // delay(1000); } длительность импульса 1,8 мкс, период 10мкс; большой перекос (скважность >5) из-за цикла loop(); объём памяти 265152 байта; библиотечная функция задержки с шагом 1мс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 13 января, 2023 Опубликовано 13 января, 2023 · Жалоба Неправильно выбранный способ решения задачи порождает весьма странные вопросы Берете условно один и тот же код и компилите разными инструментами, смотрите получившийся асм с разными ключами и уровнями оптимизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 13 января, 2023 Опубликовано 13 января, 2023 · Жалоба On 1/13/2023 at 10:27 PM, Arlleex said: Неправильно выбранный способ решения задачи порождает весьма странные вопросы Берете условно один и тот же код и компилите разными инструментами, смотрите получившийся асм с разными ключами и уровнями оптимизации. Как применить Ваши рекомендации к приведенному примеру для сравнения параметров импульсов в ардуино и эклипсе? Оптимизация в Eclipse не использовалась, для этого примера в ардуино она тоже вряд ли использовалась. Я хочу определиться со средой разработки, можете ли Вы что-то сообщить по вопросу темы? С ардуино не разбирался - в нем просто запуститься не составляет труда; с эклипсом повозился. Я не знаю, как в ардуино напрямую вызвать функции ESP8266 NonOS SDK и организовать цикл while() вместо loop(); большинство пользователей ардуино будет лишь слегка изменять готовые примеры, не углубляясь. Если Вы можете изменить пример ардуино File\Examples\Basics\Blink так, чтобы получить меньший период импульсов, было бы интересно посмотреть. Хорошо бы и задержки с шагом 1мкс вставить из ESP8266 NonOS SDK... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 13 января, 2023 Опубликовано 13 января, 2023 · Жалоба В 10.01.2023 в 03:23, bvn123 сказал: Тот же генератор импульсов - использование какой среды разработки и компилятора обеспечит 43 минуты назад, bvn123 сказал: задержки с шагом 1мкс Думаю, в этом случае, нужно не компиляторы и IDE сравнивать, а применять соответствующую периферию микроконтроллера. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 13 января, 2023 Опубликовано 13 января, 2023 · Жалоба On 1/13/2023 at 11:32 PM, tgruzd said: Думаю, в этом случае, нужно не компиляторы и IDE сравнивать, а применять соответствующую периферию микроконтроллера. Т.е., какую-то другую периферию модуля ESP8266... Какую именно? Думаю, простое переключение состояния вывода микроконтроллера показательно в этом плане. Если бы среди периферии ESP8266 оказался, например, ГУН, он управлялся бы через функции SDK - скорее всего максимальная частот ГУН была бы одинакова, независимо от того, какие среда/компилятор обращаются к этим функциям SDK. Пока я использую ESP8266, и ответы на вопрос темы "ESP8266, ESP32: сравнение средств разработки по эффективности: минимальный размер кода, максимальное быстродействие - где посмотреть?" меня интересуют, но хотелось бы конкретики и именно по вынесенному в тему вопросу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 14 января, 2023 Опубликовано 14 января, 2023 · Жалоба 14 часов назад, bvn123 сказал: Как применить Ваши рекомендации к приведенному примеру для сравнения параметров импульсов в ардуино и эклипсе? Применить примерно так: сперва выкинуть любые мысли что-то там измерять какими-то там импульсами ногодрыжными. А потом скачать Eclipse + GCC (у Вас уже это все установлено, я полагаю) и писать код, не занимаясь пустым Цитата Думаю, простое переключение состояния вывода микроконтроллера показательно в этом плане. Так же показательна, как погода в Екатеринбурге в зависимости от количества подписчиков у Клавы Коки. Цитата Т.е., какую-то другую периферию модуля ESP8266... Какую именно? А что, в этих ESP таймеров с выходами сравнения нету? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 15 января, 2023 Опубликовано 15 января, 2023 · Жалоба On 1/14/2023 at 1:38 PM, Arlleex said: Применить примерно так: сперва выкинуть любые мысли что-то там измерять какими-то там импульсами ногодрыжными. А потом скачать Eclipse + GCC (у Вас уже это все установлено, я полагаю) и писать код, не занимаясь пустым Так же показательна, как погода в Екатеринбурге в зависимости от количества подписчиков у Клавы Коки. А что, в этих ESP таймеров с выходами сравнения нету? В чем показательность использования таймера или встроенного управляемого генератора (если бы он был) для сравнения средств разработки? одна среда разработки с "медленным" кодом установит регистры МК, управляющие генератором (таймером), за 100мкс, альтернативный код - за 10мкс, результат работы - одинаковая частота на выходе такого генератора. Попалось аналогичное сравнение: https://habr.com/ru/post/254163/ Общие соображения... Чего-либо нового для себя (кроме Клавы - не понял, о чем это, искать интереса нет) в Ваших сообщениях не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 15 января, 2023 Опубликовано 15 января, 2023 · Жалоба В 13.01.2023 в 22:45, bvn123 сказал: Оптимизация в Eclipse не использовалась, Серьезно? И что тогда вы пытались сравнить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 15 января, 2023 Опубликовано 15 января, 2023 · Жалоба 1 час назад, bvn123 сказал: В чем показательность использования таймера или встроенного управляемого генератора (если бы он был) для сравнения средств разработки? Ни в чём, как и скорость ногодрыга. Если цель - сравнить разные библиотеки управляющие пином (чиво@ля???) для одного МК - сравнивайте код, смотрите сколько проверок он делает прежде чем переключить пин, насколько эффективно эти проверки оптимизируются: В 14.01.2023 в 03:27, Arlleex сказал: смотрите получившийся асм с разными ключами и уровнями оптимизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 15 января, 2023 Опубликовано 15 января, 2023 · Жалоба Исходная цель - выбор среды разработки для ESP8266, пост размещался до того, как я разобрался с запуском эклипс+mingw+ESP8266 NONOS SDK. Поэтому хотелось сравнения от разработчиков устройств на ESP8266, ESP32 с опытом работы в разных средах разработки для ESP под Windows, что именно лучше, эффективнее из средств разработки и почему: Espressif Systems (производитель ESP8266, ESP32), arduino под ESP, PlarformIO, Eclipse, VS (это то, что мне попалось). Вроде таких: работал в VS, eclipse и..., но перешел на среду ..., потому что... Пока выводы следующие: ардуино - очень дружественная среда: без каких-либо статей и уроков установил, в течение нескольких минут запустил пример http-сервера, заменил IP, пароль и текст 'Hello world' на гипертекст, споткнулся на загрузке в ESP, быстро нашел установку COM-порта, загрузил, получил сервер с html-страничкой эклипс - возился несколько дней до загрузки проекта в ESP; наткнулся на 3 проблемы, ответов на форумах eclipse и mingw не получил, на electronix.ru по крайней мере натолкнули на решение одной из них, в итоге решил методом тыка. Эти же вопросы без ответов встречал в сети - наверняка многие на этом остановились. По результатам моего теста пока предпочту эклипс. Может, есть что-то более дружественное, но эффективное? До публикации результата сравнения ни одного ответа не было; после публикации - ни одного ответа по исходному вопросу. Если говорить о результатах сравнения, предложите, что сравнить - чтобы было просто и показательно; фразу 'я работаю с ESP' писать не надо, это подразумевается. Отладка в ассемблере? Она в Ардуино есть? Оптимизация в ардуино есть? Если да, как оптимизировать приведенную выше программу, чтобы получить исполнение одного цикла не за 10мкс, а как в эклипс, за 1,2мкс? С моими познаниями в ардуино и эклипсе пока мне проще посмотреть изменения осциллографом. Оптимизация в Eclipse - ключ оптимизации при компиляции в gcc не использовался, ожидал, что по умолчанию '-O0', ошибся? Сравнение разных библиотек, управляющих пином? Почему нет? Даже если исходники библиотек открыты, я планирую только использовать их в готовом виде. Интересно было бы мнение разработчиков именно под ESP в ардуино и в других средах разработки, работавших под windows. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 15 января, 2023 Опубликовано 15 января, 2023 · Жалоба Ваши вопросы аналогичны вопросу "Хочу самую бьструю и маневренную машину. Подскажите, какого цвета должен бьть салон?" Размеры и скорость программы зависят то компилятора (а он один - GCC для Tensilica) и опций компиляции, и не зависят от среды. Если для обращения к переферии используется библиотека, то максимальная частота ногодрыга будет зависить от библиотеки, и практически не будет зависить от самого процессора. Если вам важна скорость, то переходите на ассемблер. Что касается Ардуино, то это ещё один слой библиотек поверх IDF - он скорости точно не прибавит, но прибавит дружелюбности IDE. Решайте, что вам важнее - скорость или удобство разработки. Лично я для ESP8266 писал программы прямо в командной строке (точнее в FAR'е), и ничего, всё работало. Что касается отладки, то стандартное средство - gdb (все IDE - это обвёрки вокруг него). ESP32 подключается к нему через JTAG (через аппаратный адаптер на FT232 например + OpenOCD). Не уверен, что у ESP8266 есть JTAG (давно это было) 10 hours ago, bvn123 said: Оптимизация в Eclipse - ключ оптимизации при компиляции в gcc не использовался, ожидал, что по умолчанию '-O0', ошибся? У GCC по умолчанию -O2 кажется (если не -O3 вообще) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 16 января, 2023 Опубликовано 16 января, 2023 · Жалоба On 1/16/2023 at 12:02 AM, xvr said: Ваши вопросы аналогичны вопросу "Хочу самую бьструю и маневренную машину. Подскажите, какого цвета должен бьть салон?" драматичненько, скорее, "на какой топливной смеси катать?" On 1/16/2023 at 12:02 AM, xvr said: Размеры и скорость программы зависят то компилятора (а он один - GCC для Tensilica) и опций компиляции, и не зависят от среды. Что касается Ардуино, то это ещё один слой библиотек поверх IDF - он скорости точно не прибавит, но прибавит дружелюбности IDE. Спасибо, это по сути. Если gcc единственный компилятор для ESP, вопрос, наверное, можно считать решенным. Для avr я тестировал три компилятора (и ассемблер), они давали разную производительность и размер; поэтому полагал, что и для ESP могут быть варианты. Посмотрел, что предлагает Espressif (все-таки производитель ESP) - API и те же сторонние toolchain и среду Eclipse. Что остается - может, в какой-то среде оказалось бы проще все это связывать и/или поддержка лучше... Но в этом плане с эклипс на каком-то уровне уже разобрался. On 1/16/2023 at 12:02 AM, xvr said: У GCC по умолчанию -O2 кажется (если не -O3 вообще) <По умолчанию в GCC используется уровень оптимизаций “-O0”.> ("Оптимальные опции для x86 GCC" Блог компании Intel Компиляторы *C *) - сведения из сети; уровень доверия соответствующий. Проверить с вводом разных ключей оптимизации несложно, тратить время не вижу смысла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 16 января, 2023 Опубликовано 16 января, 2023 · Жалоба 2 hours ago, bvn123 said: <По умолчанию в GCC используется уровень оптимизаций “-O0”.> ( Да, действительно. Но он и на -O0 умудряется что то наоптимизировать 😞 https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться