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

 
 
> Ошибка e16 Помогите!, Во время компилирования проекта возникает ошибка
#Kirill
сообщение Dec 14 2010, 06:04
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 14-12-10
Пользователь №: 61 595



Помогите пожалуйста разобраться, в чем ошибка. Добавил в проект менюшку, вылезла ошибка. Как с этим бороться?((((
Как я понимаю, не хватает памяти ОЗУ для глобальных переменных. Что мне делать?(((

Error[e16]: Segment NEAR_Z (size: 0x36a align: 0) is too long for segment definition. At least 0x39 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-Error[e16]: Segment NEAR_Z (size: 0x36a align: 0) is too long for segment definition. At least 0x39 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE:+_..X_EXT_SRAM_SIZE", where at the moment of placement the available memory ranges were "DATA:dcf-10ff,DATA:10ff--1"
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Stanislav_S
сообщение Dec 14 2010, 06:08
Сообщение #2


извечный пессимист
*****

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



Вам нехватает ОЗУ, поэтому у вас два пути:
- хороший путь - оптимизировать программу
- костыль - уменьшить размер стека в настройках проекта - результат непредсказуемый sm.gif
ЗЫ Очевидно у вас строки хранятся в ОЗУ так?


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 14 2010, 06:10
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (#Kirill @ Dec 14 2010, 08:04) *
Как я понимаю, не хватает памяти ОЗУ для глобальных переменных. Что мне делать?(((
Понимаете почти правильно. Не хватает ОЗУ. В нем располагаются глобальные переменные, стеки и куча (heap). Что делать? Оптимизируйте программу. Смотрите, сколько отведено на стек, смотрите, сколько глобальных преременных. Возможно у вас выводимые на экран строки хранятся в ОЗУ.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
#Kirill
сообщение Dec 14 2010, 06:11
Сообщение #4





Группа: Новичок
Сообщений: 3
Регистрация: 14-12-10
Пользователь №: 61 595



Все строки я объявляю через дерективу __flash char *
Go to the top of the page
 
+Quote Post
#Kirill
сообщение Dec 14 2010, 08:56
Сообщение #5





Группа: Новичок
Сообщений: 3
Регистрация: 14-12-10
Пользователь №: 61 595



УРА!!! Поборол проблему. Все, видимо, оказалось в процедуре вывода строк на экран ЖКИ.

Раньше она выглядела так:

__flash char *SOFTREV =
{
"Soft rev. - 1.00 ",
};


void DrawString(char *str)
{
for(char i=0;i<18;i++)
{
DrawSymbol(str[i]);
}
}

И для вывода строки использовалась:

DrawString(SOFTREV);

Или можно прямо:

DrawString(”1234567890zzzzzzz”);

//------------------------------------------------------------------------------

Я поменял код на:

void DrawString(char __flash *str I)
{
for(char i=0;i<18;i++)
{
char P=*(str+i);
DrawSymbol(P);
}
}

и

void DrawStringC(char *str)
{
for(char i=0;i<18;i++)
{
char P=*(str+i);
DrawSymbol(P);
}
}

И для вызова использую их так:

char str[18]= ”1234567890zzzzzzz”;

__flash char *SOFTREV[18] =
{
"Soft rev. - 1.00 ",
};

DrawString(&SOFTREV[0]);
DrawStringC(str);

Т.е. при передаче параметров в процедуру использую адрес [0]- го элемента массива.

Ошибка исчезла. Компилируется нормально. Всем спасибо!!! biggrin.gif

Сообщение отредактировал #Kirill - Dec 14 2010, 08:58
Go to the top of the page
 
+Quote Post

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

 


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


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