diff --git a/core/led_debug.s b/core/led_debug.s
new file mode 100644
index 0000000..8196c9e
--- /dev/null
+++ b/core/led_debug.s
@@ -0,0 +1,29 @@
+/*
+ * Useful debugging macro to .include for blinking LEDs on/off from assembler code
+ * (aka 1 bit debugging, yay!)
+ *
+ * To have this work from initial reset, without needing an iomux call
+ * first, choose a pin where iomux defaults to GPIO (ie 0,2,4,5)
+ */
+LED_GPIO=2
+GPIO_DIR_SET = 0x6000030c
+GPIO_OUT_SET = 0x60000300
+GPIO_OUT_CLEAR = 0x60000308
+
+.macro led_op rega, regb, target
+	movi \rega, GPIO_DIR_SET
+	movi \regb, (1<<LED_GPIO)
+	s32i \regb, \rega, 0
+	movi \rega, \target
+	s32i \regb, \rega, 0
+.endm
+
+// Turn LED on. rega, regb will be clobbered
+.macro led_on rega, regb
+	led_op \rega, \regb, GPIO_OUT_SET
+.endm
+
+// Turn LED off. rega, regb will be clobbered
+.macro led_off rega, regb
+	led_op \rega, \regb, GPIO_OUT_CLEAR
+.endm