aboutsummaryrefslogtreecommitdiffstats
path: root/support
diff options
context:
space:
mode:
authorPerry Hung <iperry@gmail.com>2010-09-17 03:49:14 -0400
committerPerry Hung <iperry@gmail.com>2010-09-17 03:49:14 -0400
commit2e79aafb7081a5305ee875277d26734779ca6d2f (patch)
tree9ae02b8733ecd75f9e783a81cd7d46fa7e505b9a /support
parentbdb85a454917a6e875c77ae12f9fd67961aebfae (diff)
downloadlibrambutan-2e79aafb7081a5305ee875277d26734779ca6d2f.tar.gz
librambutan-2e79aafb7081a5305ee875277d26734779ca6d2f.zip
Enable USB auto-reset in a hard fault.
Redirect thread-mode execution to a fail routine which throbs the LED to indicate a hard fault. Because the fail routine runs in thread mode with interrupts on, USB auto-reset should now work. Test by executing some bogus instruction (e.g. *(volatile int*)0xf34fdaa = 0;) and check that the auto-reset continues to work.
Diffstat (limited to 'support')
-rw-r--r--support/make/build-rules.mk7
1 files changed, 5 insertions, 2 deletions
diff --git a/support/make/build-rules.mk b/support/make/build-rules.mk
index 3892af9..4dcf00f 100644
--- a/support/make/build-rules.mk
+++ b/support/make/build-rules.mk
@@ -3,7 +3,7 @@ CC := arm-none-eabi-gcc
CXX := arm-none-eabi-g++
LD := arm-none-eabi-ld -v
AR := arm-none-eabi-ar
-AS := arm-none-eabi-as
+AS := arm-none-eabi-gcc
OBJCOPY := arm-none-eabi-objcopy
DISAS := arm-none-eabi-objdump
OBJDUMP := arm-none-eabi-objdump
@@ -14,10 +14,10 @@ OPENOCD := openocd
# Suppress annoying output unless V is set
ifndef V
SILENT_CC = @echo ' [CC] ' $(@:$(BUILD_PATH)/%.o=%.c);
+ SILENT_AS = @echo ' [AS] ' $(@:$(BUILD_PATH)/%.o=%.S);
SILENT_CXX = @echo ' [CXX] ' $(@:$(BUILD_PATH)/%.o=%.cpp);
SILENT_LD = @echo ' [LD] ' $(@F);
SILENT_AR = @echo ' [AR] '
- SILENT_AS = @echo ' [AS] '
SILENT_OBJCOPY = @echo ' [OBJCOPY] ' $(@F);
SILENT_DISAS = @echo ' [DISAS] ' $(@:$(BUILD_PATH)/%.bin=%).disas;
SILENT_OBJDUMP = @echo ' [OBJDUMP] ' $(OBJDUMP);
@@ -28,6 +28,7 @@ TGT_BIN :=
CFLAGS = $(GLOBAL_CFLAGS) $(TGT_CFLAGS)
CXXFLAGS = $(GLOBAL_CXXFLAGS) $(TGT_CXXFLAGS)
+ASFLAGS = $(GLOBAL_ASFLAGS) $(TGT_ASFLAGS)
# General directory independent build rules, generate dependency information
$(BUILD_PATH)/%.o: %.c
@@ -36,3 +37,5 @@ $(BUILD_PATH)/%.o: %.c
$(BUILD_PATH)/%.o: %.cpp
$(SILENT_CXX) $(CXX) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(@:%.o=%.d) -MT $@ -o $@ -c $<
+$(BUILD_PATH)/%.o: %.S
+ $(SILENT_AS) $(AS) $(ASFLAGS) -MMD -MP -MF $(@:%.o=%.d) -MT $@ -o $@ -c $<