@Lundin Я бы добавил еще одну - void HAL или HAL-подобные библиотеки.

всех сил пытаюсь получить мой код до минимального размера голых костей! Я использую STM32F0 только с 32-килобайтной флэш-памятью, и мне нужна хорошая часть флэш-памяти для хранения данных. Мой код уже около 20 Кбайт! Частично это связано с использованием функций STM32 HAL, которые я могу учесть и оптимизировать позже, если это необходимо.

Тем не менее, мой самый большой потребитель flash - это все неявно включенные библиотечные процедуры. Я не могу удалить эти функции. Они не вызываются нигде в моем коде или любом коде HAL. Такие функции, как _malloc_r (1,3 Кбайт), __vfiprintf_r (3 КБ) и многие другие, используют большую часть моей флэш-памяти. Я думаю, что это все функции libc. Я не использую их и хотел бы, чтобы они исчезли!

Кто-нибудь знает, как их удалить?

Я пробовал разные оптимизации, уровни и опции компоновщика, но пока не повезло. Я пробовал -nostdlib и --specs = nosys.specs без изменений. Если я удаляю свой файл с определениями для таких функций, как _exit, я получаю ошибку компоновщика, указывающую на то, что библиотека все еще включена и нуждается в них. Также карта компоновщика подтверждает наличие множества нежелательных функций!

Какие-либо предложения?

Ответы на вопрос(0)

Ваш ответ на вопрос