// reset screen attributes
void setup() {
	// callbacks
	vblank_handler_set(0);
	hblank_handler_set(0);
	set_callback2((super_callback)0x812EB11);
	// BGs
	overworld_free_bgmaps();
	gpu_tile_bg_drop_all_sets(0);
	int src_zero = 0;
	CpuSet(&src_zero, (void *)0x6000000, (uint)0x5006000);
	// pals
	pal_fade_control_and_dead_struct_reset();
	palette_bg_faded_fill_black();
	pal_fade_control_and_dead_struct_reset();
	gpu_pal_allocator_reset();
	*gpu_pal_tag_search_lower_boundary = 0;
	// objs
	obj_and_aux_reset_all();
	// tasks
	tasks_init();
	// more BG setup 
	superstate.callback_vblank = vblank_cb;
	setup_ioregs_bg();
	bgid_mod_x_offset(0, 0, 0);
    bgid_mod_y_offset(0, 0, 0);
	bgid_mod_x_offset(1, 0, 0);
    bgid_mod_y_offset(1, 0, 0);
	bgid_mod_x_offset(2, 0, 0);
    bgid_mod_y_offset(2, 0, 0);
	bgid_mod_x_offset(3, 0, 0);
    bgid_mod_y_offset(3, 0, 0);
	remoboxes_acknowledge();
	rboxes_free();
}
void USART_Config(void)
{
    hal_init();
    irq_init();
    tasks_init();

}
Beispiel #3
0
static void run_task_test(void)
{
    tasks_init();
    events_init();
    sleep(2);    /* wait for both threads to run */
    tasks_add(task_create(test, NULL));

    events_add(event_create(2, config_parse_event, (void *)"config_test"));
    events_add(event_create(2, test, NULL));
    sleep(5);

    events_add(event_create(3, test, NULL));
    events_stop();
    tasks_stop();
}
Beispiel #4
0
int main(void)
{
  extern uint32_t SystemCoreClock;

  //HAL init, etc
  common_init();

  //System clock config (200 MHz)
  SystemClock_Config();

  //LCD, SDRAM, DMA2D init.
  lcd_init();

  LCD_LOG_Init();
  LCD_LOG_SetHeader( ( uint8_t* )"LCD LOG" );
  LCD_UsrLog( "LOG is ready\n" );
  LCD_UsrLog( "MCU runs at %lu MHz\n", SystemCoreClock / 1000000 );

  LCD_UsrLog( "Define threads\n" );

  //Init on BTN pressed
  if( BSP_PB_GetState( BUTTON_KEY ) )
  {
    //KEY pressed
    LCD_UsrLog( "AF\n" );

    LCD_UsrLog( "Done!\n" );
    while(1)
    {
      //Do nothing
    }
  }
  else
  {
    //Normal mode
  }

  LCD_UsrLog( "Create threads\n" );
  tasks_init();
  

  LCD_UsrLog( "Starting OS kernel...\n" );
  osKernelStart();

  return 0;
}
Beispiel #5
0
int main(void)
{
	task_t task = { VALID_TASK_MAGIC,
			TODO, 
			ICMP, 
			4839903, 
			COND_SUCCESS,
			1, 
			0,
			"4.131.153.3", 
			900913,
			1337,
			42,
			{ 0 },
			{0, 0},
			{0, 0},
			{0, 0},
			{0, 0},
			{0, 0},
			{0, 0},
			{0, 0}
			};
	int i;

	task.ip_addr.s_addr = inet_addr("4.131.153.3");

	printf("Size of a single task:  %d bytes.\n", sizeof(task_t));

	printf("Initializing task stack...\n");
	tasks_init();
	
	printf("Now let's add a task.\n");
	i = task_add(task);
	printf("task_add returned %d.\n", i);

	printf("Let's print the tasks:\n");
	print_tasks();

	printf("Get a task to perform...\n");
	i = get_task(&task);
	printf("get_task returned %d.\n", i);

	printf("Did get_task change the status properly?\n");
	print_tasks();

	printf("Pretend to be working for 1 second...\n");
	sleep(1);

	printf("Now let's tell it that we're done with the task.\n");
	i = task_set_status(task.taskid, COMPLETE);
	printf("task_set status returned %d.\n", i);
	print_tasks();

	printf("get_completed\n");
	i = get_completed(&task);
	printf("%d\n", i);
	print_tasks();

	return 0;

}
Beispiel #6
0
int main_loop(struct multiboot_info *boot_info)
{
    _kclear();
    syscall_init();
    module_start = (char*) *((unsigned int*)boot_info->mods_addr);
	module_end = *((unsigned int*)(boot_info->mods_addr+4));
    _kcolor(BRIGHT_GREEN);
    _kputs(DREAMOS_VER);
    _kcolor(WHITE);
    _kputs(LNG_SITE);
    _kcolor(BRIGHT_BLUE);
    _kputs(SITEURL);
    _kputs("\n");
    _kcolor(WHITE);
    _kputs("\n");    
    _kputs(LNG_GDT);
    init_gdt();
    _kprintOK();

    outportb(0xFF, MASTER_PORT_1);
    outportb(0xFF, SLAVE_PORT_1);
    _kputs(LNG_IDT);        
    asm("cli");   
    init_idt();
    _kprintOK();  
    _kputs(LNG_PIC8259);
    init_IRQ();   
    _kprintOK();            	    
    set_memorysize((boot_info->mem_upper+boot_info->mem_lower)*1024);
    init_mem();       
    asm("sti");
    _kprintOK();   
    init_paging();    
    _kprintOK();
    printf("Memory (upper) amount-> %d Mb \n", boot_info->mem_upper/1024);
    printf("Memory (lower) amount-> %d kb \n", boot_info->mem_lower);	
    /** Alloc and fill CPUID structure */
    sinfo = kmalloc(sizeof(struct cpuinfo_generic));    
    get_cpuid (sinfo);        
    vfs_init();
    initfs_init();      
	if(boot_info->mods_count > 0) printf("Found n. %d Modules\n", boot_info->mods_count);				
    printf("\n");
    tasks_init();
    init_scheduler();
    _kprintOK();
    printf(LNG_PIT8253);    
    printf("----\n");    
    printf(LNG_SHELL);    
    _kprintOK();
		printf("[+] Address: 0x%x\n", &end);		   	        
		printf("\n");
		dbg_bochs_print((const unsigned char*)"DreamOS Debug String for Bochs\n");
#ifdef BOCHS_DEBUG
		dbg_bochs_print((const unsigned char*)"DreamOS Debug String for Bochs\n");
#endif
		configure_PIT ();   
		new_task("idle", idle);		
		new_task("dreamshell", shell);
    return 0;
}