[an error occurred while processing this directive]
Ответ: Начну с последнего вопроса.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 23 октября 2002 г. 13:05
В ответ на: IAR C v2.27: контроль использованной памяти данных (SRAM) отправлено Engine 23 октября 2002 г. 12:30

shared в данном случае означает, что в данном модуле имеется ссылка к глобальным переменным, которые определены в другом модуле.
Относительно map файла. Там можно увидеть более детальную информацию по использованию памяти. Посмотри в каком модуле сколько памяти используется и каким образом (сегменты программ и данных).
И наконец, в листинге компилятора указывается также и размер стека, используемого в каждой функции, так что есть информация к размышлению.
И последее в качестве совета. Обычно проблемы со стеком возникают, когда в функции объявляется слишком много локальных переменных (например массив), которые размещаются в стеке. Поскольку размер стека в МК обычно невелик, то и возникает проблема, подобная твоей.
Решение простое: объявить эти переменные в функции как static. Конечно при этом память занимается такими переменными постоянно, зато стек не используется.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru