61397

[i] Расположение функций в ОЗУ в IDE Keil

Дата последнего изменения: 03.12.2025 12:10:21

В данной статье рассмотрено расположение функций в ОЗУ в IDE Keil на примере МК семейства К1986ВЕ9x. Для других МК настройки будут аналогичными (К1901ВЦ1QI, К1986ВК214, К1986ВК234, семейство К1986ВЕ1x).

Сначала в scatter-файл в область IRAM1 (для МК семейства К1986ВЕ1x - это область IRAM2, к которой есть доступ по шине AHB_Lite) необходимо добавить секцию, например, "EXECUTABLE_MEMORY_SECTION", как реализовано в SPL. Далее функции, которые требуется разместить в ОЗУ, необходимо объявить с атрибутом __attribute__((section("EXECUTABLE_MEMORY_SECTION"))), который сообщает компилятору, что данную функцию требуется разместить в секцию с именем "EXECUTABLE_MEMORY_SECTION".

Scatter-файлы с добавленной секцией "EXECUTABLE_MEMORY_SECTION" входят в состав Software Pack и располагаются в папке RTE\Device\"MCU" относительно проекта. Подключение scatter-файла к проекту выполняется в опциях проекта, вкладка Linker. Необходимо убрать опцию "Use Memory Layout from Target Dialog", и далее указать требуемый scatter-файл в поле "Scatter File", рисунок 1.

Рисунок 1 - Подключение scatter-файла к проекту для К1986ВЕ92x

Пример scatter-файла для МК семейства К1986ВЕ9x приведен во фрагменте кода 1.

Фрагмент кода 1 - Scatter-файл для МК семейства К1986ВЕ9x из состава Software Pack

; ******************************************************************************
; ************* Scatter-Loading Description File for K1986VE9xI ****************
; ******************************************************************************

LR_IROM1 0x08000000 0x00020000 { ; load region size_region
    ER_IROM1 0x08000000 0x00020000 { ; load address = execution address
         *.o (RESET, +First)
         *(InRoot$$Sections)
         .ANY (+RO)
         .ANY (+XO)
    }
    RW_IRAM1 0x20000000 0x00008000 { ; RW data
         *.o (EXECUTABLE_MEMORY_SECTION)
         .ANY (+RW +ZI)
    }
}

Более подробно про scatter-файл можно прочитать в документации на официальном сайте IDE Keil

Сохранить статью в PDF

Программное обеспечение

Теги

Была ли статья полезной?