yarunt2 0 22 января Опубликовано 22 января (изменено) · Жалоба Есть у меня проект в Keil на STM32F030k6, перекинул его в Cube IDE. В результате код не влез в проект. Компильнул проект в более объемный так он вместо 28кб стал 55кб. Непонятная странность, слышал есть инструкции в 32 бита вместо 16, может из-за этого. Cmsis использую только для инициализации ядра, дальше все LL. Изменено 29 января пользователем haker_fox Перенёс тему, т.к. вопрос о среде разработки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 22 января Опубликовано 22 января · Жалоба Есть инструкции и 32 бита, и 16 бит. Одна и та же инструкция может быть представлена как в 16-битном, так и в 32-битном размере. Но не в этом дело! Если проект ровно один и тот же, с использованием Cube HAL,то вначале в настройках оптимизации включите оптимизацию по размеру -Osize. Она влияет на подбор инструкций и комплектование их так, чтобы обеспечить минимально возможный объем кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Spider 0 22 января Опубликовано 22 января · Жалоба Ни разу не делал такой операции, но напрашивается мнение о Debug сборке и Release. Точно Release собираете? Как уже верно подметил EdgeAligned, а оптимизация включена? Дропы unused кода включены? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 22 января Опубликовано 22 января · Жалоба 10 hours ago, yarunt2 said: Непонятная странность Объяснение которой можно найти, заглянув в .map-файл, который содержит как резюме о суммарных расходах всей имеющейся памяти каждого вида, так и подробный список долей израсходованного по каждому файлу и его содержимому. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Spider 0 23 января Опубликовано 23 января · Жалоба 5 hours ago, haker_fox said: заглянув в .map-файл кстати да! А ещё в Cube IDE есть такая клёвая штука как Build Analyzer, он парсит map-файл в удобный вид Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yarunt2 0 24 января Опубликовано 24 января · Жалоба Да, смотрел Build Analyzer, переключился на relise. Выиграл 4кб. Не смог найти где поменять оптимизацию, что-то в кубе совсем все не Userfriendly. Буду перебрасывать проект на более старшие контроллеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 24 января Опубликовано 24 января · Жалоба Там же, где и у любого эклипса. Target options Ну или спросить у гугла https://www.disk91.com/2020/technology/programming/code-optimization-with-stm32-cube-ide/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Spider 0 24 января Опубликовано 24 января · Жалоба Не видите чё ли? Без картинки не работает объяснение! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yarunt2 0 25 января Опубликовано 25 января · Жалоба 23 часа назад, MrYuran сказал: Target options Немного по другому Project-Properties-Setting. to Spider.Спасибо, в моем Кубе все галочки стоят по умолчанию как у вас на картинках. Проект на кейле был еще на версии 4.7, может с тех пор что-то поменялось в компиляторе, потому исходник избыточен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novikovfb 19 25 января Опубликовано 25 января · Жалоба Посмотрите еще в map файле включение неиспользуемых библиотечных функций. По умолчанию Keil их выбрасывает, а gcc (который внутри Cube) подключает при линковке модули целиком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться