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:
parent
0e95629eb1
commit
81631e49a6
|
@ -4,10 +4,12 @@ ARM_CROSS_COMPILE ?= arm-none-eabi-
|
||||||
ARM_AS ?= $(ARM_CROSS_COMPILE)as
|
ARM_AS ?= $(ARM_CROSS_COMPILE)as
|
||||||
ARM_OBJCOPY ?= $(ARM_CROSS_COMPILE)objcopy
|
ARM_OBJCOPY ?= $(ARM_CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
|
ARM_AFLAGS = -EL
|
||||||
|
|
||||||
arm: armv4_5_crc.inc armv7m_crc.inc
|
arm: armv4_5_crc.inc armv7m_crc.inc
|
||||||
|
|
||||||
armv4_5_%.elf: armv4_5_%.s
|
armv4_5_%.elf: armv4_5_%.s
|
||||||
$(ARM_AS) $< -o $@
|
$(ARM_AS) $(ARM_AFLAGS) $< -o $@
|
||||||
|
|
||||||
armv4_5_%.bin: armv4_5_%.elf
|
armv4_5_%.bin: armv4_5_%.elf
|
||||||
$(ARM_OBJCOPY) -Obinary $< $@
|
$(ARM_OBJCOPY) -Obinary $< $@
|
||||||
|
@ -16,7 +18,7 @@ armv4_5_%.inc: armv4_5_%.bin
|
||||||
$(BIN2C) < $< > $@
|
$(BIN2C) < $< > $@
|
||||||
|
|
||||||
armv7m_%.elf: armv7m_%.s
|
armv7m_%.elf: armv7m_%.s
|
||||||
$(ARM_AS) $< -o $@
|
$(ARM_AS) $(ARM_AFLAGS) $< -o $@
|
||||||
|
|
||||||
armv7m_%.bin: armv7m_%.elf
|
armv7m_%.bin: armv7m_%.elf
|
||||||
$(ARM_OBJCOPY) -Obinary $< $@
|
$(ARM_OBJCOPY) -Obinary $< $@
|
||||||
|
|
|
@ -4,10 +4,12 @@ ARM_CROSS_COMPILE ?= arm-none-eabi-
|
||||||
ARM_AS ?= $(ARM_CROSS_COMPILE)as
|
ARM_AS ?= $(ARM_CROSS_COMPILE)as
|
||||||
ARM_OBJCOPY ?= $(ARM_CROSS_COMPILE)objcopy
|
ARM_OBJCOPY ?= $(ARM_CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
|
ARM_AFLAGS = -EL
|
||||||
|
|
||||||
arm: armv4_5_erase_check.inc armv7m_erase_check.inc armv7m_0_erase_check.inc
|
arm: armv4_5_erase_check.inc armv7m_erase_check.inc armv7m_0_erase_check.inc
|
||||||
|
|
||||||
armv4_5_%.elf: armv4_5_%.s
|
armv4_5_%.elf: armv4_5_%.s
|
||||||
$(ARM_AS) $< -o $@
|
$(ARM_AS) $(ARM_AFLAGS) $< -o $@
|
||||||
|
|
||||||
armv4_5_%.bin: armv4_5_%.elf
|
armv4_5_%.bin: armv4_5_%.elf
|
||||||
$(ARM_OBJCOPY) -Obinary $< $@
|
$(ARM_OBJCOPY) -Obinary $< $@
|
||||||
|
@ -16,7 +18,7 @@ armv4_5_%.inc: armv4_5_%.bin
|
||||||
$(BIN2C) < $< > $@
|
$(BIN2C) < $< > $@
|
||||||
|
|
||||||
armv7m_%.elf: armv7m_%.s
|
armv7m_%.elf: armv7m_%.s
|
||||||
$(ARM_AS) $< -o $@
|
$(ARM_AS) $(ARM_AFLAGS) $< -o $@
|
||||||
|
|
||||||
armv7m_%.bin: armv7m_%.elf
|
armv7m_%.bin: armv7m_%.elf
|
||||||
$(ARM_OBJCOPY) -Obinary $< $@
|
$(ARM_OBJCOPY) -Obinary $< $@
|
||||||
|
|
|
@ -6,6 +6,8 @@ CC=$(CROSS_COMPILE)gcc
|
||||||
OBJCOPY=$(CROSS_COMPILE)objcopy
|
OBJCOPY=$(CROSS_COMPILE)objcopy
|
||||||
OBJDUMP=$(CROSS_COMPILE)objdump
|
OBJDUMP=$(CROSS_COMPILE)objdump
|
||||||
|
|
||||||
|
CFLAGS = -static -nostartfiles -mlittle-endian -Wa,-EL
|
||||||
|
|
||||||
all: erase.inc write.inc
|
all: erase.inc write.inc
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
@ -15,7 +17,7 @@ all: erase.inc write.inc
|
||||||
erase.elf write.elf: fm4.h
|
erase.elf write.elf: fm4.h
|
||||||
|
|
||||||
%.elf: %.S
|
%.elf: %.S
|
||||||
$(CC) -static -nostartfiles $< -o $@
|
$(CC) $(CFLAGS) $< -o $@
|
||||||
|
|
||||||
%.lst: %.elf
|
%.lst: %.elf
|
||||||
$(OBJDUMP) -S $< > $@
|
$(OBJDUMP) -S $< > $@
|
||||||
|
|
|
@ -4,10 +4,12 @@ CROSS_COMPILE ?= arm-none-eabi-
|
||||||
AS = $(CROSS_COMPILE)as
|
AS = $(CROSS_COMPILE)as
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
|
AFLAGS = -EL
|
||||||
|
|
||||||
all: kinetis_ke_flash.inc kinetis_ke_watchdog.inc
|
all: kinetis_ke_flash.inc kinetis_ke_watchdog.inc
|
||||||
|
|
||||||
%.elf: %.s
|
%.elf: %.s
|
||||||
$(AS) $< -o $@
|
$(AS) $(AFLAGS) $< -o $@
|
||||||
|
|
||||||
%.bin: %.elf
|
%.bin: %.elf
|
||||||
$(OBJCOPY) -Obinary $< $@
|
$(OBJCOPY) -Obinary $< $@
|
||||||
|
|
|
@ -6,6 +6,8 @@ CC=$(CROSS_COMPILE)gcc
|
||||||
OBJCOPY=$(CROSS_COMPILE)objcopy
|
OBJCOPY=$(CROSS_COMPILE)objcopy
|
||||||
OBJDUMP=$(CROSS_COMPILE)objdump
|
OBJDUMP=$(CROSS_COMPILE)objdump
|
||||||
|
|
||||||
|
CFLAGS = -static -nostartfiles -mlittle-endian -Wa,-EL
|
||||||
|
|
||||||
all: erase.inc erase_check.inc write.inc
|
all: erase.inc erase_check.inc write.inc
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
@ -15,7 +17,7 @@ all: erase.inc erase_check.inc write.inc
|
||||||
erase.elf erase_check.elf write.elf: xmc1xxx.S
|
erase.elf erase_check.elf write.elf: xmc1xxx.S
|
||||||
|
|
||||||
%.elf: %.S
|
%.elf: %.S
|
||||||
$(CC) -static -nostartfiles $< -o $@
|
$(CC) $(CFLAGS) $< -o $@
|
||||||
|
|
||||||
%.lst: %.elf
|
%.lst: %.elf
|
||||||
$(OBJDUMP) -S $< > $@
|
$(OBJDUMP) -S $< > $@
|
||||||
|
|
|
@ -4,10 +4,12 @@ ARM_CROSS_COMPILE ?= arm-none-eabi-
|
||||||
ARM_AS ?= $(ARM_CROSS_COMPILE)as
|
ARM_AS ?= $(ARM_CROSS_COMPILE)as
|
||||||
ARM_OBJCOPY ?= $(ARM_CROSS_COMPILE)objcopy
|
ARM_OBJCOPY ?= $(ARM_CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
|
ARM_AFLAGS = -EL -mthumb
|
||||||
|
|
||||||
arm: armv7m_kinetis_wdog.inc
|
arm: armv7m_kinetis_wdog.inc
|
||||||
|
|
||||||
armv7m_%.elf: armv7m_%.s
|
armv7m_%.elf: armv7m_%.s
|
||||||
$(ARM_AS) -mthumb $< -o $@
|
$(ARM_AS) $(ARM_AFLAGS) $< -o $@
|
||||||
|
|
||||||
armv7m_%.bin: armv7m_%.elf
|
armv7m_%.bin: armv7m_%.elf
|
||||||
$(ARM_OBJCOPY) -Obinary $< $@
|
$(ARM_OBJCOPY) -Obinary $< $@
|
||||||
|
|
Loading…
Reference in New Issue