Страница 1 из 2

Новое ядро для ардуино IDE

Добавлено: 17 окт 2019, 12:42
starshoy81
Мопед не мой, я только разместил объяву :).
Есть такой многостаночник - АлексГайвер. И вот он в соавторстве с ещё одним человеком сделал новое ядро для ардуино IDE, ускоренное и расширенное по сравнению со стандартным. Ссылка на страницу его сайта.
[spoiler title=копирую оттуда описание:]
"Быстрое и лёгкое ядро для Arduino IDE с расширенной конфигурацией.
Основано на оригинальном ядре Arduino версии 1.8.9, большинство функций заменены на более быстрые и лёгкие аналоги, убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p, убран почти весь Wiring-мусор, код упрощён и причёсан. Добавлено несколько функций и интересных вариантов компиляции: поддержка внутреннего тактового генератора, новая версия загрузчика, вшита новая версия компилятора и многое другое!
Разработано by Александр AlexGyver и Egor ‘Nich1con’ Zaharov"

"Изменения
Облегчено и ускорено

Время выполнения функций, мкс
Функция Arduino GyverCore Быстрее в
millis 1.06 us 1.00 us –
micros 1.19 us 1.13 us –
pinMode 2.90 us 0.57 us 5.09
digitalWrite 2.90 us 0.57 us 5.09
digitalRead 2.45 us 0.50 us 4.90
analogWrite 4.15 us 1.13 us 3.67
analogRead 112.01 us 5.41 us 20.70
analogReference 0.00 us 0.00 us –
attachInterrupt 1.20 us 1.18 us 1.02
detachInterrupt 0.82 us 0.57 us 1.44
tone 5.63 us 2.40 us 2.3

Занимаемое место, Flash, байт
Функция Arduino GyverCore Разница, Flash
millis 26 24 2
micros 24 20 4
pinMode 114 24 90
digitalWrite 200 24 176
digitalRead 190 24 166
analogWrite 406 48 358
analogRead 32 72 -40
analogReference 0 22 -22
attachInterrupt 212 180 32
detachInterrupt 198 150 48
tone 1410 740 670
Serial begin 1028 166 862
print long 1094 326 768
print string 2100 1484 616
print float 2021 446 1575
parseInt 1030 214 816
readString 2334 1594 740
parseFloat 1070 246 824

Примечание: analogRead и analogReference имеют расширенную функциональность и весят чуть больше
Скетч, состоящий из однократного вызова перечисленных выше функций, занимает

Ядро Arduino: 3446 байт (11%) Flash / 217 байт (10%) SRAM
Ядро GyverCore: 1436 байт (4%) Flash / 94 байт (4%) SRAM

Пустой скетч:

Ядро Arduino: 444 байт (1%) Flash / 9 байт (0%) SRAM
Ядро GyverCore: 202 байт (0%) Flash / 0 байт (0%) SRAM

Все библиотеки, работа которых зависит от стандартных функций (время, I/O), работают быстрее:

SPI: отправка байта данных по адресу (опустить latch, отправить адрес, отправить байт, поднять latch) занимает:
Стандартное ядро: 14 мкс (71 кГц)
GyverCore: 6 мкс (164 кГц)

uart является практически полным аналогом Serial, но весит в разы меньше и работает быстрее. Список функций смотри ниже в Добавлено.
Добавлено

