页次: 1
makefile贴一下,多写了个括号吧?
找到原因了 ,tools/mksunxi/mksunxi目录下的mksunxi要用新的编译链编译下。
大佬,
这是原代码:
lvgl_f1c100s.zip
大佬帮忙看下,好像是 140行这里错了 @$(MKSUNXI) $@,但是我新手看不懂
这是makefile的文件:
#
# Machine makefile
#
.PHONY:clean
.PHONY:write
.PHONY:mktool
.PHONY:dump
BUILD ?= build
RM = rm
ECHO = @echo
CP = cp
MKDIR = mkdir
SED = sed
PYTHON = python
CROSS_COMPILE = arm-eabi-
CC = $(CROSS_COMPILE)gcc
AS = $(CROSS_COMPILE)gcc -x assembler-with-cpp
LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
SIZE = $(CROSS_COMPILE)size
CSRCS = \
main.c \
machine/sys-clock.c \
machine/sys-dram.c \
machine/sys-uart.c \
machine/sys-copyself.c \
machine/sys-spi-flash.c \
machine/sys-mmu.c \
machine/exception.c \
# drivers
CSRCS += \
driver/gpio-f1c100s.c \
driver/pwm-f1c100s.c \
driver/reset-f1c100s.c \
lib/malloc.c \
lib/dma.c \
driver/clk-f1c100s-pll.c \
driver/fb-f1c100s.c \
arch/arm32/lib/strcpy.c \
arch/arm32/lib/strlen.c \
SRC_ASM = machine/start.S \
arch/arm32/lib/memcmp.S \
arch/arm32/lib/memcpy.S \
arch/arm32/lib/memmove.S \
arch/arm32/lib/memset.S \
arch/arm32/lib/setjmp.S \
arch/arm32/lib/strcmp.S \
arch/arm32/lib/strncmp.S \
#LIBRARIES
include ./lvgl/lv_core/lv_core.mk
include ./lvgl/lv_hal/lv_hal.mk
include ./lvgl/lv_objx/lv_objx.mk
include ./lvgl/lv_fonts/lv_fonts.mk
include ./lvgl/lv_misc/lv_misc.mk
include ./lvgl/lv_themes/lv_themes.mk
include ./lvgl/lv_draw/lv_draw.mk
#DRIVERS
#include ./lv_drivers/display/display.mk
#include ./lv_drivers/indev/indev.mk
#EXAMPLES
include ./lv_examples/lv_tests/lv_test_obj/lv_test_obj.mk
include ./lv_examples/lv_tests/lv_test_stress/lv_test_stress.mk
include ./lv_examples/lv_tests/lv_test_theme/lv_test_theme.mk
include ./lv_examples/lv_tests/lv_test_group/lv_test_group.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_bar/lv_test_bar.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_btn/lv_test_btn.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_btnm/lv_test_btnm.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_cb/lv_test_cb.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_chart/lv_test_chart.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_cont/lv_test_cont.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_ddlist/lv_test_ddlist.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_gauge/lv_test_gauge.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_img/lv_test_img.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_kb/lv_test_kb.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_label/lv_test_label.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_led/lv_test_led.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_line/lv_test_line.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_list/lv_test_list.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_lmeter/lv_test_lmeter.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_mbox/lv_test_mbox.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_page/lv_test_page.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_roller/lv_test_roller.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_slider/lv_test_slider.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_sw/lv_test_sw.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_ta/lv_test_ta.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_tabview/lv_test_tabview.mk
include ./lv_examples/lv_tests/lv_test_objx/lv_test_win/lv_test_win.mk
include ./lv_examples/lv_apps/benchmark/benchmark.mk
include ./lv_examples/lv_apps/demo/demo.mk
include ./lv_examples/lv_apps/sysmon/sysmon.mk
include ./lv_examples/lv_apps/terminal/terminal.mk
include ./lv_examples/lv_apps/tpcal/tpcal.mk
include ./lv_examples/lv_tutorial/1_hello_world/lv_tutorial_hello_world.mk
include ./lv_examples/lv_tutorial/2_objects/lv_tutorial_objects.mk
include ./lv_examples/lv_tutorial/3_styles/lv_tutorial_styles.mk
include ./lv_examples/lv_tutorial/4_themes/lv_tutorial_themes.mk
include ./lv_examples/lv_tutorial/5_antialiasing/lv_tutorial_antialiasing.mk
include ./lv_examples/lv_tutorial/6_images/lv_tutorial_images.mk
include ./lv_examples/lv_tutorial/7_fonts/lv_tutorial_fonts.mk
include ./lv_examples/lv_tutorial/8_animations/lv_tutorial_animations.mk
include ./lv_examples/lv_tutorial/9_responsive/lv_tutorial_responsive.mk
OBJ = $(addprefix $(BUILD)/, $(CSRCS:.c=.o)) $(addprefix $(BUILD)/, $(SRC_ASM:.S=.o))
DEFINES += -D__ARM32_ARCH__=5 -D__ARM926EJS__
ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding -std=gnu99 $(DEFINES)
CFLAGS := -g -ggdb -Wall -O3 -ffreestanding -std=gnu99 $(DEFINES)
CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding -std=gnu99 $(DEFINES)
LDFLAGS := -T f1c100s.ld -nostdlib
MCFLAGS := -march=armv5te -mtune=arm926ej-s -mfloat-abi=soft -marm -mno-thumb-interwork
LIBDIRS :=
LIBS := -lgcc
INCDIRS := -Imachine/include -Iarch/arm32/include -I.
SRCDIRS :=
INCDIRS += -Idriver/include -Ilib
# $(BUILD)/firmware_boot.bin:$(BUILD)/firmware.bin
# ./tools/mksunxiboot/mksunxiboot $^ $@
$(BUILD)/firmware.bin: $(BUILD)/firmware.elf
$(OBJCOPY) -v -O binary $^ $@
@echo Make header information for brom booting
@$(MKSUNXI) $@
$(BUILD)/firmware.elf: $(OBJ)
$(ECHO) "LINK $@"
$(CC) $(LDFLAGS) -Wl,--cref,-Map=$@.map -o $@ $^ $(LIBS)
$(SIZE) $@
$(BUILD)/%.o: %.S
$(ECHO) "AS $<"
$(AS) $(MCFLAGS) $(ASFLAGS) -c -o $@ $<
$(BUILD)/%.o: %.s
$(ECHO) "AS $<"
$(AS) $(MCFLAGS) $(CFLAGS) -o $@ $<
define compile_c
$(ECHO) "CC $<"
$(CC) $(INCDIRS) $(MCFLAGS) $(CFLAGS) -c -MD -o $@ $<
@# The following fixes the dependency file.
@# See http://make.paulandlesley.org/autodep.html for details.
@# Regex adjusted from the above to play better with Windows paths, etc.
@$(CP) $(@:.o=.d) $(@:.o=.P); \
$(SED) -e 's/#.*//' -e 's/^.*: *//' -e 's/ *\\$$//' \
-e '/^$$/ d' -e 's/$$/ :/' < $(@:.o=.d) >> $(@:.o=.P); \
$(RM) -f $(@:.o=.d)
endef
$(BUILD)/%.o: %.c
$(call compile_c)
OBJ_DIRS = $(sort $(dir $(OBJ)))
$(OBJ): | $(OBJ_DIRS)
$(OBJ_DIRS):
$(MKDIR) -p $@
clean:
find . -name "*.o" | xargs rm -f
find . -name "*.bin" | xargs rm -f
find . -name "*.elf" | xargs rm -f
find . -name "*.P" | xargs rm -f
#rm -rf *.o *.bin
#rm -rf $(BUILD)/*.o $(BUILD)/*.bin
write:
sudo sunxi-fel -p spiflash-write 0 $(BUILD)/firmware.bin
mktool:
cd tools/mksunxiboot && make
cd tools/mksunxi && make
dump:
$(OBJDUMP) -S myboot.o | less
MKSUNXI := tools/mksunxi/mksunxi
mkboot:
@echo Make header information for brom booting
@$(MKSUNXI) $(BUILD)/firmware.bin
root@yu-virtual-machine:/home/yu/lichee/lvgl_f1c100s# make
arm-eabi-objcopy -v -O binary build/firmware.elf build/firmware.bin
copy from `build/firmware.elf' [elf32-littlearm] to `build/firmware.bin' [binary]
Make header information for brom booting
tools/mksunxi/mksunxi: 1: tools/mksunxi/mksunxi: Syntax error: ")" unexpected
Makefile:140: recipe for target 'build/firmware.bin' failed
make: *** [build/firmware.bin] Error 2
各位大佬, 我用这个编译gcc-linaro-5.3.1-2016.05-i686_arm-eabi.tar
出现了以上的错误,请教下是什么问题?
页次: 1