原创 vxworks创建任务中堆栈生长方向问题

2006-11-17 13:08 7731 10 6 分类: MCU/ 嵌入式

用taskInit 创建任务要注意堆栈的生长方向问题,程序例子如下:   


 int ret;
    char    *memArea;


    /* initialize TCB and stack space */


    memArea = (char *) malloc (STACK_ROUND_UP(STACK_SIZE) + sizeof (WIND_TCB) + 16);


    /* initialize task */


    ret = taskInit ((WIND_TCB *) (memArea + 16), NULL, 150, VX_NO_STACK_FILL,
#if (_STACK_DIR == _STACK_GROWS_DOWN)
            (char *) (memArea + STACK_SIZE + sizeof (WIND_TCB)),
#else
            memArea + STACK_ROUND_UP (sizeof (WIND_TCB) + 16),
#endif
            STACK_SIZE, (FUNCPTR) function,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0);    /* args */


    if (ret == ERROR)
    {
        perror ("taskInit");
        return(0);
    }
    else
    {
        taskActivate ((int) memArea);
    }


    WIND_TCB tMonitorTcb;
    char tMonitorStack[STACK_SIZE];


或静态内存
    status = taskInit(&tMonitorTcb,              /* TCB Address        */
                 "tMonitorMethod04",             /* Task/Thread Name   */
                 240,                            /* Priority 0=Highest */
                 VX_NO_STACK_FILL,               /* Options            */
                 /*
                  Determine which way stack grows and
                  adjust address if necessary
                  */
#if (_STACK_DIR == _STACK_GROWS_DOWN)
                 tMonitorStack+STACK_SIZE,       /* Stack base address */
#else
                 tMontiorStack,                  /* Stack base address */
#endif
                 STACK_SIZE,                     /* Stack size in bytes*/
                 (FUNCPTR) monitor,              /* Task entry point   */
                 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0);  /* VxW Req 10 parms   */


    /*
     Task exists but is not running at this point.  The debugger can now attach to the task
     and set breakpoints provided the user does not detach or attach to some other task
     */
    if (status == OK)                            /* Only activate if init ok */
        status = taskActivate((int)&tMonitorTcb);/* Actually start task */


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1378541 2006-11-20 22:00

相关推荐阅读
shenyandetongxing_551209819 2010-02-25 21:34
MyEclipse 建立第一个工程
1.打开MyEclipse--新建个工程File--New--Project--WebProject 2.在ProjectName中输入hello--Finish 3.然后为工程添加struts框架,...
shenyandetongxing_551209819 2010-02-06 22:42
人力资源管理软件(技术储备)
JAVA的SSH开发框架Struts、Spring、Hibernate在各层的作用1、Struts 负责 web层ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理...
shenyandetongxing_551209819 2010-02-06 02:51
个人资源管理软件(需求)
先提提需求吧,这是重中之重,这不是简单就能完成的,需要不断的修改和完善。既然是个人资源管理就要首先搞清楚个人资源包括哪些部分:1  人脉资源,也就是我们常说的关系,人是社会型动物就不可能生活在真空里,...
shenyandetongxing_551209819 2010-02-06 02:33
HR软件设计开始(关注个人资源管理与分析)
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2010-02-06 02:30
对HR和B/S模式的东西感兴趣
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2008-10-01 16:18
由于工作原因,改行!!
已经好久没有上我的博客了,还有很多朋友支持我,很欣慰:)现在由于工作原因很长一段时间内将挥泪告别嵌入式。现在如果有做PKI或PMI的跟我一起交流啊:)...
我要评论
1
10
关闭 站长推荐上一条 /3 下一条