当前位置: 首页>>代码示例>>C++>>正文


C++ create_task函数代码示例

本文整理汇总了C++中create_task函数的典型用法代码示例。如果您正苦于以下问题:C++ create_task函数的具体用法?C++ create_task怎么用?C++ create_task使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了create_task函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main() {
 	TIL311 = 0x98;
 	
 	srand();
 	
 	sem_init(&lcd_sem);
	
	lcd_init();
	serial_start(SERIAL_SAFE);
	
	puts("Hello! Starting tasks.\n");
    
    enter_critical();
    
    create_task(&task_time,0);
    create_task(&task_echo,0);
  	create_task(&task_scroller,0);
    create_task(&task_wav_play,0);
    
  /*	for (int i = 0; i < 16; i++)
  		create_task(&breeder_task,0);*/
  		
  	leave_critical();
  	yield();  
  	
  	puts("Tasks started, main() returning.\n");	
  	
	return 0;
}
开发者ID:ZigZagJoe,项目名称:68k,代码行数:29,代码来源:wav_multi.c

示例2: timer_callback

volatile task_t* timer_callback(task_t *regs) {
	tick++;
	millis_from_boot += 1000 / timer_frequency;

	#ifdef DEBUG
		#ifdef TIMER_VERBOSE_TICKS
			kprintf("[%s : %d]\r\n", "Tick", tick);
		#endif
	#endif

	io_out8(0x20, 0x20); //重设时钟中断

	volatile task_t* oregs = regs;
	if (a) {
		create_task(regs, stb + 4096, taskb);
		create_task(regs, sta + 4096, taska);
		a = false;

		ptra = sta + 4096 - sizeof(task_t);
		ptrb = stb + 4096 - sizeof(task_t);

		oregs = ptra;

	} else if (!b) {
		ptra = regs;
		oregs = ptrb;
	} else {
		ptrb = regs;
		oregs = ptra;
	}
	b=!b;
//

	return oregs;
}
开发者ID:IcebergOS,项目名称:Cryst,代码行数:35,代码来源:timer.c

示例3: main

int main(void)
{
	unsigned int user_stacks[TASK_LIMIT][STACK_SIZE];
	unsigned int *usertasks[TASK_LIMIT];
	size_t task_count = 0;
	size_t current_task;

	task_init();

	print_str("OS: Starting...\n");
	print_str("OS: First create task 1\n");
	usertasks[0] = create_task(user_stacks[0], &task1_func);
	task_count += 1;
	print_str("OS: Back to OS, create task 2\n");
	usertasks[1] = create_task(user_stacks[1], &task2_func);
	task_count += 1;

	print_str("\nOS: Start round-robin scheduler!\n");

	/* SysTick configuration */
	*SYSTICK_LOAD = ( SystemCoreClock / TICK_RATE_HZ) - 1UL;
	*SYSTICK_VAL = 0;
	*SYSTICK_CTRL = 0x07;
	current_task = 0;

	while (1) {
		print_str("OS: Activate next task\n");
		usertasks[current_task] = activate(usertasks[current_task]);
		print_str("OS: Back to OS\n");

		current_task = current_task == (task_count - 1) ? 0 : current_task + 1;
	}

	return 0;
}
开发者ID:neojou,项目名称:mini-arm-os-1,代码行数:35,代码来源:main.cpp

示例4: main

int main(void) {
    
    if(init_kernel() != OK)
    {
        /* Memory allocation problems */
        while(1);
    }
    
    if(create_task( car_movement, 3000 ) != OK )
    {
        /* Memory allocation problems */
        while(1);
    }
    if (create_task(cruisecontrol, 3500 ) != OK )
    {
        /* Memory allocation problems */
        while(1);
    }
    if ((mbi=create_mailbox(1,sizeof(int))) == NULL) {
        /* Memory allocation problems */
        while (1);
    }
    if ((mbf=create_mailbox(1,sizeof(double))) == NULL) {
        /* Memory allocation problems */
        while (1);
    }
    
    run();
    
    
    return 0;
}
开发者ID:robinpipirs,项目名称:CSE2-RTOS-PROJECT,代码行数:32,代码来源:main.c

示例5: main

