测试代码段

CPU_STK  *OSTaskStkInit (OS_TASK_PTR    p_task,
                         void          *p_arg,
                         CPU_STK       *p_stk_base,
                         CPU_STK       *p_stk_limit,
                         CPU_STK_SIZE   stk_size,
                         OS_OPT         opt)
{
    CPU_STK    *p_stk;

    
    (void)opt;                                                  /* Prevent compiler warning                               */

    p_stk = &p_stk_base[stk_size];                              /* Load stack pointer                                     */
                                                                /* Align the stack to 8-bytes.                            */
    p_stk = (CPU_STK *)((CPU_STK)(p_stk) & 0xFFFFFFF8);
                                                                /* Registers stacked as if auto-saved on exception        */

	*(--p_stk)  = (CPU_STK)0xaa;                  /* R? : argument                                      */
    *(--p_stk)  = (CPU_STK)0xa;                   /* FPSCR : argument                                   */
    *(--p_stk)  = (CPU_STK)0x15;                  /* S15 : argument                                     */       
    *(--p_stk)  = (CPU_STK)0x14;                  /* S14 : argument                                     */
    *(--p_stk)  = (CPU_STK)0x13;                  /* S13 : argument                                     */
    *(--p_stk)  = (CPU_STK)0x12;                  /* S12 : argument                                     */
    *(--p_stk)  = (CPU_STK)0x11;                  /* S11 : argument                                     */
    *(--p_stk)  = (CPU_STK)0x10;                  /* S10 : argument                                     */
    *(--p_stk)  = (CPU_STK)0x9;                   /* S9 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x8;                   /* S8 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x7;                   /* S7 : argument                                      */        
    *(--p_stk)  = (CPU_STK)0x6;                   /* S6 : argument                                      */       
    *(--p_stk)  = (CPU_STK)0x5;                   /* S5 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x4;                   /* S4 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x3;                   /* S3 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x2;                   /* S2 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x1;                   /* S1 : argument                                      */
    *(--p_stk)  = (CPU_STK)0x0;                   /* S0 : argument 		*/                                


    *(--p_stk)    = (CPU_STK)0x01000000uL;            /* xPSR                                               */
    *(--p_stk)  = (CPU_STK)p_task;                    /* Entry Point                                        */
    *(--p_stk)  = (CPU_STK)OS_TaskReturn;           /* R14 (LR)                                           */
    *(--p_stk)  = (CPU_STK)0x12121212uL;            /* R12                                                */
    *(--p_stk)  = (CPU_STK)0x03030303uL;            /* R3                                                 */
    *(--p_stk)  = (CPU_STK)0x02020202uL;            /* R2                                                 */
    *(--p_stk)  = (CPU_STK)p_stk_limit;            /* R1                                                 */
    *(--p_stk)  = (CPU_STK)p_arg;                   /* R0 : argument                                      */

                                                 /* Remaining registers saved on process stack         */
    *(--p_stk)  = (CPU_STK)0x11111111uL;            /* R11                                                */
    *(--p_stk)  = (CPU_STK)0x10101010uL;            /* R10                                                */
    *(--p_stk)  = (CPU_STK)0x09090909uL;            /* R9                                                 */
    *(--p_stk)  = (CPU_STK)0x08080808uL;            /* R8                                                 */
    *(--p_stk)  = (CPU_STK)0x07070707uL;            /* R7                                                 */
    *(--p_stk)  = (CPU_STK)0x06060606uL;            /* R6                                                 */
    *(--p_stk)  = (CPU_STK)0x05050505uL;            /* R5                                                 */
    *(--p_stk)  = (CPU_STK)0x04040404uL;            /* R4                                                 */

 
		*(--p_stk) = (CPU_STK)0xFFFFFFFDUL;		
	  
   

    return (p_stk);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值