我还是Makefiles的新手,所以我对此有点麻烦。我正在尝试为STM32F4编译一些代码,我为STM32F3获取了这个Makefile.common,并且只是更改了工具链和目录以反映我将用于开发的那些。不幸的是我收到了这个编译错误,虽然我已经尝试了广泛的谷歌搜索,但没有什么对帮助我解决它没什么帮助。
这是我得到的错误
make:execvp: /家庭/威尔弗雷德/ CodeSourcery的/ Sourcery_CodeBench_Lite_for_ARM_GNU_Linux /斌: 权限被拒绝: * [startup_stm32f4xx.o]错误127
这是我的Makefile.common的代码。谢谢!
# name of executable
ELF=$(notdir $(CURDIR)).elf
# Tool path
TOOLROOT=/home/wilfred/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin
# Library path
LIBROOT=/home/wilfred/Computer-Science/STM32F/STM32F4-Discovery_FW_V1.1.0
# Tools
CC=$(TOOLROOT)/arm-none-linux-gnueabi-gcc
LD=$(TOOLROOT)/arm-none-linux-gnueabi-gcc
AR=$(TOOLROOT)/arm-none-linux-gnueabi-ar
AS=$(TOOLROOT)/arm-none-linux-gnueabi-as
OBJCOPY=$(TOOLROOT)/arm-none-linux-gnueabi-objcopy
# Code Paths
DEVICE=$(LIBROOT)/Libraries/CMSIS/ST/STM32F4xx
CORE=$(LIBROOT)/Libraries/CMSIS/Include
PERIPH=$(LIBROOT)/Libraries/STM32F4xx_StdPeriph_Driver
SYSTEM_FILE=$(LIBROOT)/Libraries/CMSIS/ST/STM32F4xx/Source/Templates
STARTUP_FILE=$(LIBROOT)/Libraries/CMSIS/ST/STM32F4xx/Source/Templates/gcc_ride7
# Search path for standard files
vpath %.c $(TEMPLATEROOT)
# Search path for perpheral library
vpath %.c $(CORE)
vpath %.c $(PERIPH)/src
vpath %.c $(DEVICE)
vpath %.c $(SYSTEM_FILE)
vpath %.s $(STARTUP_FILE)
# Processor specific
LDSCRIPT = $(LIBROOT)/Project/Peripheral_Examples/IO_Toggle/TrueSTUDIO/IO_Toggle/stm32_flash.ld
STARTUP = startup_stm32f4xx.o system_stm32f4xx.o
# Compilation Flags
FULLASSERT = -DUSE_FULL_ASSERT
LDFLAGS+= -T$(LDSCRIPT) -mthumb -mcpu=cortex-m4
CFLAGS+= -mcpu=cortex-m4 -mthumb
CFLAGS+= -I$(TEMPLATEROOT) -I$(DEVICE) -I$(CORE) -I$(PERIPH)/inc -I.
CFLAGS+= -DUSE_STDPERIPH_DRIVER $(FULLASSERT)
CFLAGS+= -I$(DEVICE)/Include -I$(CORE)
CFLAGS+= -I$(LIBROOT)/Project/Peripheral_Examples/IO_Toggle
# Build executable
$(ELF) : $(OBJS)
$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
# compile and generate dependency info
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
$(CC) -MM $(CFLAGS) $< > $*.d
%.o: %.s
$(CC) -c $(CFLAGS) $< -o $@
%.bin: %.elf
$(OBJCOPY) -O binary $< $@
clean:
rm -f $(OBJS) $(OBJS:.o=.d) $(ELF) startup_stm32f* $(CLEANOTHER) $(BIN)
debug: $(ELF)
arm-none-linux-gnueabi-gdb $(ELF)
download: $(BIN)
st-flash write $(BIN) 0x8000000
etags:
find $(PERIPH) -type f -iname "*.[ch]" | xargs etags --append
find $(DEVICE) -type f -iname "*.[ch]" | xargs etags --append
find $(CORE) -type f -iname "*.[ch]" | xargs etags --append
find . -type f -iname "*.[ch]" | xargs etags --append
all: $(ELF)
# pull in dependencies
-include $(OBJS:.o=.d)
答案 0 :(得分:0)
您可以使用chmod更改权限(运行'man chmod'以获取更多信息)。
例如,
chmod 777 myfile.c
将myfile.c更改为拥有所有用户的所有权限(rwx)。