Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сбои при заполнении RAM белее чем на 50%
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
rimpocha
MSP430F417, IAR for MSP430 V3.42A/W32 (3.42.1.9)

Есть функции (штук 10) оперирующие внутренними автоматическими массивами структур (по ~35 байт каждая структура). В строки этих структур пишется текст sprintf'ом, потом этот массив структур передается по шине.

Всего оперативки 1 килобайт. Когда количество используемой RAM переваливает за 500-600 байт, структуры передаются с искажением и в некоторых случаях при передаче контроллер подвисает.

Насколько я себе представляю, проблема в размещении данных в памяти. То ли происходит переполнение стека большими автоматическими переменными, то ли просто линковщик неправильно размещает сегменты... хбз.

Воркэраунды есть. Но хотелось бы докопаться до сути.
Кто-нить сталкивался?
rezident
printf/sprintf в IAR (особенно модели Large), требует до 1кБ памяти на стеке при работе с float. Это вам ни о чем не говорит?
rimpocha
Цитата(rezident @ Apr 4 2008, 01:23) *
printf/sprintf в IAR (особенно модели Large), требует до 1кБ памяти на стеке при работе с float. Это вам ни о чем не говорит?


Я использую форматер _PrintfSmall. Он отъедает 150 байт стека.
Ошибку я нашел. Пришлось напаивать JTAG на образец.
Печально, что IAR не ловит переполнение стека.
Dog Pawlowa
Цитата(rimpocha @ Apr 15 2008, 18:25) *
Я использую форматер _PrintfSmall. Он отъедает 150 байт стека.
Ошибку я нашел. Пришлось напаивать JTAG на образец.
Печально, что IAR не ловит переполнение стека.

А какую версию используете? Последние вроде ловят - перекомпилировал один из старых проектов и обнаружил ошибку. Почему-то считал, что static const в функции разместит данные во флэши. 07.gif
Просмотрел - версия есть. В 4.XX точно есть контроль стека.
VAI
Цитата
Почему-то считал, что static const в функции разместит данные во флэши

Я листинг смотрю, чтоб проконтролировать, правильно ли объявил...
Тоже на этом попадался...
etoja
поставь конденсаторы параллельно питанию рядом с выводами процессора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.