M bitsy/fns.h => bitsy/fns.h +1 -1
@@ 32,7 32,7 @@ ulong getfar(void);
ulong getfsr(void);
void* getlink(void);
#define getpgcolor(a) 0
-void* getsp(void);
+ulong getsp(void);
void gpiointrenable(ulong, int, void (*)(Ureg*, void*), void*, char*);
void h3650uartsetup(void);
void icacheinvalidate(void);
M bitsy/l.s => bitsy/l.s +0 -10
@@ 451,16 451,6 @@ TEXT gotolabel(SB), $-4
MOVW $1, R0
RET
-/* Debugging print routine */
-TEXT _PrChar(SB), $-4
- MOVW UART3REGS, R1
-prloop:
- MOVW 0x20(R1), R2
- AND $0x4, R2
- BEQ prloop
- MOVB R0,0x14(R1)
- RET
-
/* save the state machine in power_resume[] for an upcoming suspend
*/
TEXT setpowerlabel(SB), $-4
M bitsy/power.c => bitsy/power.c +5 -3
@@ 141,12 141,13 @@ powerdown(void *)
void
deepsleep(void) {
static int power_pl;
- void *xsp, *xlink;
+ ulong xsp, xlink;
power_pl = splhi();
delay(50);
+ xlink = getcallerpc(&xlink);
/* Power down */
- iprint("entering suspend mode\n");
+ iprint("entering suspend mode, sp = 0x%lux, pc = 0x%lux, psw = 0x%lux\n", &xsp, xlink, power_pl);
dumpitall();
uartpower(0);
clockpower(0);
@@ 180,8 181,9 @@ deepsleep(void) {
gpclkregs->r0 = 1<<0;
µcpower(1);
screenpower(1);
- iprint("\nresuming execution\n");
dumpitall();
+ xlink = getcallerpc(&xlink);
+ iprint("\nresuming execution, sp = 0x%lux, pc = 0x%lux, psw = 0x%lux\n", &xsp, xlink, splhi());
delay(800);
splx(power_pl);
return;