/************************************************************************** * Control arrives here from assembly/start.asm ***************************************************************************/ void k_main() { initialize_video(); initialize_boot_console(); // Print the welcome banner kset_color(DEFAULT_COLOR); kprintf("Welcome To "); kset_color(LIGHT_BLUE); kprintf("Blue Fire OS.\n"); kset_color(DEFAULT_COLOR); kprintf("Kernel is running at virtual address: %#010x\n", (u32int)&_start); kprintf("Total System memory is: %d MB\n", (var_system_memory_amount /(1024 * 1024)) ); dump_dirty_pages(); initialize_paging(); initialize_main_console(); dbg_brk(); // We must never reach this point. PANIC("End of k_main reached."); }
void VL_SetVGAPlaneMode() { initialize_video(); const int k_vga_size = vga_scale * vga_scale * k_vga_ref_size; delete [] vga_memory; vga_memory = new Uint8[k_vga_size]; std::uninitialized_fill_n(vga_memory, k_vga_size, 0); delete [] vga_palette; vga_palette = new Uint8[k_vga_palette_size]; std::uninitialized_fill_n(vga_palette, k_vga_palette_size, 0); }
/** * * Main function * * This function is the main entry of the interrupt test. It does the following: * Initialize the audio * Initialize the debug uart * Enable the interrupts * * @param None * * @return * - XST_SUCCESS if example finishes successfully * - XST_FAILURE if example fails. * * @note None. * ******************************************************************************/ int main(void) { init_platform(); InitMotorBoard(); xil_printf("\r\n--- Entering main() --- \r\n"); int status = XST_SUCCESS; status |= initialize_audio(&sIic, &sAxiAudioDma); status |= fnInitInterruptController(&sIntc); status |= initialize_uart(&sUartLite); status |= initialize_video(&sVideoCapt, &sIntc); status |= initialize_targeting(&sAxiTargetingDma); status |= SetupSdGpio(&sGpio); if (status != XST_SUCCESS) { xil_printf("Failed to initialize system.\r\n"); return XST_FAILURE; } // Initialize static variables. for (int i = 0; i < FILE_ID_MAX; i++) { sSdFileBoard[i].loaded = false; } sSdFileMemTip = (u32 *) AUDIO_BASE_ADDR; sButtonState = 0; sLoopSelect = DEFAULT_LOOP; fnEnableInterrupts(&sIntc, &ivt[0], sizeof(ivt)/sizeof(ivt[0])); register_uart_response("test", test_fcn); register_uart_response("record", uart_rec_audio); register_uart_response("play", uart_play_audio); register_uart_response("kill", end_fcn); register_uart_response("exit", end_fcn); register_uart_response("dump", dump_mem); // Commands to run self-tests register_uart_response("lowlevel", LowLevelTest); register_uart_response("highlevel", HighLevelTest); register_uart_response("lasertest", EnterLaserTest); register_uart_response("motortest", EnterMotorTest); register_uart_response("stop", stopTest); register_uart_response("load_sounds", loadSounds); register_uart_response("load_images", loadImages); register_uart_response("still_alive", playPortalSong); register_uart_response("gun", playGunSound); register_uart_response("portal_gun", playPortalGunSound); register_uart_response("target", playTargetAcquired); register_uart_response("playpos", playPos); register_uart_response("playneg", playNeg); register_uart_response("manual", EnterManualMainLoop); register_uart_response("auto", EnterAutomaticMainLoop); register_uart_response("passthrough", passthroughHdmi); register_uart_response("runip", EnterIpTest); register_uart_response("videoinfo", print_video_info); register_uart_response("df1", df1); register_uart_response("df2", df2); register_uart_response("df0", df0); register_uart_response("vf1", vf1); register_uart_response("vf2", vf2); register_uart_response("vf0", vf0); register_uart_response("ipinfo", print_ip_info); register_uart_response("ipouttoggle", toggle_ip_output); register_uart_response("dummytarget", setDummyTarget); register_uart_response("lemon", DisplayLemon); register_uart_response("heman", DisplayHeman); register_uart_response("pass", SetPassthroughMode); register_uart_response("gray", SetGrayscaleMode); register_uart_response("sobel", SetSobelMode); register_uart_response("thresh", SetThresholdMode); register_uart_response("label", SetLabelMode); register_uart_response("colour", SetColourMode); register_uart_response("laser", SetLaserMode); register_uart_response("flood1", SetFlood1Mode); register_uart_response("flood2", SetFlood2Mode); register_uart_response("laseron", LaserOn); register_uart_response("laseroff", LaserOff); register_uart_response("redthresh", SetRedThreshold); register_uart_response("sobelthresh", SetSobelThreshold); register_uart_response("f1thresh", SetFlood1Threshold); register_uart_response("f2thresh", SetFlood2Threshold); register_uart_response("setminsize", SetSizeThreshold); register_uart_response("setobjid", SetObjId); register_uart_response("test_args", TestArgs); xil_printf("\r\n--- Done registering UART commands --- \r\n"); initialSetup(); xil_printf(PROMPT_STRING); while (do_run) { switch (sLoopSelect) { case MANUAL_MODE: ManualMainLoop(); break; case AUTOMATIC_MODE: AutoMainLoop(); break; case LASER_TEST: LaserTest(); break; case MOTOR_TEST: MotorPatternTest(); break; case IP_TEST: runImageProcessing(); sLoopSelect = DEFAULT_LOOP; break; default: MB_Sleep(100); break; } } xil_printf("\r\n--- Exiting main() --- \r\n"); return XST_SUCCESS; }