slavokhire5 0 8 октября, 2015 Опубликовано 8 октября, 2015 (изменено) · Жалоба Привет всем. Пишу проект в CCSv6 под msp430f6721 (32к FLASH, 2к RAM) оптимизация отключена. никак не могу разобраться, где посмотреть как лежат в памяти мои переменные. Смотрю map-файл - в нем есть секции .bss, .data, .stack. Со стеком все понятно. в .data лежит список из нескольких файлов в формате *.obj: .data 0 00002052 0000001a UNINITIALIZED 00002052 00000008 sensor_service.obj (.data) 0000205a 00000007 adc.obj (.data) 00002061 00000001 hci.obj (.data) 00002062 00000006 ble.obj (.data) 00002068 00000004 main.obj (.data) я так понимаю, это использование памяти автоматическими и/или статическими переменными, расположенными внутри функций в соответствующих файлах. окей, смотрим содержимое main.c: есть внутри main() переменная uint32_t systick_old, больше там никаких переменных не создается. 4 байта. подходит. Далее смотрим adc.c. там переменных внутри ф-ций побольше: static uint8_t adc_cnt; static uint32_t adc_total; uint8_t voltage; uint8_t percents; static uint8_t voltage_old; получается 8 байт. все эти переменные используются. похоже, на счет того, что лежит в области .data я ошибаюсь. что же там лежит? это первый вопрос в области .bss вероятно лежат глобальные переменные (если я ошибаюсь - скажите) второй вопрос: как увидеть нормальный map-файл, где видно занимаемый объем памяти каждой переменной? допустим у меня есть глобальная переменная systick, в map-файле указано, где она лежит, но не указано, сколько занимает. с мелкими переменными в своем коде все просто. а если где-то в недрах библиотеки какой-то буфер жрет кучу памяти, как его найти в .map? и третий вопрос. есть в CCS вкладка memory allocation, которая показывает, сколько памяти занимается. там указан объем используемой RAM == 1212 байт и FLASH == 10726 байт. Когда же я захожу в дебаг, в консоли написано: Loading complete. There were 10726 (code) and 48 (data) bytes written to FLASH/FRAM. The expected RAM usage is 1822 (uninitialized data + stack) bytes. Отчего так разрослась используемая область RAM? где глянуть что ее сожрало? (в дебаге CIO отключено) Изменено 8 октября, 2015 пользователем slavokhire5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться