您尚未登录。

#1 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2020-03-20 21:51:53

Quotation 说:

makefile贴一下,多写了个括号吧?

找到原因了 ,tools/mksunxi/mksunxi目录下的mksunxi要用新的编译链编译下。

#2 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2020-03-15 22:25:13

大佬,
这是原代码:
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 

#3 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2020-03-15 00:36:07

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
出现了以上的错误,请教下是什么问题?

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn