Недостатній об'єм флеш-пам'яті


11

Я використовую контролер TM4C1230C3PMI від інструменту Техас в одному зі своїх проектів. Він має 32 Кб внутрішньої спалаху, що недостатньо для мого застосування. На ринку доступні більш високі розміри мікроконтролера, які можна використовувати, але я хочу використовувати лише цей мікроконтролер. Згідно з моїми знаннями, зовнішній EEPROM можна використовувати для збільшення загального розміру спалаху (пам'ять програми).

Чи правильно моє мислення?

Якщо ні, будь ласка, підкажіть, як я можу збільшити загальний розмір флеш-пам’яті контролера?


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

3
Багато років тому пов’язана сентенція була "Якщо ви не можете зробити це в 1K, ви не можете цього зробити". Я думав, що це розумно і варто подумати, але насправді не сприймав. Потім MicroChess прибув в 1К.
користувач2338816

1
Чому ви не завантажуєте свій код із зовнішньої пам'яті? Існує ряд зовнішніх спогадів, які можуть бути пов'язані з вашим UC. Це не обмежує ваш внутрішній спалах, оскільки ви будете завантажувати код зовні.
AlphaGoku


Відповіді:


22

Ви не можете розширити пам'ять програми (спалах). TI виробляє один і той же чіп з подвійним спалахом і оперативною пам'яттю, але нічого іншого не змінилося: TM4C1230D5PMI .

Якщо ви не можете використовувати мікросхему з більшим спалахом, вам доведеться зменшити розмір коду:

  • Вимкнути налагодження, як-от дорога printfфункція. А, printfякий підтримує вихід з плаваючою комою, як правило, повертає вас близько 5 КБ-10 КБ.
  • Переконайтеся, що ви компілюєте з увімкненою оптимізацією - зазвичай це прапор компілятора -Os.
  • Сучасні компілятори можуть робити оптимізацію часу зв'язку (LTO) . З gcc ви отримуєте це з -flto. -fltoДля всіх файлів потрібно пройти етапи компіляції та посилання. Зазвичай це зменшує розмір виробленого коду на 30% -50%.

2

Ви можете отримати найменший розмір програмного забезпечення, скориставшись асемблером та мовою, подібною до Forth, розробленої для ваших цілей. Інший - стислий машинний код, якщо існує багато майже однакового коду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.