diff --git a/Makefile b/Makefile index c982107..1f59cf3 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,8 @@ include ../../starlet.mk ASFLAGS += -D_LANGUAGE_ASSEMBLY -CFLAGS += -DCAN_HAZ_IRQ -DCAN_HAZ_IPC +CFLAGS += -DCAN_HAZ_IRQ -DCAN_HAZ_IPC -mthumb-interwork +THUMBFLAGS = -mthumb LDSCRIPT = mini.ld LIBS = -lgcc @@ -10,10 +11,11 @@ MAKEBIN = python ../makebin.py TARGET = armboot.elf TARGET_BIN = armboot.bin -OBJS = start.o main.o ipc.o vsprintf.o string.o gecko.o memory.o memory_asm.o \ - utils_asm.o utils.o ff.o diskio.o sdhc.o powerpc_elf.o powerpc.o panic.o \ - irq.o irq_asm.o exception.o exception_asm.o seeprom.o crypto.o nand.o \ - boot2.o ldhack.o sdmmc.o +OBJS = start.o memory.o memory_asm.o utils_asm.o panic.o irq_asm.o ipc.o \ + exception_asm.o nand.o exception.o ldhack.o +THUMB_OBJS = sdmmc.o sdhc.o boot2.o powerpc.o powerpc_elf.o diskio.o ff.o \ + crypto.o seeprom.o utils.o main.o vsprintf.o string.o \ + gecko.o irq.o include ../../common.mk @@ -21,6 +23,11 @@ all: $(TARGET_BIN) main.o: main.c git_version.h +$(THUMB_OBJS): %.o : %.c + @echo " COMPILE[T] $<" + @mkdir -p $(DEPDIR) + @$(CC) $(CFLAGS) $(THUMBFLAGS) $(DEFINES) -Wp,-MMD,$(DEPDIR)/$(*F).d,-MQ,"$@",-MP -c $< -o $@ + $(TARGET_BIN): $(TARGET) $(ELFLOADER) @echo "MAKEBIN $@" @$(MAKEBIN) $(ELFLOADER) $< $@ diff --git a/start.S b/start.S index bfc8a16..8541176 100644 --- a/start.S +++ b/start.S @@ -104,7 +104,8 @@ done_bss2: bl debug_output @ take the plunge mov r0, r4 - bl _main + ldr r4, =(_main+1) + blx r4 @ _main returned! Go to whatever address it returned... mov pc, r0