From 4338511b28b98d66ad5f03a36a21a45d83a86a90 Mon Sep 17 00:00:00 2001 From: Kamil Tomaszewski Date: Fri, 18 Oct 2019 11:10:22 +0200 Subject: [PATCH] Add get top and limit functions for Spresense --- ports/cxd56/Makefile | 2 +- ports/cxd56/supervisor/port.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ports/cxd56/Makefile b/ports/cxd56/Makefile index 38ebd83050..d65c2e2666 100644 --- a/ports/cxd56/Makefile +++ b/ports/cxd56/Makefile @@ -90,6 +90,7 @@ INC += \ -I$(SPRESENSE_SDK)/nuttx/include \ -I$(SPRESENSE_SDK)/nuttx/arch \ -I$(SPRESENSE_SDK)/nuttx/arch/chip \ + -I$(SPRESENSE_SDK)/nuttx/arch/os \ -I$(SPRESENSE_SDK)/sdk/bsp/include \ -I$(SPRESENSE_SDK)/sdk/bsp/include/sdk \ @@ -124,7 +125,6 @@ LDFLAGS = \ --entry=__start \ -nostartfiles \ -nodefaultlibs \ - --defsym __stack=_vectors+786432 \ -T$(SPRESENSE_SDK)/nuttx/build/ramconfig.ld \ --gc-sections \ -Map=$(BUILD)/output.map \ diff --git a/ports/cxd56/supervisor/port.c b/ports/cxd56/supervisor/port.c index 9688cf2333..78d2f13f5e 100644 --- a/ports/cxd56/supervisor/port.c +++ b/ports/cxd56/supervisor/port.c @@ -27,6 +27,8 @@ #include #include +#include "sched/sched.h" + #include "boards/board.h" #include "supervisor/port.h" @@ -68,11 +70,15 @@ void reset_to_bootloader(void) { } uint32_t *port_stack_get_limit(void) { - return &_ebss; + struct tcb_s *rtcb = this_task(); + + return rtcb->adj_stack_ptr - (uint32_t)rtcb->adj_stack_size; } uint32_t *port_stack_get_top(void) { - return &_estack; + struct tcb_s *rtcb = this_task(); + + return rtcb->adj_stack_ptr; } extern uint32_t _ebss;