/********************************************************
                         MAIN
*********************************************************/
int main(void)
{
	int map[XMAX][YMAX], bmap[XMAX][YMAX][2];
	SPLAYER player;
	LPTCB task;
	
	floor_cnt = 1;
	init_genrand((unsigned long)time(NULL)); // 必ずmainに入れること
	init_task();
	init_monster();
	
	task = create_task(title_load, NULL, PRIO_00);
	task->p[0] = &player;
	task->p[1] = &floor_cnt;
	
	task = create_task(game_start, NULL, PRIO_00);
	task->p[0] = map;
	task->p[1] = &player;
	task->p[2] = bmap;
	
	loop_task();
	
//	printf("taskcnt =%d\n", count_task());
	
	return 0;
}
开发者ID:yoskhdia,项目名称:Racanhack-bcc,代码行数:29,代码来源:main.c

示例6: main

int main(void)
{
	unsigned int user_stacks[TASK_LIMIT][STACK_SIZE];
	unsigned int *usertasks[TASK_LIMIT];
	size_t task_count = 0;
	size_t current_task;

	usart_init();
	task_init();

	print_str("OS: Starting...\n");
	print_str("OS: First create task 1\n");
	usertasks[0] = create_task(user_stacks[0], &task1_func);
	task_count += 1;
	print_str("OS: Back to OS, create task 2\n");
	usertasks[1] = create_task(user_stacks[1], &task2_func);
	task_count += 1;

	print_str("\nOS: Start multitasking, back to OS till task yield!\n");
	current_task = 0;

	while (1) {
		print_str("OS: Activate next task\n");
		usertasks[current_task] = activate(usertasks[current_task]);
		print_str("OS: Back to OS\n");

		current_task = current_task == (task_count - 1) ? 0 : current_task + 1;
	}

	return 0;
}
开发者ID:jserv,项目名称:mini-arm-os,代码行数:31,代码来源:os.c

示例7: Init

static void Init(rtems_task_argument arg)
{
  test_context *ctx = &test_instance;

  TEST_BEGIN();

  ctx->low = rtems_task_self();

  create_task(&ctx->mid, 3);
  create_task(&ctx->high, 1);
  create_task(&ctx->inversion, 2);
  create_sema(&ctx->sem_a);
  create_sema(&ctx->sem_b);

  obtain_sema(ctx->sem_a);
  start_task(ctx->mid, mid_task);
  start_task(ctx->high, high_task);

  /*
   * Here we see that the priority of the high priority task blocked on
   * semaphore B propagated to the low priority task owning semaphore A
   * on which the owner of semaphore B depends.
   */
  assert_prio(ctx->low, 1);
  assert_prio(ctx->mid, 1);
  assert_prio(ctx->high, 1);
  assert_prio(ctx->inversion, 2);

  TEST_END();
  rtems_test_exit(0);
}
开发者ID:gedare,项目名称:rtems,代码行数:31,代码来源:init.c

示例8: initialize

static void initialize(int minor)
{
  console_tbl *ct = &Console_Port_Tbl [minor];
  uart_bridge_master_control *control = ct->pDeviceParams;
  intercom_type type = control->type;

  qoriq_intercom_service_install(type, uart_bridge_master_service, control);
  create_task('R', receive_task, control);
  control->transmit_task = create_task('T', transmit_task, control);
}
开发者ID:rtemss,项目名称:rtems,代码行数:10,代码来源:uart-bridge-master.c

示例9: main

int main(int argc, char** argv, char** envp) {
	if(argv[1]) {
		if(strcmp(argv[1], "-gui") == 0)
			create_task(tmain_gui);
		else if(strcmp(argv[1], "-text") == 0)
			create_task(tmain_text);
		else
			_exit(-1);
	}
}
开发者ID:WareX97,项目名称:K2,代码行数:10,代码来源:main.c

示例10: init_multitasking

void init_multitasking()
{
  asm volatile("cli");
  //memset((void*)(200*1024*1024),0,(40*1024*1024));
  kernel_proc = create_process("microkernel", 0, 1, 0);

  new_process = (uint32_t)kernel_proc;

  current_task = (uint32_t)create_task("initiating_task",tasking_initiator, 20, 0x202, kernel_proc);  //Scheduler initalization task
  old_task = current_task;

  Idle_task = create_task("System_idle_task",idle, 20, 0x202, kernel_proc);  //default task
  Activate_task_direct(Idle_task);

  Activate_task_direct(create_task("idle2",idle2, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle3",idle3, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle4",idle4, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle5",idle5, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle6",idle6, 10, 0x202, kernel_proc));
  //Activate_task_direct(create_task("Main_Kernel",kernel_main, 10, 0x202, kernel_proc));

  Shell_proc = create_process("Shell", 0, 1, kernel_proc);
  Activate_task_direct(create_task("Shell_Ostream", Console_Writer, 10, 0x202, Shell_proc));
  reached_bottom = 0;
  Scheduler_init(); // Let the FUN Begin :D Lets Switch from the old monotasking world to Multitasking World :D defined in tasking.asm
}
开发者ID:vinoh,项目名称:Aqeous,代码行数:26,代码来源:tasking.c