Расширена подсветка синтаксиса (вплоть до названий регистров и битов)
Макрос bitToggle(value, bit), инвертирует состояние бита bit в байте value
Быстрая функция digitalToggle(pin), инвертирует состояние пина
Расширенная работа с АЦП
analogStartConvert(byte pin) – начать преобразование с выбранного пина
analogGet() – получить преобразованное значение (между analogStartConvert и analogGet можно выполнять действия, в отличие от ожидания в analogRead())
analogPrescaler(uint8_t prescl) – установить предделитель для АЦП (2, 4, 8, 16, 32, 64, 128) – управляет скоростью работы АЦП (скоростью оцифровки). Prescaler:
2: 3.04 мкс (частота оцифровки 329 000 кГц)
4: 4.72 мкс (частота оцифровки 210 000 кГц)
8: 8.04 мкс (частота оцифровки 125 000 кГц)
16: 15.12 мкс (частота оцифровки 66 100 кГц)
32: 28.04 мкс (частота оцифровки 35 600 кГц)
64: 56.04 мкс (частота оцифровки 17 800 кГц)
128: 112 мкс (частота оцифровки 8 900 Гц)
В функции analogRead(pin) вместо пина можно указать INTERNAL (получить значение внутреннего опорного напряжения) или THERMOMETR (получить приблизительную температуру МК). Примечание: нужно установить предделитель 128
Добавлен очень быстрый и лёгкий uart (аналог классу Serial)
uart.begin() – запустить соединение по последовательному порту со скоростью 9600
uart.begin(baudrate) – запустить соединение по последовательному порту со скоростью baudrate
uart.end() – выключить сериал
uart.peek() – вернуть крайний байт из буфера, не убирая его оттуда
uart.clear() – очистить буфер
uart.read() – вернуть крайний байт из буфера, убрав его оттуда
uart.write(val) – запись в порт
uart.print(val) – печать в порт (числа, строки, char array)
uart.println(val) – печать в порт с переводом строки
uart.available() – возвразает true, если в буфере что-то есть
uart.setTimeout(val) – установить таймаут для функций парсинга (по умолчанию 100 мс)
uart.parseInt() – принять целочисленное число
uart.readString() – принять строку
uart.readStringUntil() – принять строку по терминатору
uart.parseFloat() – принять число float
uart.parsePacket(dataArray) – принять пакет вида $50 60 70; в массив dataArray (смотри пример)
Добавлены расширенные настройки платы из меню платы
Выбор загрузчика
Выбор источника тактирования (внешний, внутренний)
Сохранять или очищать EEPROM
Вывод тактирования на ногу МК
Возможность отключить системный таймер 0 и освободить для себя вектор прерывания ovf
Замена Serial быстрым uart
Настройка или отключение B.O.D.
Возможность отключить стандартную инициализацию периферии
Выбор версии компилятора

Убрано

Убраны всякие сервисные файлы и прочий хлам, не относящийся к ATmega328 (wifi, USB), почищен код. Ядро полностью совместимо с остальными библиотеками, ничего из стандартных функций не вырезано."

*Форматирование таблиц съехало при копировании.
[/spoiler]
Вопрос вот в чём - имеет ли смысл использовать это ядро в ФЛПроге?

Новое ядро для ардуино IDE

Добавлено: 17 окт 2019, 13:20
pan
starshoy81 писал(а): 17 окт 2019, 12:42 убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p
значит все остальное работать не будет

Новое ядро для ардуино IDE

Добавлено: 17 окт 2019, 13:28
aidar_i
Я же уже давал ссылку на него. Можно было и не выкладывать все сюда.

Новое ядро для ардуино IDE

Добавлено: 17 окт 2019, 14:11
starshoy81
[ref]aidar_i[/ref], поиском по форуму не нашлось ничего, поэтому и запостил. Модераторы могут сносить тему тогда.

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 06:53
aidar_i
Вот ещё выпустили новое Иде для Ардуино
https://m.habr.com/ru/news/t/472194/

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 09:52
Anydy
Что давно уже сделано в Platformio ... и зачем изобретать велосипед?

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 11:25
Sancho
Тестил https://programino.com/ - очень даже ничего
Ключи есть.

