Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос проекта из 5.5 в 6.5
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
vladik
В проекте для at91sam7x на версии IAR 5.5 расположение стеков в RAM задавалось вручную в ICF-файле:
Код
place in RAM_region   { readwrite,
                        block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
                        block UND_STACK, block ABT_STACK, block HEAP, block SYS_STACK };

соответственно в MAP-файле я видел:
Код
"P4", part 1 of 3:                         0x1510
  CSTACK                      0x00200000   0x1000  <Block>
    CSTACK           uninit   0x00200000   0x1000  <Block tail>
  .iar.dynexit                0x00201000    0x210  <Block>
    .iar.dynexit     uninit   0x00201000      0xc  cppinit.o [3]
    .iar.dynexit     uninit   0x0020100c    0x204  <Block tail>
  SVC_STACK                   0x00201210    0x200  <Block>
    SVC_STACK        uninit   0x00201210    0x200  <Block tail>
  IRQ_STACK                   0x00201410    0x100  <Block>
    IRQ_STACK        uninit   0x00201410    0x100  <Block tail>
  FIQ_STACK                   0x00201510      0x0  <Block>
  UND_STACK                   0x00201510      0x0  <Block>
  ABT_STACK                   0x00201510      0x0  <Block>
  HEAP                        0x00201510      0x0  <Block>
                            - 0x00201510   0x1510


После переноса проекта на версию IAR 6.5 линкер правильно читает все что касается ROM, но все стеки пихает в конец
Код
"P4", part 3 of 3:                          0x1300
  CSTACK                       0x002138b0   0x1000  <Block>
    CSTACK            uninit   0x002138b0   0x1000  <Block tail>
  SVC_STACK                    0x002148b0    0x200  <Block>
    SVC_STACK         uninit   0x002148b0    0x200  <Block tail>
  IRQ_STACK                    0x00214ab0    0x100  <Block>
    IRQ_STACK         uninit   0x00214ab0    0x100  <Block tail>
  FIQ_STACK                    0x00214bb0      0x0  <Block>
  UND_STACK                    0x00214bb0      0x0  <Block>
  ABT_STACK                    0x00214bb0      0x0  <Block>
  HEAP                         0x00214bb0      0x0  <Block>
                             - 0x00214bb0   0x1300

Как это лечить?

P.S. в проекте некоторые файлы компилируются C++
bigal
Интересно в чем проблема? И за чем лечить?
Можно написать так
Цитата
place at start of RAM_region { block CSTACK, block HEAP};
place in RAM_region { readwrite};

для одного блока можно
Цитата
place in RAM_region { readwrite, first block CSTACK, block HEAP};

можно по абсолютному адресу
Цитата
place at address Mem:0x0 .....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.