Розмір коду MSP430 в CCS


10

Це має бути досить прямо вперед, але мій google-ing нічого не піднімає ... Я можу успішно створити свій проект в TI Code Composer Studio (CCSv5) і націлити свій пристрій.

Тепер я хочу знати свій розмір програмного коду, щоб я знав, скільки місця у мене є для майбутнього зростання і т. Д. Коли я розробляю для AVR в затемненні ланцюжок інструментів avr-gcc, це зручно розповідає про це у висновку компілятора в консолі . Навіть компіляція Arduino повідомляє про цю інформацію прямо там, в IDE. Немає такої удачі з CCS, як здається.

Отже, питання полягає в тому, як отримати статистику використання пам'яті MSP430 в CCS? Бонусом було б, як налаштувати IDE, щоб повідомити мені цю інформацію у консольному виході, коли я будую збірку.

Примітка. Я знаю, що він повідомляє мені в консолі, коли я завантажую її на пристрій із запуском => Налагодження. Я шукаю вихід на час компіляції.


1
Я також боровся з цим під час роботи над TI DSP. Я не міг знайти інформацію ніде, коли створив її для випуску та завантажив у спалах, не використовуючи емулятор! Голосуємо за готові корисні відповіді!
Кевін Вермер

Відповіді:


8

Налаштуйте проект для виведення файлу "MAP". Це дає всю інформацію про використання пам'яті. У CCS4 властивості проекту "Основні параметри" під параметрами лінкера це зроблять. У командному рядку використовуйте "--map_file".

Файл карти відображатиметься в папці Налагодження або Випуск. Перший розділ буде виглядати приблизно як приклад нижче, де показано розташування, довжину та використання кожного розділу пам'яті. (Зверніть увагу, що приклад показує 3 спеціальних розділи, яких у вас не буде: BT_FLASH, NV_FLASH та BI_FLASH.)

Щоб зрозуміти, як визначаються ці розділи, відвідайте командний файл лінкера проекту.

Приклад:

MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  SFR                   00000000   00000010  00000000  00000010  RWIX
  PERIPHERALS_8BIT      00000010   000000f0  00000000  000000f0  RWIX
  PERIPHERALS_16BIT     00000100   00000100  00000000  00000100  RWIX
  INFOD                 00001800   00000080  00000000  00000080  RWIX
  INFOC                 00001880   00000080  00000000  00000080  RWIX
  INFOB                 00001900   00000080  00000000  00000080  RWIX
  INFOA                 00001980   00000080  00000000  00000080  RWIX
  RAM                   00001c00   00004000  00003fea  00000016  RWIX
  BT_FLASH              00005c00   00001000  00000f34  000000cc  RWIX
  NV_FLASH              00006c00   00000500  0000002a  000004d6  RWIX
  BI_FLASH              00007100   00000100  00000010  000000f0  RWIX
  FLASH                 00007200   00008d80  00008d80  00000000  RWIX
  INT00                 0000ff80   00000002  00000000  00000002  RWIX
  INT01                 0000ff82   00000002  00000000  00000002  RWIX
  INT02                 0000ff84   00000002  00000000  00000002  RWIX
  INT03                 0000ff86   00000002  00000000  00000002  RWIX
  INT04                 0000ff88   00000002  00000000  00000002  RWIX
  INT05                 0000ff8a   00000002  00000000  00000002  RWIX
  INT06                 0000ff8c   00000002  00000000  00000002  RWIX
  INT07                 0000ff8e   00000002  00000000  00000002  RWIX
  INT08                 0000ff90   00000002  00000000  00000002  RWIX
  INT09                 0000ff92   00000002  00000000  00000002  RWIX
  INT10                 0000ff94   00000002  00000000  00000002  RWIX
  INT11                 0000ff96   00000002  00000000  00000002  RWIX
  INT12                 0000ff98   00000002  00000000  00000002  RWIX
  INT13                 0000ff9a   00000002  00000000  00000002  RWIX
  INT14                 0000ff9c   00000002  00000000  00000002  RWIX
  INT15                 0000ff9e   00000002  00000000  00000002  RWIX
  INT16                 0000ffa0   00000002  00000000  00000002  RWIX
  INT17                 0000ffa2   00000002  00000000  00000002  RWIX
  INT18                 0000ffa4   00000002  00000000  00000002  RWIX
  INT19                 0000ffa6   00000002  00000000  00000002  RWIX
  INT20                 0000ffa8   00000002  00000000  00000002  RWIX
  INT21                 0000ffaa   00000002  00000000  00000002  RWIX
  INT22                 0000ffac   00000002  00000000  00000002  RWIX
  INT23                 0000ffae   00000002  00000000  00000002  RWIX
  INT24                 0000ffb0   00000002  00000000  00000002  RWIX
  INT25                 0000ffb2   00000002  00000000  00000002  RWIX
  INT26                 0000ffb4   00000002  00000000  00000002  RWIX
  INT27                 0000ffb6   00000002  00000000  00000002  RWIX
  INT28                 0000ffb8   00000002  00000000  00000002  RWIX
  INT29                 0000ffba   00000002  00000000  00000002  RWIX
  INT30                 0000ffbc   00000002  00000000  00000002  RWIX
  INT31                 0000ffbe   00000002  00000000  00000002  RWIX
  INT32                 0000ffc0   00000002  00000000  00000002  RWIX
  INT33                 0000ffc2   00000002  00000000  00000002  RWIX
  INT34                 0000ffc4   00000002  00000000  00000002  RWIX
  INT35                 0000ffc6   00000002  00000000  00000002  RWIX
  INT36                 0000ffc8   00000002  00000000  00000002  RWIX
  INT37                 0000ffca   00000002  00000000  00000002  RWIX
  INT38                 0000ffcc   00000002  00000000  00000002  RWIX
  INT39                 0000ffce   00000002  00000000  00000002  RWIX
  INT40                 0000ffd0   00000002  00000000  00000002  RWIX
  INT41                 0000ffd2   00000002  00000002  00000000  RWIX
  INT42                 0000ffd4   00000002  00000002  00000000  RWIX
  INT43                 0000ffd6   00000002  00000002  00000000  RWIX
  INT44                 0000ffd8   00000002  00000002  00000000  RWIX
  INT45                 0000ffda   00000002  00000002  00000000  RWIX
  INT46                 0000ffdc   00000002  00000002  00000000  RWIX
  INT47                 0000ffde   00000002  00000002  00000000  RWIX
  INT48                 0000ffe0   00000002  00000002  00000000  RWIX
  INT49                 0000ffe2   00000002  00000002  00000000  RWIX
  INT50                 0000ffe4   00000002  00000002  00000000  RWIX
  INT51                 0000ffe6   00000002  00000002  00000000  RWIX
  INT52                 0000ffe8   00000002  00000002  00000000  RWIX
  INT53                 0000ffea   00000002  00000002  00000000  RWIX
  INT54                 0000ffec   00000002  00000002  00000000  RWIX
  INT55                 0000ffee   00000002  00000002  00000000  RWIX
  INT56                 0000fff0   00000002  00000002  00000000  RWIX
  INT57                 0000fff2   00000002  00000002  00000000  RWIX
  INT58                 0000fff4   00000002  00000002  00000000  RWIX
  INT59                 0000fff6   00000002  00000002  00000000  RWIX
  INT60                 0000fff8   00000002  00000002  00000000  RWIX
  INT61                 0000fffa   00000002  00000002  00000000  RWIX
  INT62                 0000fffc   00000002  00000002  00000000  RWIX
  RESET                 0000fffe   00000002  00000002  00000000  RWIX
  FLASH2                00010000   00035c00  0000aa80  0002b180  RWIX

1
Це здорово, у мене є файл карти, але чесно - я повинен відкрити файл і додати його сам !? Я занадто ледачий для цього :)
vicatcu

2
Схоже, основне завдання для сценарію python, який запускається під час компіляції.
tyblu

7

CCSv5 має графічний дисплей використання пам'яті. Виберіть Перегляд -> Інше -> Студія композитора коду -> Виділення пам'яті. Перший раз, коли я це використав, потрібно було встановити певну конфігурацію для проекту .... але це підказало для всього і було відносно просто.


Я знаю, що я трохи спізнююсь, але будь-які поради щодо того, що робити, щоб це відобразилось, я запускаю CCSV5, але в папці «інше» немає папки CodeComposerStudio
Hugoagogo

у CCS v 6.1.1 подання доступне через вікно-> Показати перегляд-> розподіл пам'яті. Завдяки @Max за те, що випали натяк на це, набагато приємніше, ніж дивитися на файл карти.
Марк Ліндаль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.