Отправлено спустя 52 минуты 52 секунды:
[ref=#aa0000]Anydy[/ref], Ты им пользуешься, Platformio? по чеснаку. мне не удобно. особенно с бибками. а эта, programino, нормально, всё видно, откуда и чего.

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 16:19
Anydy
Sancho писал(а): 20 окт 2019, 11:25 Anydy, Ты им пользуешься, Platformio? по чеснаку. мне не удобно. особенно с бибками. а эта, programino, нормально, всё видно, откуда и чего.
Конечно....особенно нравится когда все видно в подсказках...какие у функции атрибуты например...да много чего приятного...
щас гляну твою ссылку....

Отправлено спустя 2 часа 29 минут 35 секунд:
Опа ...платная среда разработки для бесплатного контроллера....круто! зачем платить деньги когда есть намного круче бесплатная среда? или я что то не понял?

Отправлено спустя 2 минуты 51 секунду:
от 30 до 90 евро за аналог ардуино IDE ---перебор......

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 16:56
SSSergeich
Sancho писал(а): 20 окт 2019, 11:25 Тестил https://programino.com/ - очень даже ничего
Сань, а FlowCode не пробовал? Весьма визуальная среда, особенно по информации занятых портов и их состояние в дебаг режиме.
Знаю одного мужика, так он только в AlgoritmBuilder кодит, системы зажигания и системы впрыска для разных авто.

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 19:22
Anydy
Sancho писал(а): 20 окт 2019, 11:25Ключи есть.
Саша...ну давай ключики...а то без них не интересно)))

Отправлено спустя 3 минуты 16 секунд:
SSSergeich писал(а): 20 окт 2019, 16:56 FlowCode не пробовал?
Это все не то...наш FLProg круче!

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 20:06
Ingwar
Sancho писал(а): 20 окт 2019, 11:25 очень даже ничего
Нашел версию 1.6.0
Только после запуска появляется окно и ... закрывается( Есть какие то тонкости установки? Пробовал в папку с IDE ставить - та же картина.

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 20:15
Anydy
Я с официального сайта скачал - работает ....в общем нужно посмотреть....только без ключика даже не интересно изучать....
И еще -- бегло посмотрев не понял как добавить другие платы? тот же ЕСП8266 или ЕСП32?

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 21:37
Ingwar
Anydy писал(а): 20 окт 2019, 20:15 Я с официального сайта скачал - работает
Проверил с официального. Прогресс чуть больше) Вылет после выбора расположения arduino.exe.

Стоит 10.0.18362.239 (Win10 RS6 [1903] May 2019 Update)

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 22:32
SSSergeich
Anydy писал(а): 20 окт 2019, 19:22 Это все не то...наш FLProg круче!
Для начинающих, ага, согласен! А вот для кончающих, хз, хз...))

Новое ядро для ардуино IDE

Добавлено: 20 окт 2019, 22:33
Anydy
Винда разная бывает....у меня тоже вин 10...натравил прогу на IDE 1.8.10 ....в триаале работает...кроме как не рабирался пока что ...некогда -- как подтянуть платы ЕСП..

Новое ядро для ардуино IDE

Добавлено: 21 окт 2019, 10:28
Sancho
Чего-то тут есть. :)
И тут 1.6.4

Отправлено спустя 1 час 24 минуты 56 секунд:
Anydy писал(а): 20 окт 2019, 22:33 -- как подтянуть платы ЕСП..
Так[spoiler]https://www.youtube.com/watch?v=2zzK70GA1hE&t=2s[/spoiler]

Новое ядро для ардуино IDE

Добавлено: 21 окт 2019, 12:42
Ingwar
Sancho писал(а): 21 окт 2019, 10:28 Чего-то тут есть.
Как раз эта и не пошла...
Anydy писал(а): 20 окт 2019, 22:33 Винда разная бывает....
У мну корпоративная... версия 1903 (с поддержкой Ryzen 3). Вечером попробую виртуалку на обычную 10ку накатить.

Новое ядро для ардуино IDE

Добавлено: 21 окт 2019, 12:44
Sancho
[ref]Ingwar[/ref], У меня из этого комплекта, но на семёрке. Полёт нормальный.

Новое ядро для ардуино IDE

Добавлено: 21 окт 2019, 13:21
Anydy
Саша спасибо, ключик подошел к версии скачанной с оф сайта.....но давайте все же варезом обмениваться в личке....пусть повисят сутки эти сообщения а потом удалю...

Новое ядро для ардуино IDE

Добавлено: 21 окт 2019, 14:26
Sancho
Anydy писал(а): 21 окт 2019, 13:21 пусть повисят сутки эти сообщения а потом удалю...
Ок.