From 00a655ac1c24d3707a5af376ec756e42406cd6bb Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Sun, 11 Nov 2018 15:56:02 +0800 Subject: [Kernel] Add ARCH_CPU_STACK_GROWS_UPWARD option --- src/thread.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/thread.c') diff --git a/src/thread.c b/src/thread.c index 6d79ece54b..687852e92e 100644 --- a/src/thread.c +++ b/src/thread.c @@ -136,9 +136,15 @@ static rt_err_t _rt_thread_init(struct rt_thread *thread, /* init thread stack */ rt_memset(thread->stack_addr, '#', thread->stack_size); +#ifdef ARCH_CPU_STACK_GROWS_UPWARD + thread->sp = (void *)rt_hw_stack_init(thread->entry, thread->parameter, + (void *)((char *)thread->stack_addr), + (void *)rt_thread_exit); +#else thread->sp = (void *)rt_hw_stack_init(thread->entry, thread->parameter, (void *)((char *)thread->stack_addr + thread->stack_size - 4), (void *)rt_thread_exit); +#endif /* priority init */ RT_ASSERT(priority < RT_THREAD_PRIORITY_MAX); -- cgit v1.3.1