не представляю себе это дело.
Типо вот делали софт для устройства. Писали ясен фиг на -о0
Писали и.... написали.
Нахрена оптимизировать?
Или лишь отдельные модули оптимизируются, по мере нужды?
зачем -O0? какой смысл? почему сразу низя на O2?
Отлаживать геморойнее? Ну и оно не в десятки раз отличается (по моему опыту) Типо обычно не более 50% по размеру, по скорости хз.
ну все же… код можно писать по разному. и думаю если используются хитросплетенные конструкции в проектировании программ, то комплиятор наверно может значительно оптимизировать код. Если код и так был на регистрах и с минимум хитрых HAL библиотек, то наверно и не нужно
Ну вот писали писали, эмулятор калькулятора МК61, ядро Феликса Лазарева, надо ускорить - алгоритмически отработали, мало, надо еще ускорить делаем -O2 - норм, попробуем -O3 - попробуем. Замер на тесте "счастливые билеты" показал тоже время, а прошивка больше. В корзину.
всмысле сложнее отлаживать? принты и консоль перестают работать?
Я обычно ставлю -Os, если нет особых требований. Получить код поменьше всегда полезно.
Хз, я как то не любитель этого дела. Да и не все можно таким образом отладить, особенно какую плавающую при сборках херню.
Ну я все это дело рассматривал как аварийный резерв. Типо устройство уже пошло, а у тебя фикс жрущий кучу кода и скорости.
э нет. только так и можно все отладить. это отладчиком много что отладить нельзя принципиально
Скажем, большие вопросы возникают с отладкой, когда используются режимы пониженного энергопотребления.
Я предпочитаю заложить контроллер с большим количеством памяти, если есть вероятность обновления прошивки в будущем.
это помойму на микрочипе(avr) лучший вариант
большим это каким ? у меня самые большие проекты даже до 20 кб не доходили ? ну разве что графику туда пихать
да ну чето не может быть. один TPC ip стек весит килобайт под 30-100
Ну, скажем, у меня есть проект с объемом бинарника чуть больше 200 кБ. Там ethernet, WEB-сервер, FreeRTOS, интерпретатор ECMAScript, драйвера SD карты и в таком духе.
Та ну не. Смотря какой стек.
Лол. Я своим говнокодом почти засрал 128кб, не сказал бы что там что то сложное и не стандартное. Скорее наоборот, какое-то пинание регистров и бизнес логика. По факту просто ИО дергает условно.
я на cmsis обычно пишу и мне трудно представить как можно руками настрочить кода на 128кб. :) а если и нужна библиотека, то беру какой-нибудь нужный кусочек и только его использую.
Я тоже пишу поверх CMSIS. :) Вот где весь код писал лично я, там у меня рекорд бинарника - чуть больше 50 кБ. Там NB-IoT, GPS, меню пользователя двух сортов (текстовое и псевдографическое), пара датчиков, и в таком духе.
библиотека же в исходниках, на О2 остаётся только то что используется, я проверял)
ага еще если volatile не поставлен, то убирается еще до хрена чего важного :)
Обсуждают сегодня