void OS_TestSuite(void) { uint8_t test0pass=0; OS_CreateTask(TestTaskhi, OSTestTskIDhi); OS_CreateTask(TestTask0, OSTestTskID0); OS_CreateTask(TestTask1, OSTestTskID1); OS_CreateTask(TestTask2, OSTestTskID2); OS_CreateTask(TestTasklo, OSTestTskIDlo); OS_CreateAlarm(OSALMTest0,OSTestTskID0); OS_CreateAlarm(OSALMTest1,OSTestTskID1); OS_CreateAlarm(OSALMTest2,OSTestTskID2); OS_CreateAlarm(OSALMTest3,OSTestTskID0); // testcase 10 OS_CreateAlarm(OSALMTestlo,OSTestTskIDlo); OS_CreateAlarm(OSALMTesthi,OSTestTskIDhi); OS_StartExecution() ; while(1) { // THIS IS the idle task which will be preemted by all other tasks. // NO OS-wait-API allowed here!!! #if OS_USEMEMCHECKS ==1 r = OS_GetUnusedStack(0); s = OS_GetUnusedStack(1); t = OS_GetUnusedStack(2); u = OS_GetUnusedStack(3); // idle #endif switch(testcase) { case 0: // Task Priority if(!test0pass) { assert(testvar ==3); test0pass = 1; } break; default: break; } } }
INT User_Init(void) { INT error = 0; /* Error flag for initialization calls */ INT i; /* * Set up application tasks */ /* Initialize input task queue */ error |= OS_CreateQueue(INPUT_Q_ID, INPUT_Q_SIZE); /* Create IF8I Input Task */ error |= OS_CreateTask( INPUT_ID, INPUT_PRIORITY, INPUT_STACK_SIZE, IF8I_InputTask ); /* * Fill in apex parameter table. */ /* Set Led Display type */ pHI_ApexParam->LedDisplay.analog.type = LED_DISPLAY_TYPE_ANALOG; /* Enable DC-DC conversion oscillator and configure it but don't start it because the APEX has to be running to start it. */ #define APEX_DCtoDC_Cfg *((unsigned int *)(APEX_BASE_ADDR+0x4400)) pHI_ApexReg->GpioFunction = 0x0040; /* Enable DC-DC */ APEX_DCtoDC_Cfg = 0x0021; /* Set frequency to 125KHz, 1us deadband */ /* * Initialize Objects */ error |= MR_Init( pHI_ApexIoMem->classes ); error |= Id_ObjInit( PRODUCT_MAJOR_REV, PRODUCT_MINOR_REV, PRODUCT_SUB_MINOR_REV ); error |= Asm_ObjInit( ); error |= Nvs_ObjInit( ); error |= AIG_ObjInit( ); error |= AIP_ObjInit( ); return( error ); }