This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS570LS3137:arm-no-eabi-gcc 编译错误

Guru**** 2524550 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/915247/compiler-tms570ls3137-arm-none-eabi-gcc-compile-error

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

工具/软件:TI C/C++编译器

我使用 HALCOGEN 使用 GCC 工具生成代码、并使用 arm-none-eabi-gcc 在 Linux 上编译代码、makefile 报告了编译错误:

arm-no-eabi-ld -n -o boot.elf ./bin/*。o ./bin/*。a -L//usr/bin/gcc-arm-none-eabi-9-2019-Q4-maj/arm-none-eabi/lib
arm-none-eabi-ld:警告:找不到条目符号_start;默认为000000008000
arm-none-eabi-ld:./bin/startup.o:在函数` c_int00'中:
/root/ls3137/3137_boot/ls3137_miniboot/init/startup.c:649:未`对 μ_sidata'的引用
arm-none-eabi-ld:/root/ls3137/3137_boot/ls3137_miniboot/init/startup.c:649:未`对 sildata'的引用
arm-none-eabi-ld:/root/ls3137/3137_boot/ls3137_miniboot/init/startup.c:650:未`对"_sdata"的引用
arm-none-eabi-ld:/root/ls3137/3137_boot/ls3137_miniboot/init/startup.c:650:未`对"_sdata"的引用
arm-none-eabi-ld:/root/ls3137/3137_boot/ls3137_miniboot/init/startup.c:668:未`对"退出"的引用
arm-none-eabi-ld:./bin/libgcc.a (_dvmd_lnx.o):在函数`_DIV0中:
/opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/libgcc/../gcc/config/arm/lib1funcs.asm:1093:未定义`提升'的引用
make:***[boot]错误1

这是我的 makefile 文件:

############################ 工具链##########################

#gcc_bin =$(gcc_home) bin/gcc_bin
=

#cross_compile =$(gcc_bin) arm-linux-
cross_compile = arm-no-eabi-
CC =$(cross_compile) gcc
AR =$(cross_compile) ar
LD =$(cross_compile)
jobjcopy =$(cross_mp########/jrm#########/compildump########/jr1#
#/jrm######/jrm##########/jrm#.cc#####.




标记##############################

#编译标志:*。c 的 CFLAGS、*。S
CFLAGS 的 SFLAGS +=-g
CFLAGS +=-O0
CFLAGS +=-Wall
CFLAGS +=-mcpu=cortex-r4F
#CFLAGS +=-stdst=c99
#CFLAGS +=-m#-m#
vLAG#=v3#-m#-m#

vLAG#+=vLAG#
v3#-m#-m#-cf LAG#+=vLAG#=v3#-m#-r#-m# vLAG#+=vLAG#


DIRS 和 SRCS ##############################

LDFLAGS=-L//usr/bin/gcc-arm-none-eabi-9-2019-Q4-maj/arm-no-eabi/lib
#查找当前方向的所有子方向。
dirs :=$(外壳查找. -maxdepth 1 -type d)
dirs:=$(basename $(patsubst ./%、%、$(dirs))
dirs:=$(filter-out $(exclude_dirs)、$(dirs)
Subdirs:=$(patterrs)

# SRCS、objs 且 depends
=$(excludine_dirs)
#.c =$(excludinedly#


)#.c =$(excludinations.c)#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.c =#.



规则############################

#
#输入 Makepie
#
all:subdirs $(LIB)$(target)

#
# LIB target
#
$(LIB):$(OBJS)$(ASMOBJS)
#$(AR)$(TOPDIR)/lib/$@$$^
#$(RM)*。o *。a

#在所有方向上执行'mirs'。
Subdirs:$(Subdirs)
#echo $(Subdirs)
@for dir in $(Subdirs);\
do \
echo;\
echo "--- $dir ------------ ";\
$(make)-C $$dir all || exit 1;\
echo "--> 退出$$dir ---------- ";\
echo;\
Done

######################
#
#最终二进制目标
#
########################
$(target):$(OBJS)$(ASMOBJS)
#$(LD)-n -o $@$(LDFLAGS)
-MV $(TOPDIR)/bin/ls3137_intvecs.o $(TOPDIR)/
#$(LD)-n -o $^@.elf crt0.o $(TOPDIR)/bin/*。o $(FLAGS)
$(LD)-n -o $@.elf $(TOPDIR)/bin/*。o $(TOPDIR)/bin/*。a $(LDFLAGS)
#$(LD)-n -o $@.elf $(TOPDIR)/bin/*。o $(LDFLAGS)
##$(LD)-n -o $@.elf $(TOPDIR)/bin/*。o $(LDFLAGS)
#-rm $(TOPDIR)/crt0.o
$(objcopy)-O 二进制文件--strip-all --verbose $@.elf $@.bin
$(OBJDUMP)-D $@.elf > dump_$@




@


@ü.txt #源代码规则#$(OBJS):%.c (OBJS)$(TOCOL




)$(LAM)<$(LAGCC)$(LCC$)-$(LAM (LCC$)<$(LAGCOM)<$(LCC$)-BOOW)<$(LCC$(LCC$)<$(LAGCOM)<$(LCC$)<$)<$(LAM (LCCS)<$)<$(LAGCOM (LCC$)< 如果头文件被改变、编译将被执行。
第1个。 设置-e:如果有任何命令退出错误,则停止
#2。 rm -f $@:删除已存在的 depend 文件
#3. -mm:将 Depend 关系写入.d 文件
#4。 $$:PID
#5。 sed:将"xxx.o:xxx.c depend .h"替换为"xxx.o xxx.d:xxx.c depend .h"
、# 然后将其写入 xxx.d
第6号。 rm -f $@:删除临时文件。
#
#$(
@):%.d:%.c #

@ set -e;rm -f $@;\#$(CC)-mm $(CFLAGS)<<$@$。$$$$$$;\# sed、\($*\)\.o[:]*、\1.o $@$:、g'<




$$$$$$$$$@@@:$|$$$|$$$$$$|$$$$$$$$$$|$$$$$$|$$$$|$$$|$$$$|$$$$|$$|$$|$|$$$|$$$| \
完成
#$(RM)$(target)$(LIB)$(OBJS)$(depends)
#$(RM)$(depends)
$(RM)$(TOPDIR)/bin/*。o
$(RM)$(TOPDIR)/boot.bin
$(RM)$(TOPDIR)/boot.hex