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.

[参考译文] TMS570LC4357:GCC 工具链和 BE32模式

Guru**** 2042920 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/645423/tms570lc4357-gcc-toolchain-and-be32-mode

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

我尝试使用 GCC 工具链来创建由 HAL 代码生成器生成的应用二进制文件。 我无法生成 BE32格式的二进制文件。 似乎所有内置库都是针对 LE 编译的。 是否有任何使用 GCC 为该处理器创建二进制文件的示例? 这是由 HAL 代码生成器创建的项目根目录中的 Makefile 文件。

前缀= arm-no-eabi-CC
=$(prefix) gcc
LD =$(prefix) gcc
objcopy =$(prefix) objcopy

CFLAGS =-Wall -Werror -I include -mfp=vpv3-D16 -March = armv7-r -mcpu=cortex-rfCFLAGS
+=-mfrom-rand-lfrom-ge-specs =-nos-mfrom-specs -magus-mfrom-specs =-mfrom-gendian -mfrom-giv-mv3-dle-mfrom-
gc-sections -mbig-endian
BINFLAGS =-O binary

SRCS =$(wildcard source/*.c)
ASRCS =$(wildcard source/*.s)
OBJS =$(patsubst %.c、%.o、$(SRCS))
AOBJS =$(patsubst %.o、%.o、$






@


(gb) app.bin^(gb)/from.fb@:$(gb) gb (gb) gb (gb (gb)/fr %(gb) gb (gb) gb (gb (gb) gb)/gb (gb (gb) gb)/fr b (gb (gb (gb) gb (gb) gb (gb) gb)/fr %(gb)

%.c
$(CC)$(CFLAGS)-c $<-o $@

%.o:%.s
$(CC)$(CFLAGS)-c $<-o $@

clean:
rm -f $(OBJS)$(AOBJS) app.elf app.bin

此操作失败、出现如下错误:

/usr/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o:为小端字节序系统编译、目标是大端字节序

是否应该为大端字节序编译库? 对于 GCC 来说、这甚至是可能的吗?

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

    遗憾的是、GCC 编译器仅支持 LE 格式。 这是 GCC 工具链问题。 由于我们的 RM 器件是 LE 器件、因此它作为一个选项包含在 Halcogen 中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我成功地以 be 格式编译 Halcogen 代码并将其与 GCC 链接、它起作用。 问题出在为 LE 格式编译的库 libc 和 libgcc 中。 由于某种原因、HL_SYS_STARTUP 文件在 main 函数之后调用 exit 函数、这是不必要的。 如果删除了该调用并在链接器脚本中引用了 libc、则一切都正常。 如果使用 libc 和其他内置函数、则应重新编译这些函数。 以下是适用于 GCC 的 LED 项目示例:

    github.com/.../hercules-gcc