реклама на сайте
подробности

 
 
> ICC7 - как разместить МНОГО констант, М2561
yung
сообщение Feb 3 2008, 07:52
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Здравствуйте! Вопрос у меня такой. В М2561 надо держать много данных в памяти программ (оцифрованный голос). Как только выхожу за 64к, компилятор ругается, что область lit (где и хранятся константы) перегружена. Я рассчитывал, что собственно исполняемый код будет небольшим (~5% от объема), а вся память уйдет под голос. Есть, конечно, вариант с подгрузкой непосредственно в hex на этапе программирования кристалла, но хотелось бы все таки в программу эти вещи загнать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
mdmitry
сообщение Feb 3 2008, 10:01
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



64к это сегмент, обычно этот объем ограничивает статические данные. Попробуйте разбить Ваши данные на несколько массивов и пересобрать проект.
P.S. Посмотрите документацию по вашему компилятору по размещению сегментов памяти и их объеме


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
yung
сообщение Feb 3 2008, 11:08
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Цитата(mdmitry @ Feb 3 2008, 13:01) *
64к это сегмент, обычно этот объем ограничивает статические данные. Попробуйте разбить Ваши данные на несколько массивов и пересобрать проект.
P.S. Посмотрите документацию по вашему компилятору по размещению сегментов памяти и их объеме


Массивов и так несколько - каждое слово или фраза в своем. А в документации собак вешают на гарвардскую архитектуру, хотя проблема на пустом месте - есть же доп. регистр в кристалле для переключения старших адресов. Я, чтобы не терять времени, пошел уже тем путем, о котором упоминал - массивы перегоняю в hex в AVR-Studio, а затем дописываю в основной hex.
Я кроме ICC ничего не пробовал - до сих пор он меня устраивал. Интересно, как обстоят дела в других компиляторах на этот счет.
Go to the top of the page
 
+Quote Post
aesok
сообщение Feb 3 2008, 11:57
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



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


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

Анатолий.
Go to the top of the page
 
+Quote Post
plombir
сообщение Feb 3 2008, 14:25
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



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

В IAR-e сплошной массив на 110 кБ (m128) подключался. С указателями обращаться к данным не получилось, а вот с обычной конструкцией array[unsigned long] работало без проблем.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01392 секунд с 7
ELECTRONIX ©2004-2016