Add some LED debugging assembler macros

Not used directly in esp-open-rtos but useful to keep around.
This commit is contained in:
Angus Gratton 2015-07-28 11:19:01 +10:00
parent ed7ba52c9a
commit 265cef7e00

29
core/led_debug.s Normal file
View file

@ -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