diff --git a/cpu/mc1322x/Makefile.mc1322x b/cpu/mc1322x/Makefile.mc1322x index d04e3ecf7..6d62d95a4 100644 --- a/cpu/mc1322x/Makefile.mc1322x +++ b/cpu/mc1322x/Makefile.mc1322x @@ -81,26 +81,32 @@ else endif $(OBJECTDIR)/%.lds: $(CONTIKI_CPU)/%.lds.S | $(OBJECTDIR) - $(CPP) $(CPPFLAGS) $< > $@ + $(TRACE_CC) + $(Q)$(CPP) $(CPPFLAGS) $< > $@ $(OBJECTDIR)/isr.o: $(CONTIKI_CPU)/src/isr.c | $(OBJECTDIR) - $(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ + $(TRACE_CC) + $(Q)$(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ %.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) $< -c + $(TRACE_CC) + $(Q)$(CC) $(CFLAGS) $(THUMB_FLAGS) $< -c $(OBJECTDIR)/%.o: %.c | $(OBJECTDIR) - $(CC) $(CFLAGS) $(THUMB_FLAGS) -c $< -o $@ + $(TRACE_CC) + $(Q)$(CC) $(CFLAGS) $(THUMB_FLAGS) -c $< -o $@ CUSTOM_RULE_S_TO_OBJECTDIR_O = yes $(OBJECTDIR)/%.o: %.S | $(OBJECTDIR) - $(CC) $(CFLAGS) $(AFLAGS) $(ARM_FLAGS) $< -c -o $@ + $(TRACE_CC) + $(Q)$(CC) $(CFLAGS) $(AFLAGS) $(ARM_FLAGS) $< -c -o $@ CUSTOM_RULE_C_TO_CO=yes %.co: %.c - $(CC) $(CFLAGS) -DAUTOSTART_ENABLE $(THUMB_FLAGS) $< -c -o $@ + $(TRACE_CC) + $(Q)$(CC) $(CFLAGS) -DAUTOSTART_ENABLE $(THUMB_FLAGS) $< -c -o $@ .PRECIOUS: %.bin %_$(TARGET).bin @@ -114,6 +120,7 @@ CUSTOM_RULE_C_TO_CO=yes @ %.elf: $(OBJECTDIR)/board.h %.co $(PROJECT_OBJECTFILES) contiki-$(TARGET).a $(STARTUP) $(OBJECTDIR)/mc1322x.lds - $(CC) $(LDFLAGS) $(CFLAGS) -nostartfiles -o $@ $(filter-out %.a %.lds,$^) $(filter %.a,$^) $(filter %.a,$^) + $(TRACE_CC) + $(Q)$(CC) $(LDFLAGS) $(CFLAGS) -nostartfiles -o $@ $(filter-out %.a %.lds,$^) $(filter %.a,$^) $(filter %.a,$^) diff --git a/cpu/mc1322x/watchdog.c b/cpu/mc1322x/watchdog.c index 7c25f449b..542a68022 100644 --- a/cpu/mc1322x/watchdog.c +++ b/cpu/mc1322x/watchdog.c @@ -34,30 +34,38 @@ */ #include "dev/watchdog.h" +#include +#include /*---------------------------------------------------------------------------*/ void watchdog_init(void) { + cop_timeout_ms(1000); } /*---------------------------------------------------------------------------*/ void watchdog_start(void) { + CRM->COP_CNTLbits.COP_EN = 1; } /*---------------------------------------------------------------------------*/ void watchdog_periodic(void) { + cop_service(); } /*---------------------------------------------------------------------------*/ void watchdog_stop(void) { + CRM->COP_CNTLbits.COP_EN = 0; } /*---------------------------------------------------------------------------*/ void watchdog_reboot(void) { + watchdog_start(); + while(1); } /*---------------------------------------------------------------------------*/