cc253x: Add stack monitoring helpers
This commit is contained in:
parent
780e62d7e8
commit
9a63e8c027
|
@ -52,3 +52,33 @@ soc_init()
|
|||
ENABLE_INTERRUPTS();
|
||||
}
|
||||
|
||||
#ifndef STACK_POISON
|
||||
#define STACK_POISON 0xAA
|
||||
#endif
|
||||
|
||||
void
|
||||
cc253x_stack_poison(void)
|
||||
{
|
||||
__asm
|
||||
mov r1, _SP
|
||||
poison_loop:
|
||||
inc r1
|
||||
mov @r1, #STACK_POISON
|
||||
cjne r1, #0xFF, poison_loop
|
||||
__endasm;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cc253x_get_max_stack(void)
|
||||
{
|
||||
__data uint8_t * sp = (__data uint8_t *) 0xff;
|
||||
uint8_t free = 0;
|
||||
|
||||
while(*sp-- == STACK_POISON) {
|
||||
free++;
|
||||
}
|
||||
|
||||
return 0xff - free;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -61,4 +61,7 @@
|
|||
|
||||
void soc_init();
|
||||
|
||||
void cc253x_stack_poison(void);
|
||||
uint8_t cc253x_get_max_stack(void);
|
||||
|
||||
#endif /* __SOC_H__ */
|
||||
|
|
Loading…
Reference in a new issue