8daemon писал(а):
2) напишите скрипт сборки (make или cmake). Для справки смотрите тут /usr/share/gcc-arm-embedded/samples/src/ (на линухе) и
https://github.com/eldarkg/emdr1986x-st ... /README.md3) произведите сборку примера. Пример тут
https://github.com/eldarkg/emdr1986x-st ... /VCOM_EchoВсё это я читал, из ..samples/src взял Makefile и makefile.conf, но всё равно не понимаю куда прописать include-path и вообще исходники.
Можно ли Вас попросить скинуть хотя бы один пример Makefile для проектов для mdr1986 и компилятора GCC? А может уже готовый есть пример где-то лежит? Моего 10 лет опыта работы работы с МК не хватает на Makefile, ибо всегда использовал всё что угодно кроме него...
Код:
├── inc
│ ├── MDR32F9Qx_config.h
│ └── MDR32F9Qx_usb_handlers.h
├── Makefile
├── makefile.conf
├── readme.txt
├── src
│ └── main.c
└── USB_CDC_DRIVER
└── MDRVComport.inf
Код:
# Selecting Core
CORTEX_M=3
# Use newlib-nano. To disable it, specify USE_NANO=
USE_NANO=--specs=nano.specs
# Use seimhosting or not
USE_SEMIHOST=--specs=rdimon.specs
USE_NOHOST=--specs=nosys.specs
CORE=CM$(CORTEX_M)
BASE=../..
# Compiler & Linker
CC=arm-none-eabi-gcc
CXX=arm-none-eabi-g++
# Options for specific architecture
ARCH_FLAGS=-mthumb -mcpu=cortex-m$(CORTEX_M)
# Startup code
STARTUP=$(BASE)/startup/startup_ARM$(CORE).S
# -Os -flto -ffunction-sections -fdata-sections to compile for code size
CFLAGS=$(ARCH_FLAGS) $(STARTUP_DEFS) -Os -flto -ffunction-sections -fdata-sections
CXXFLAGS=$(CFLAGS)
# Link for code size
GC=-Wl,--gc-sections
# Create map file
MAP=-Wl,-Map=$(NAME).map
Код:
include makefile.conf
NAME=usb
STARTUP_DEFS=-D__STARTUP_CLEAR_BSS -D__START=main
LDSCRIPTS=-L. -L$(BASE)/ldscripts -T nokeep.ld
LFLAGS=$(USE_NANO) $(USE_NOHOST) $(LDSCRIPTS) $(GC) $(MAP)
$(NAME)-$(CORE).axf: src/main.c $(STARTUP)
$(CC) $^ $(CFLAGS) $(LFLAGS) -o $@
clean:
rm -f $(NAME)*.axf *.map *.o
Результат:
Код:
make: *** Нет правила для сборки цели `../../startup/startup_ARMCM3.S', требуемой для `usb-CM3.axf'. Останов.
Я конечно же понимаю почему такой результат, просто нужен пример чтобы прописать все пути верно. Боюсь, совет смотреть примеры в этом каталоге не годятся.