Это старая версия документа.
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/inc/parser/handler.php on line 1458
Warning: Declaration of syntax_plugin_tablecalc::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/tablecalc/syntax.php on line 41
Warning: Declaration of syntax_plugin_tablecalc::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/tablecalc/syntax.php on line 72
Warning: Declaration of syntax_plugin_offline::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/offline/syntax.php on line 60
Warning: Declaration of syntax_plugin_offline::render($format, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/offline/syntax.php on line 67
Warning: preg_match(): Compilation failed: invalid range in character class at offset 3416 in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/inc/parser/lexer.php on line 118
Для разработки потребуются следующие инструменты: - arm-none-eabi (компиляторы, сборщик, дебаггер) https://launchpad.net/gcc-arm-embedded/+download - openocd (собственно посредник между железом и дебаггером) http://openocd.org/repos/; Далее используем следующий makefile <file> 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 </file>