示例#1
0
void hal_init () {
    // configure radio I/O and interrupt handler
    hal_io_init();
    // configure radio SPI
    hal_spi_init();
    // configure timer and interrupt handler
    hal_time_init();
}
示例#2
0
void hal_init () {
    // configure radio I/O and interrupt handler
    hal_io_init();
    // configure radio SPI
    hal_spi_init();
    // configure timer and interrupt handler
    hal_time_init();
#if defined(LMIC_PRINTF_TO)
    // printf support
    hal_printf_init();
#endif
}
示例#3
0
文件: main.c 项目: LastRitter/GridOS
void __init __noreturn hal_main()
{
	/* 开辟鸿蒙,谁为情种?最初的一切*/
	km_cluster_init();
	build_ram_list();
	
	/* Go back to ARCH, we have inited the basic paging allocator */
	hal_arch_init(HAL_ARCH_INIT_PHASE_EARLY);
	
	/* KERNEL */
	kc_init();
	kp_init();
	ks_init();
	
	hal_malloc_init();
	hal_dpc_init();
	hal_time_init();

	hal_arch_init(HAL_ARCH_INIT_PHASE_MIDDLE);

	hal_console_init();
	printk("GridOS 启动中...\n");
	ke_module_entry();
	
	local_irq_enable();
	
	/* Driver pakcage loading, and it must be the last file */
	hal_boot_module_loop(start_driver_ctx);
	if (last_package_id == driver_package_id && driver_pakcage)
	{
		ke_startup_driver_process(driver_pakcage, driver_size);
	}
	else
	{
		if (driver_size)
			printk("Driver package is not the last one, BSS in it may overlay the useful file data after it...");
		else
			printk("No driver package was loaded...");
	}
	printk("Hal startup ok.\n");
	
	kernel_test();
	while (1) 
	{
		kt_schedule_driver();
		/* If have no process, sleep */
		if (!kt_schedule_running_count())
			dumy_idle_ops(0);
		else
			kt_schedule();
	}
}