示例11: create_kernel_task

int create_kernel_task(tid_t* id, entry_point_t ep, void* args, uint8_t prio)
{
	if (prio > MAX_PRIO)
		prio = NORMAL_PRIO;

	return create_task(id, ep, args, prio, CORE_ID);
}
开发者ID:RWTH-OS,项目名称:HermitCore,代码行数:7,代码来源:tasks.c

示例12: dcs_statistics_init

dove_status dcs_statistics_init(char *pythonpath)
{
	dove_status status = DOVE_STATUS_OK;

	do
	{
		status = python_functions_init(pythonpath);
		if (status != DOVE_STATUS_OK)
		{
			break;
		}

		/* Initialize mutex and condition variable objects */
		if (pthread_mutex_init(&dps_statistics_mp, NULL) != 0) {
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		if (pthread_cond_init (&dps_statistics_cv, NULL) != 0) {
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		/* Create a thread for statistics collection */
		if (create_task((const char *)"Stat", 0, OSW_DEFAULT_STACK_SIZE,
		                dps_statistics_main, 0,
		                &statisticsTaskId) != OSW_OK)
		{
			status = DOVE_STATUS_THREAD_FAILED;
			break;
		}
	} while (0);

	return status;
}
开发者ID:bigclouds,项目名称:opendove,代码行数:33,代码来源:statistics.c

示例13: create_kernel_task_on_core

int create_kernel_task_on_core(tid_t* id, entry_point_t ep, void* args, uint8_t prio, uint32_t core_id)
{
	if (prio > MAX_PRIO)
		prio = NORMAL_PRIO;

	return create_task(id, ep, args, prio, core_id);
}
开发者ID:RWTH-OS,项目名称:HermitCore,代码行数:7,代码来源:tasks.c

示例14: stream_end

/**
 * All data has been delivered. Your implementation should now finish writing out sorted data and verbose info.
* The output stream will be closed for you after this call returns
*/
void stream_end() {
// do awesome stuff
// then print to outfile e.g.

	menqueue(NULL);
	//merge = 1;
	//create_task(NULL, 0, nitems);
    int i;
  	
    worker_funcs(NULL);
    for(i = 1; i < nthreads; i++){
    	pthread_join(tid[i], NULL);
    }
    merge = 1;
    //create_task(NULL, 0, nitems);
    for(i = 1; i < nthreads; i++){
  	pthread_create(&tid[i], NULL, worker_merge, NULL);
  }
  	create_task(NULL, 0, nitems);
  	worker_merge(NULL);
     for(i = 1; i < nthreads; i++){
    	pthread_join(tid[i], NULL);
    }
    
   for(int i = 0; i < nitems ;i++) 
     fprintf(outfile,"%d\n", data[i]);
     
   if(outfile != stdout) 
     fclose(outfile);
}
开发者ID:Yankkk,项目名称:C,代码行数:34,代码来源:streamingsort.c

示例15: dps_statistics_start

dove_status dps_statistics_start(void)
{
	dove_status status = DOVE_STATUS_OK;

	do
	{
		if (search_task("Stat") != 0)
		{
			log_info(PythonDataHandlerLogLevel, "Thread is running\r\n");
			break;
		}
		log_info(PythonDataHandlerLogLevel, "Starting thread\r\n");
		/* Re-initialize resources and create a thread */
		if (pthread_mutex_init(&dps_statistics_mp, NULL) != 0)
		{
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		if (pthread_cond_init (&dps_statistics_cv, NULL) != 0)
		{
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		if (create_task((const char *)"Stat", 0, OSW_DEFAULT_STACK_SIZE,
		                dps_statistics_main, 0,
		                &statisticsTaskId) != OSW_OK)
		{
			status = DOVE_STATUS_THREAD_FAILED;
			break;
		}

	} while (0);

	return status;
}
开发者ID:bigclouds,项目名称:opendove,代码行数:35,代码来源:statistics.c


注:本文中的create_task函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。