Example #1
0
void p_pos_initTask(POSTASK_t task,
                   void *user,
                   POSTASKFUNC_t funcptr,
                   void *funcarg) {

    uint8_t *stackPtr = (uint8_t*)user;
    constructStackFrame(task, stackPtr, funcptr, funcarg);
}
Example #2
0
VAR_t p_pos_initTask(POSTASK_t task,
                    POSTASKFUNC_t funcptr,
                    void *funcarg) {
    // Stack pointer is in the stack memory
    // (with fixed size) in the task structure.
    uint8_t *stackPtr = (task->stack) + (FIXED_STACK_SIZE-1);

    constructStackFrame(task, stackPtr, funcptr, funcarg);

    return 0;
}
Example #3
0
VAR_t p_pos_initTask(POSTASK_t task,
    POSTASKFUNC_t funcptr,
    void *funcarg)
{
  unsigned int z;

#if POSCFG_ARGCHECK > 1
  memset(task->stack, PORT_STACK_MAGIC, PORTCFG_FIXED_STACK_SIZE);
#endif
  z = (unsigned int)task->stack + PORTCFG_FIXED_STACK_SIZE - 2;
  constructStackFrame(task, (void*)z, funcptr, funcarg);
  return 0;
}
Example #4
0
VAR_t p_pos_initTask(POSTASK_t task,
                    UINT_t stacksize,
                    POSTASKFUNC_t funcptr,
                    void *funcarg) {

    uint8_t *stackPtr = my_malloc(stacksize);

    if (stackPtr == NULL) {
        return -1;
    }
    task->stackroot = stackPtr;
    stackPtr += stacksize - 1;

    constructStackFrame(task, stackPtr, funcptr, funcarg);

    return 0;
}
Example #5
0
VAR_t p_pos_initTask(POSTASK_t task, UINT_t stacksize, POSTASKFUNC_t funcptr, void *funcarg)
{

  unsigned int z;

  stacksize = STACK_ALIGN_UP(stacksize);
  task->stack = NOS_MEM_ALLOC(stacksize);
  if (task->stack == NULL)
    return -1;

  task->stackSize = stacksize;

#if POSCFG_ARGCHECK > 1
  nosMemSet(task->stack, PORT_STACK_MAGIC, stacksize);
#endif

  z = (unsigned int) task->stack + stacksize;
  constructStackFrame(task, (void*) z, funcptr, funcarg);
  return 0;
}