Это старая версия документа.


Для разработки потребуются следующие инструменты:

  1. arm-none-eabi (компиляторы, сборщик, дебаггер) https://launchpad.net/gcc-arm-embedded/+download
  2. openocd (собственно посредник между железом и дебаггером) http://openocd.org/repos/;

Далее используем следующий makefile

EXECUTABLE = $(notdir $(CURDIR)).elf EXECHEX = $(notdir $(CURDIR)).hex EXECBIN = $(notdir $(CURDIR)).bin EXECLIST = $(notdir $(CURDIR)).list

#Tools TOOLROOT =/opt/gcc-arm-none/bin/arm-none-eabi CC = $(TOOLROOT)-gcc LD = $(TOOLROOT)-gcc AR = $(TOOLROOT)-ar AS = $(TOOLROOT)-as OC = $(TOOLROOT)-objcopy OD = $(TOOLROOT)-objdump SZ = $(TOOLROOT)-size #~Tools

#processor specific, CHANGE for NEED PTYPE = STM32F10X_MD LDPATH = ./link LDSCRYPT = link.ld #processor specific

CFLAGS = -mcpu=cortex-m3 -mthumb -Wall -Wextra -Wimplicit-function-declaration -finline-functions -g -MD CFLAGS +=-D$(PTYPE) CFLAGS +=-DUSE_FULL_ASSERT CFLAGS +=-DDEBUG -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -ggdb #debug #CFLAGS +=-DUSE_STDPERIPH_DRIVER #use std driver or not CFLAGS +=-DHSE_VALUE=8000000

AFLAGS += -ahls -mapcs-32 BINFLAGS = -Obinary HEXFLAGS = -Oihex ODFLAGS = -S

LDFLAGS = -L$(LDPATH) -T$(LDPATH)/$(LDSCRYPT) -mthumb -mcpu=cortex-m3 LDFLAGS +=-nostartfiles -Wl,-Map,$(BINDIR)/$(notdir $(CURDIR)).map –specs=nano.specs

#dir CMSIS =../00_CMSIS/cmsis STINC =../00_ST/inc/ STSRC =../00_ST/src/ #

can change src,obj,bin

SRCDIR = $(CMSIS) SRCDIR +=. ./init/src ./common/src ./cycle/src ./uscntr/src ./view/src SRCDIR +=./cmsis_boot ./cmsis_boot/startup OBJDIR =./obj BINDIR =./bin INCPATH =-I$(CMSIS)

INCPATH +=-I./cmsis_boot -I./init/inc -I./ INCPATH +=-I./common/inc -I./cycle/inc -I./uscntr/inc -I./view/inc

STARTUP = ./cmsis_boot/startup/startup_stm32f10x_md.o ./cmsis_boot/system_stm32f10x.o

#

can change src,obj,bin

#

don`t change

SOURCES := $(foreach src,$(SRCDIR), $(wildcard $(src)/*.c)) INCLUDES := $(wildcard $(INCDIR)/*.h) OBJECTS := $(patsubst %.c,%.o,$(SOURCES)) DBJECTS := $(patsubst %.c,%.d,$(SOURCES)) #

don`t change

#~dir

.PHONY: all clean

all: $(SOURCES) $(OBJDIR) $(OBJECTS) $(BINDIR)/$(EXECUTABLE) $(BINDIR)/$(EXECBIN) $(BINDIR)/$(EXECHEX) $(BINDIR)/$(EXECLIST)

$(OBJDIR):$(BINDIR)

mkdir -p  $(OBJDIR)

$(BINDIR): # @echo 'Make bindir'

mkdir -p $(BINDIR)	

$(BINDIR)/$(EXECLIST):$(BINDIR)/$(EXECUTABLE)

 $(OD) $(ODFLAGS) $< > $(BINDIR)/$(EXECLIST)

$(BINDIR)/$(EXECHEX):$(BINDIR)/$(EXECUTABLE)

 $(OC) $(HEXFLAGS) $(BINDIR)/$(EXECUTABLE)  $(BINDIR)/$(EXECHEX)

$(BINDIR)/$(EXECBIN):$(BINDIR)/$(EXECUTABLE)

 $(OC) $(BINFLAGS) $(BINDIR)/$(EXECUTABLE)  $(BINDIR)/$(EXECBIN)

$(BINDIR)/$(EXECUTABLE):$(OBJECTS) # @echo 'Make execut'

$(LD) $(LDFLAGS) $(LIBRARIES) $(OBJECTS) -o $@

# $@ name of the object file # $< name of cpp file %.o : %.c

$(CC) -c $(CFLAGS) $(INCPATH)   $< -o $@

%.o: %.s

$(AS)	$(AFLAGS) -c $< -o $@
  

clean:

rm -f $(OBJECTS) -f $(DBJECTS) -f $(BINDIR)/$(EXECUTABLE) -f $(BINDIR)/$(EXECBIN) -f $(BINDIR)/$(EXECLIST) -f $(BINDIR)/$(EXECHEX)  -f $(BINDIR)/*.map
dev/cortex_rus/tools.1447676288.txt.gz · Последние изменения: 2015/11/16 15:18 — alexeyb
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0