Не хватает встроенной флеш-памяти


11

Я использую контроллер TM4C1230C3PMI от Texas Instruments в одном из моих проектов. Он имеет 32 КБ встроенной вспышки, что недостаточно для моего приложения. Микроконтроллер с увеличенной вспышкой доступен на рынке, и его можно использовать, но я хочу использовать только этот микроконтроллер. Насколько мне известно, внешняя ЭСППЗУ может быть использована для увеличения общего размера флэш-памяти (памяти программ).

Правильно ли мое мышление?

Если нет, подскажите, пожалуйста, как я могу увеличить общий объем флэш-памяти контроллера?


1
Внешняя EEPROM обычно используется для хранения данных, потому что внутренняя Flash-память допускает меньше циклов стирания / записи, чем большинство EEPROM, и она может быть перезаписана побайтово. Для процессоров с интерфейсом внешней шины (у вашего такого нет) можно было бы добавить внешнюю программную память (однако это немного сложно ...). Теоретически было бы возможно хранить фрагменты кода во внешней EEPROM и загружать этот код в оперативную память для его выполнения - однако в большинстве случаев этот сценарий нереалистичен.
Мартин Розенау

3
Много лет назад связанная с ним максима гласила: «Если вы не можете сделать это в 1К, вы не можете сделать это». Я думал, что это было умно и стоило подумать, но на самом деле не принимал это. Затем MicroChess прибыл в 1K.
user2338816

1
Почему вы не загружаете свой код из внешней памяти? Есть ряд внешних воспоминаний, которые могут быть связаны с вашим ОК. Это не накладывает ограничений на вашу внутреннюю флеш-память, так как вы будете загружать свой код извне.
AlphaGoku


Ответы:


22

Вы не можете расширить память программы (флэш). TI выпускает тот же чип с двойной вспышкой и оперативной памятью, но больше ничего не изменилось: TM4C1230D5PMI .

Если вы не можете использовать чип с большей флеш-памятью, вам придется уменьшить размер кода:

  • Отключите отладку, например, дорогую printfфункцию. A, printfкоторый поддерживает вывод с плавающей запятой, обычно обнуляет вас от 5KB до 10KB.
  • Убедитесь, что вы компилируете с включенной оптимизацией - обычно это флаг компилятора -Os.
  • Современные компиляторы могут выполнять оптимизацию времени ссылки (LTO) . С gcc вы получите это с -flto. Вы должны перейти -fltoк этапам компиляции и компоновки для всех файлов. Это обычно уменьшает размер создаваемого кода на 30% -50%.

2

Вы можете получить наименьший объем программного обеспечения, используя ассемблер и Forth-подобный язык, разработанный для ваших целей. Другой - сжатый машинный код, если есть много почти идентичного кода.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.