// 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(); }
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(); }
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; }
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; }
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; }