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

Keil include и define symbol в скрипте линкера

Добрый день!

Можно ли в *.sct файле определять переменные? Например в начале скрипта определить адреса и размер всех секторов памяти а потом уже использовать эти переменные при описании секторов.

Можно ли вложить в *.sct файл другой *.sct файл? Что то типа include "name.sct"?

GCC, IAR это всё умеют да и примеры есть, а для KEIL что то ничего подобного не встречается.

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


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

Можно. Пример sct

Спойлер
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m4 -xc

#define __ROM_BASE     0x08000000
#define __ROM_SIZE     (1024*128)

#define __RAM_BASE     0x20000000
#define __RAM_SIZE     (1024*32)

#define __CCMRAM_BASE  0x10000000
#define __CCMRAM_SIZE  (1024*8)

#define __STACK_SIZE       1024
#define __HEAP_SIZE        0

#define __STACK_TOP    (__CCMRAM_BASE + __CCMRAM_SIZE) /* Stack starts at end of CCMRAM */
#define __HEAP_BASE    (AlignExpr(+0, 8))              /* Heap starts after RW_RAM section, 8 byte aligned */

#define __RW_SIZE        (__RAM_SIZE - __STACK_SIZE - __HEAP_SIZE)

LR_FLASH __ROM_BASE __ROM_SIZE       ; load region size_region
{    
  ER_IROM1 __ROM_BASE __ROM_SIZE     ; load address = execution address
  {  
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }

  RW_IRAM1 __RAM_BASE __RW_SIZE      ; RW data
  {  
   .ANY (+RW +ZI)
  }

#if __HEAP_SIZE > 0
  ARM_LIB_HEAP  __HEAP_BASE EMPTY  __HEAP_SIZE  {}  ; Reserve empty region for heap  
#endif

  ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE {}  ; Reserve empty region for stack
}

 

 

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


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

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

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

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

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

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

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

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

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

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