int main(void) { printf("\n\nIniciando o escalonamento das tarefas...\n\n"); create_tasks(); delete_tasks(); return 0 ; }
double wait_tasks(std::size_t num_samples, std::size_t num_tasks, std::size_t num_chunks, std::size_t delay) { std::size_t num_chunk_tasks = ((num_tasks + num_chunks) / num_chunks) - 1; std::size_t last_num_chunk_tasks = num_tasks - (num_chunks - 1) * num_chunk_tasks; double result = 0; for (std::size_t k = 0; k != num_samples; ++k) { std::vector<std::vector<hpx::future<void> > > chunks; chunks.reserve(num_chunks); for (std::size_t c = 0; c != num_chunks - 1; ++c) { chunks.push_back(create_tasks(num_chunk_tasks, delay)); } chunks.push_back(create_tasks(last_num_chunk_tasks, delay)); std::vector<hpx::future<void> > chunk_results; chunk_results.reserve(num_chunks); // wait of tasks in chunks hpx::util::high_resolution_timer t; if (num_chunks == 1) { hpx::wait_all(chunks[0]); } else { for (std::size_t c = 0; c != num_chunks; ++c) { chunk_results.push_back( hpx::async([&chunks, c]() { hpx::wait_all(chunks[c]); }) ); } hpx::wait_all(chunk_results); } result += t.elapsed(); } return result / num_samples; }
int main(){ PA_Init(); // Initializes PA_Lib AS_Init(AS_MODE_SURROUND | AS_MODE_16CH); AS_SetDefaultSettings(AS_PCM_8BIT, 11025, AS_SURROUND); PA_LoadBackground(UP_SCREEN, BACKGROUND_UP, &main_up); PA_LoadBackground(DOWN_SCREEN, BACKGROUND_DOWN, &main_down); create_tasks(); vTaskStartScheduler(); // Never returns while (1) ; return 0; }
/*! \fn void app_task_start(void *pdata) * * \brief 起始任务 * * \param 无 * * \exception 无 * * \return 无 */ void app_task_start(void *pdata) { /* 防止编译器告警 */ pdata = pdata; /* 配置systick */ systick_configuration(); /* 初始化统计任务 */ OSStatInit(); /*! 初始化LED */ led_init(); /*! 初始化串口 */ uart_init(); /* 打印TaskStart */ DEBUG_MSG("\r\nD: Start uCosII success!\r\n"); debug_msg(NULL, __FILE__, __LINE__); /* 创建消息队列 */ //pMsg = OSQCreate(MsgQueue, MSG_QUEUE_SIZE); //if((OS_EVENT *)0 == pMsg) //{ // DEBUG_MSG("\r\nE: OSQCreate error!\r\n"); // while(1); //} /*! 初始化I2C */ i2c_init(I2C1); /*! MPU9150 */ mpu9150_test(); /* 建立其他任务 */ create_tasks(); /*! 任务循环 */ for( ; ; ) { /* 任务延时 */ OSTimeDlyHMSM(0, 0, 0, 500); //LED2 = LED1; LED1 = ~LED1; /* suspend task */ //OSTaskSuspend(OS_PRIO_SELF); } }