/** * Initialize keyboard ports and softtimer */ void kbd_init(void) { #if CONFIG_KBD_BEEP MOD_CHECK(buzzer); #endif KBD_HW_INIT; /* Init handlers lists */ LIST_INIT(&kbd_handlers); LIST_INIT(&kbd_rawHandlers); /* Add debounce keyboard handler */ kbd_debHandler.hook = kbd_debHandlerFunc; kbd_debHandler.pri = 100; /* high priority */ kbd_debHandler.flags = KHF_RAWKEYS; kbd_addHandler(&kbd_debHandler); #if CONFIG_KBD_LONGPRESS /* Add long pression keyboard handler */ kbd_lngHandler.hook = kbd_lngHandlerFunc; kbd_lngHandler.pri = 90; /* high priority */ kbd_lngHandler.flags = KHF_RAWKEYS; kbd_addHandler(&kbd_lngHandler); #endif /* Add repeat keyboard handler */ kbd_rptHandler.hook = kbd_rptHandlerFunc; kbd_rptHandler.pri = 80; /* high priority */ kbd_rptHandler.flags = KHF_RAWKEYS; kbd_addHandler(&kbd_rptHandler); /* Add default keyboard handler */ kbd_defHandler.hook = kbd_defHandlerFunc; kbd_defHandler.pri = -128; /* lowest priority */ kbd_addHandler(&kbd_defHandler); #if CONFIG_KBD_OBSERVER observer_InitSubject(&kbd_subject); #endif #if CONFIG_KBD_POLL == KBD_POLL_SOFTINT MOD_CHECK(timer); /* Add kbd handler to soft timers list */ event_initSoftint(&kbd_timer.expire, kbd_softint, NULL); timer_setDelay(&kbd_timer, ms_to_ticks(KBD_CHECK_INTERVAL)); timer_add(&kbd_timer); #else #error "Define keyboard poll method" #endif MOD_INIT(kbd); }
/** * Setup all needed for kfile test */ int kfile_testSetup(void) { MOD_INIT(kfile_test); LOG_INFO("Mod init..ok\n"); // Init our backend and the buffers kfilemem_init(&mem, test_disk, BUF_TEST_LEN); init_testBuf(); return 0; }
/** * Data flash init function. * * This function provide to initialize all that * needs to drive a dataflash memory. * Generaly needs to init pins to drive a CS line * and reset line. */ void dataflash_hw_init(void) { //Disable CS line (remove if not needed) dataflash_hw_setCS(false); /* * Put here your code! * * Note: * - if you drive manualy CS line, here init a CS pin * - if you use a dedicated reset line, here init a reset pin */ MOD_INIT(hw_dataflash); }
void proc_init(void) { LIST_INIT(&proc_ready_list); #if CONFIG_KERN_HEAP LIST_INIT(&zombie_list); heap_init(&proc_heap, heap_buf, sizeof(heap_buf)); #endif /* * We "promote" the current context into a real process. The only thing we have * to do is create a PCB and make it current. We don't need to setup the stack * pointer because it will be written the first time we switch to another process. */ proc_initStruct(&main_process); current_process = &main_process; #if CONFIG_KERN_MONITOR monitor_init(); monitor_add(current_process, "main"); #endif MOD_INIT(proc); }
int main (int argc, char **argv) { MOD_SET_PROGRAM_NAME(argv[0]); Py_Initialize(); MOD_INIT(demangler)(); return 0; }