Перейти к содержанию
    

Настройка стека данных CSTACK

Приветствую!

Конечная цель - разместить код в загрузчике. Имеется загрузчик AVR230 http://microsin.net/programming/AVR/avr230...bootloader.html

Проект имеет уйму настроек. Если что-то неудачно зацепить, концов не найти. Проект был изначально для IAR 2.28. Вроде бы получилось его адаптировать на IAR 6.40. Загрузчик работает, программы тоже. Проблема началась, когда к проекту загрузчика прицепил ранее отлаженный код. Линкер выдаёт следующее:

 

Error[e16]: Segment CSTACK (size: 0xfc0 align: 0) is too long for segment definition. At least 0x2 more bytes needed. The problem occurred while processing the segment placement

command "-Z(DATA)CSTACK+(RAM_SIZE-40)=RAM_BASE-(RAM_BASE+RAM_SIZE-1)", where at the moment of placement the available memory ranges were "DATA:142-10ff"

Reserved ranges relevant to this placement:

DATA:100-101 NEAR_Z

DATA:102-141 RSTACK

DATA:142-10ff CSTACK

Error while running Linker

 

В проекте есть файл .xcl, содержащий следующую строку:

-Z(DATA)CSTACK+(RAM_SIZE-40-APP_SRAM_USAGE)=RAM_BASE-(RAM_BASE+RAM_SIZE-1)

Несколько мудрёное уравнение. И самое главное, в нём есть неизвестное APP_SRAM_USAGE.

 

Было замечено, что ошибка линкера появляется, когда в обработчике прерывания встречается обращение к структуре через указатель. Когда в теле обычной функции, то всё нормально. И чего линкер прицепился к обработчику прерывания?!

 

#pragma vector=TIMER0_OVF_vect

__interrupt void T0_mng (void)

{

char from_T0;

 

from_T0 = TCNT0;

while(from_T0 == TCNT0);

TCNT0 += (255-T0_preload);

//Syst->swe_Time = Syst->qty_SWI_executors++; /* Вызывает ошибку Линкера */

}

 

 

В свойствах проекта нет возможности изменить размеры стеков. Получается, что всё определяется файлом .xcl

 

Кто-то знает, как настроить стек данных?

Заранее благодарен!

 

 

 

bootldr.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...