Альтернативные ядра для Дуни

Привет, друзья.

Однажды, когда я в очередной раз столкнулся с нехваткой program size на Arduino Nano, я обнаружил, что есть альтернативные ядра. Проведя небольшой сравнительный анализ, я остановился на GyverCore. Немного поэкспериментировав с различными опциями, я оставил всё по умолчанию.

С тех пор я пользуюсь этим ядром, заливая прошивки без загрузчика.

Какое-то время тому назад, я обнаружил, что при достижении порядка 95% размера programsize, дуня перестаёт заводиться.

Начав копать, сделав тестовый скетчик, постепенно заполняя progsize, я увидел, что проблема возникает, когда размер прошивки становится 30918 на компиляторе по умолчанию, либо на 30966 на компиляторе 8.3

На пардоньте, у нас же есть 32768! Ожидаемый выигрыш предполагался целых 2048 байт.

И в итоге, выигрыш оказался совсем невелик:

198 на компиляторе по умолчанию,

244 байта на 8.3

Иначе – кирдык, дуня на запускается.

На стандартных ядрах я на 100% заполняю 30720 байт, и никаких проблем не наблюдаю.

Кто-нибудь сталкивался с подобным?

Какие ядра вы используете на дунях, когда важен максимальный размер прошивки?

Фьюзы то вы исправили при отказе от загрузчика ???
Только ASM только bare metal !!!

Никакие не использую. Просто пишу в микрочип студии и загружаю программатором.

Слушайте, в мире ардуино работают такие вещи как ЕСП32, РП2040, СТМ32, каждая из которых имеет в десятка раз больше ресурсов, чем старенькая атмега.
А вы ставите какое-то кривое ядро, чтобы выиграть 2 К флеша?

А просто оптибут нельзя было использовать, обязательно кривокоре юзать?

но тогда же не будет выигрыша в размере прошивки

Ну, знаете, домино всё ещё в ходу, несмотря на массово продаваемую PS5.

1 лайк

для определенного числа задач - да
Но у автора задачи явно вышли уже из этого круга

MiniCore таки посерьезнее гайверовского поделия будет :wink:

1 лайк

с оптибутом размер прошивки будет 32.2К примерно

Чуть подправил ))

ТС - фьюзы будут озвучены ?

Он же написал, что на 8 есть баги!

щас выяснится, что он загрущик Гайвера не прошивал )))

Не знаю, как у ТС, но у меня обычная мотивация впихнуть что-нибудь в “тиньку” - спортивный интерес. Типа: “на фронтире это и дурак сделает, а вот попробуй в тиньку впихнуть”. У нас же здесь не промышленная разработка. Лично я вот так развлекаюсь.

тут многие развлекаются, в том числе и с ESP32, RP2040, STM32

Кто?
Если я, то, разумеется, я заливаю без загрузчика. В этом и смысл.

Конкретно что надо исправить и где? Я заливаю через IDE, выбирая соответствующие опции. В частности, с GyverCore я выбрал “Without Bootloader”. Аналогично и с MiniCore. В документации ничего не вижу про то, что надо дополнительно что-то исправлять.
Поэтому прошу поделиться, пожалуйста, подробностями.

Вы невнимательно читали пост. Я и старый компилятор проверял.

Да, но с GyverCore прошивка существенно более компактна. Именно поэтому я на ней остановился в своё время.

не “остановился”, а “вляпался”