Я создал некоторый код для симулятора, и теперь я пытаюсь использовать TI-бесплатную инструментальную цепочку для кросс-компиляции с целью с 64kb nvram. Компилятор утверждает, что мой код составляет около 34kb за пределами ROM:
(...) msp430-elf/bin/ld: region 'ROM' overflowed by 33716 bytes
В другой строке говорится, что он не может помещать поле .text
в его выделенное пространство. Я не могу поверить, что мои дополнения составляют 34kb, не говоря уже о том, что бинарные файлы переполняются на эту сумму.
- Файлы.o, добавленные моим кодом в проект, представляют собой небольшую часть (200 КБ из 1,9 МБ) всего проекта, и я взял на себя большое количество компонентов, которые были в проекте для начала.
- Я уже передаю компилятор
-Os -s
flags. - Новый код содержит около 100 символов строковых литералов.
- В моем коде используются многие функции
math.h
(на самом деле это единственная часть, которая выполняет арифметику с плавающей запятой), сделайте вызовstrtod
и вызовитеsprintf
Существуют ли какие-либо инструменты или методы, чтобы разрушить то, что заставляет бинарные файлы быть такими большими?