stack.c.svn-base

来自「RT-Thread是发展中的下一代微内核嵌入式实时操作系统」· SVN-BASE 代码 · 共 61 行

SVN-BASE
61
字号
/* * File      : stack.c * This file is part of RT-Thread RTOS * COPYRIGHT (C) 2006, RT-Thread Development Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://openlab.rt-thread.com/license/LICENSE * * Change Logs: * Date           Author       Notes * 2006-03-13     Bernard      the first version */#include <rtthread.h>#include "AT9200.h"/** * @addtogroup AT9200 *//*@{*//** * This function will initialize thread stack * * @param tentry the entry of thread * @param parameter the parameter of entry  * @param stack_addr the beginning stack address * @param texit the function will be called when thread exit * * @return stack address */rt_uint8 *rt_hw_stack_init(void *tentry, void *parameter,	rt_uint8 *stack_addr, void *texit){	unsigned long *stk;	stk 	 = (unsigned long *)stack_addr;	*(stk) 	 = (unsigned long)tentry;		/* entry point */	*(--stk) = (unsigned long)texit;		/* lr */	*(--stk) = 0;							/* r12 */	*(--stk) = 0;							/* r11 */	*(--stk) = 0;							/* r10 */	*(--stk) = 0;							/* r9 */	*(--stk) = 0;							/* r8 */	*(--stk) = 0;							/* r7 */	*(--stk) = 0;							/* r6 */	*(--stk) = 0;							/* r5 */	*(--stk) = 0;							/* r4 */	*(--stk) = 0;							/* r3 */	*(--stk) = 0;							/* r2 */	*(--stk) = 0;							/* r1 */	*(--stk) = (unsigned long)parameter;	/* r0 : argument */	*(--stk) = SVCMODE;						/* cpsr */	*(--stk) = SVCMODE;						/* spsr */	/* return task's current stack address */	return (rt_uint8 *)stk;}/*@}*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?