Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ICC7 - как разместить МНОГО констант
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
yung
Здравствуйте! Вопрос у меня такой. В М2561 надо держать много данных в памяти программ (оцифрованный голос). Как только выхожу за 64к, компилятор ругается, что область lit (где и хранятся константы) перегружена. Я рассчитывал, что собственно исполняемый код будет небольшим (~5% от объема), а вся память уйдет под голос. Есть, конечно, вариант с подгрузкой непосредственно в hex на этапе программирования кристалла, но хотелось бы все таки в программу эти вещи загнать.
mdmitry
64к это сегмент, обычно этот объем ограничивает статические данные. Попробуйте разбить Ваши данные на несколько массивов и пересобрать проект.
P.S. Посмотрите документацию по вашему компилятору по размещению сегментов памяти и их объеме
yung
Цитата(mdmitry @ Feb 3 2008, 13:01) *
64к это сегмент, обычно этот объем ограничивает статические данные. Попробуйте разбить Ваши данные на несколько массивов и пересобрать проект.
P.S. Посмотрите документацию по вашему компилятору по размещению сегментов памяти и их объеме


Массивов и так несколько - каждое слово или фраза в своем. А в документации собак вешают на гарвардскую архитектуру, хотя проблема на пустом месте - есть же доп. регистр в кристалле для переключения старших адресов. Я, чтобы не терять времени, пошел уже тем путем, о котором упоминал - массивы перегоняю в hex в AVR-Studio, а затем дописываю в основной hex.
Я кроме ICC ничего не пробовал - до сих пор он меня устраивал. Интересно, как обстоят дела в других компиляторах на этот счет.
aesok
Цитата(yung @ Feb 3 2008, 14:08) *
Интересно, как обстоят дела в других компиляторах на этот счет.


В avr-gcc гдето на двоечку с плюсом. Можно, но очень много нужно будет делать ручками.

Анатолий.
plombir
Цитата(yung @ Feb 3 2008, 14:08) *
... как обстоят дела в других компиляторах на этот счет.

В IAR-e сплошной массив на 110 кБ (m128) подключался. С указателями обращаться к данным не получилось, а вот с обычной конструкцией array[unsigned long] работало без проблем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.