contrib/loaders: Enforce Little Endian ARM machine code

arm-none-eabi target triplet defaults to Little Endian, and so far any
submitted machine code snippets have been verified to be Little Endian.
However a user might override [ARM_]CROSS_COMPILE with an armeb toolchain,
potentially resulting in invalid machine code.

Let's be safe and enforce Little Endian mode for assembler and compiler.

Change-Id: I9cefe24689eaded25d60ffb1f254b254e8d76f9d
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-on: http://openocd.zylin.com/3498
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
This commit is contained in:
Andreas Färber
2016-05-22 00:41:15 +02:00
committed by Andreas Fritiofson
parent 0e95629eb1
commit 81631e49a6
6 changed files with 20 additions and 8 deletions

View File

@@ -6,6 +6,8 @@ CC=$(CROSS_COMPILE)gcc
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
CFLAGS = -static -nostartfiles -mlittle-endian -Wa,-EL
all: erase.inc write.inc
.PHONY: clean
@@ -15,7 +17,7 @@ all: erase.inc write.inc
erase.elf write.elf: fm4.h
%.elf: %.S
$(CC) -static -nostartfiles $< -o $@
$(CC) $(CFLAGS) $< -o $@
%.lst: %.elf
$(OBJDUMP) -S $< > $@

View File

@@ -4,10 +4,12 @@ CROSS_COMPILE ?= arm-none-eabi-
AS = $(CROSS_COMPILE)as
OBJCOPY = $(CROSS_COMPILE)objcopy
AFLAGS = -EL
all: kinetis_ke_flash.inc kinetis_ke_watchdog.inc
%.elf: %.s
$(AS) $< -o $@
$(AS) $(AFLAGS) $< -o $@
%.bin: %.elf
$(OBJCOPY) -Obinary $< $@

View File

@@ -6,6 +6,8 @@ CC=$(CROSS_COMPILE)gcc
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
CFLAGS = -static -nostartfiles -mlittle-endian -Wa,-EL
all: erase.inc erase_check.inc write.inc
.PHONY: clean
@@ -15,7 +17,7 @@ all: erase.inc erase_check.inc write.inc
erase.elf erase_check.elf write.elf: xmc1xxx.S
%.elf: %.S
$(CC) -static -nostartfiles $< -o $@
$(CC) $(CFLAGS) $< -o $@
%.lst: %.elf
$(OBJDUMP) -S $< > $@