Универсальный makefile содержит секции настроек с параметрами:

  • Генерации шаблона проекта командой make template
  • Сборки приложения по команде make/make all

При внесении изменений в первую секцию требуется перегенерация шаблона проекта (см. соответствующий раздел). При внесении изменений во вторую секцию требуется пересборка проекта путем подачи команды make clean и затем make all.

Настройки секции генерации шаблона:

Имя параметра

Значение

CFG_ENTRYPOINT_NAME

Имя точки входа (по умолчанию функция main)

CFG_PROGRAM_ADDR *

Адрес Flash-памяти, по которому располагается приложение

CFG_PROGRAM_SIZE *

Размер приложения во Flash-памяти

CFG_RAM_ADDR *

Адрес начала RAM, резервированной для загружаемого кода

CFG_RAM_SIZE *

Размер RAM, зарезервированной для загружаемого кода

CFG_INPUT_BUFFER_NAME

Имя буфера ввода, через который данные передаются в загружаемый код

CFG_INPUT_BUFFER_SIZE

Размер буфера ввода

CFG_OUTPUT_BUFFER_NAME

Имя буфера вывода, данные из которого возвращаются вызывающему приложению

CFG_OUTPUT_BUFFER_SIZE

Размер буфера вывода

CFG_STACK_SIZE

Размер программного стека

CFG_INCLUDE_DIR

Путь до директории, содержащей заголовочные файлы GcaAPI.h и GrdAPI.h

CFG_SYS_DIR

Путь до директории, содержащей служебные утилиты

CFG_TARGET_NAME

Имя двоичного bin-файла, получаемого при компиляции

*

Поскольку в ключе под загружаемый код по умолчанию резервируется вся Flash-память и вся RAM, значения в этих пунктах изменять не нужно.  


В makefile доступны следующие настройки сборки проекта:

Имя параметра

Значение

OPT

Уровень оптимизации. Рекомендуемые значения 2 или s (так же допустимые значения 0 и 1, значение 3 крайне не рекомендуется)

SRC

Набор С-файлов, используемых в проекте

ASRC

Набор ASM-файлов, используемых в проекте


Важно заметить, что задаваемые имена файлов зависят от регистра. К примеру, при несовпадении регистра в имени файла main.c, при сборке может возникнуть следующая ошибка:

-------- begin --------
make: *** No rule to make target `main.o’, needed by `elf'. Stop.


Несовпадение имен как таковых проверяется отдельно и вызывает более внятную ошибку:

-------- begin --------
File main.c not found! Please check makefile (SRC, ASRC and CPPSRC values).


  • No labels