/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); cbmem_init(&cbmem, cbmem_buf, MAX_CBMEM_BUF); log_register("log", &my_log, &log_cbmem_handler, &cbmem, LOG_SYSLEVEL); stats_init(STATS_HDR(g_stats_gpio_toggle), STATS_SIZE_INIT_PARMS(g_stats_gpio_toggle, STATS_SIZE_32), STATS_NAME_INIT_PARMS(gpio_stats)); stats_register("gpio_toggle", STATS_HDR(g_stats_gpio_toggle)); conf_load(); log_reboot(HARD_REBOOT); init_tasks(); os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
/** * main * * The main task for the project. This function initializes the packages, calls * init_tasks to initialize additional tasks (and possibly other objects), * then starts serving events from default event queue. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); cbmem_init(&cbmem, cbmem_buf, MAX_CBMEM_BUF); log_register("log", &my_log, &log_cbmem_handler, &cbmem, LOG_SYSLEVEL); stats_init(STATS_HDR(g_stats_gpio_toggle), STATS_SIZE_INIT_PARMS(g_stats_gpio_toggle, STATS_SIZE_32), STATS_NAME_INIT_PARMS(gpio_stats)); stats_register("gpio_toggle", STATS_HDR(g_stats_gpio_toggle)); conf_load(); reboot_start(hal_reset_cause()); init_tasks(); while (1) { os_eventq_run(os_eventq_dflt_get()); } /* Never exit */ return rc; }
extern void start_kernel(void) { // char *ptr = 0x2000001; init_memory(); init_page(); init_sched(); init_tasks(); init_itc(); init_clocks(); spark_registerSysCallHandler(&system_call, 0x90); //spark_print(" ========== Guest 1 :: STARTED\n"); while(1) { int i,j,k, dummy =0; for (k=0; k< 5; k++) { for( i = 0 ; i < 10000; i++) { for(j = 0 ; j < 1000; j++) { // dummy += 5; // if(dummy > 500) // dummy = 0; } } } } }
/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif os_init(); shell_task_init(SHELL_TASK_PRIO, shell_stack, SHELL_TASK_STACK_SIZE, SHELL_MAX_INPUT_LEN); (void) console_init(shell_console_rx_cb); nmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stack, NEWTMGR_TASK_STACK_SIZE); rc = arduino_test_init(); assert(rc == 0); rc = init_tasks(); os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(void) { int i; int rc; uint32_t seed; /* Initialize OS */ os_init(); /* Set cputime to count at 1 usec increments */ rc = cputime_init(1000000); assert(rc == 0); rc = os_mempool_init(&g_mbuf_mempool, MBUF_NUM_MBUFS, MBUF_MEMBLOCK_SIZE, &g_mbuf_buffer[0], "mbuf_pool"); rc = os_mbuf_pool_init(&g_mbuf_pool, &g_mbuf_mempool, MBUF_MEMBLOCK_SIZE, MBUF_NUM_MBUFS); assert(rc == 0); /* Dummy device address */ memcpy(g_dev_addr, prphtest_slv_addr, 6); /* * Seed random number generator with least significant bytes of device * address. */ seed = 0; for (i = 0; i < 4; ++i) { seed |= g_dev_addr[i]; seed <<= 8; } srand(seed); /* Set the led pin as an output */ g_led_pin = LED_BLINK_PIN; gpio_init_out(g_led_pin, 1); /* Init the console */ rc = console_init(NULL); assert(rc == 0); /* Init tasks */ init_tasks(); /* Start the OS */ os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
/**************************************************************************//** * * main * * @brief main function * * @param - * * @return - * ******************************************************************************/ void main(void) { // initialize mss mss_init(); // initialize tasks init_tasks(); // run mss - shall never return mss_run(); }
/** * main * * The main task for the project. This function initializes the packages, calls * init_tasks to initialize additional tasks (and possibly other objects), * then starts serving events from default event queue. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); rc = conf_register(&test_conf_handler); assert(rc == 0); cbmem_init(&cbmem, cbmem_buf, MAX_CBMEM_BUF); log_register("log", &my_log, &log_cbmem_handler, &cbmem, LOG_SYSLEVEL); stats_init(STATS_HDR(g_stats_gpio_toggle), STATS_SIZE_INIT_PARMS(g_stats_gpio_toggle, STATS_SIZE_32), STATS_NAME_INIT_PARMS(gpio_stats)); stats_register("gpio_toggle", STATS_HDR(g_stats_gpio_toggle)); flash_test_init(); conf_load(); log_reboot(hal_reset_cause()); init_tasks(); /* If this app is acting as the loader in a split image setup, jump into * the second stage application instead of starting the OS. */ #if MYNEWT_VAL(SPLIT_LOADER) { void *entry; rc = split_app_go(&entry, true); if(rc == 0) { hal_system_restart(entry); } } #endif /* * As the last thing, process events from default event queue. */ while (1) { os_eventq_run(os_eventq_dflt_get()); } }
/** * main * * The main task for the project. This function initializes the packages, calls * init_tasks to initialize additional tasks (and possibly other objects), * then starts serving events from default event queue. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); rc = conf_register(&test_conf_handler); assert(rc == 0); cbmem_init(&cbmem, cbmem_buf, MAX_CBMEM_BUF); log_register("log", &my_log, &log_cbmem_handler, &cbmem, LOG_SYSLEVEL); /* Initialize the OIC */ log_register("oic", &oc_log, &log_console_handler, NULL, LOG_SYSLEVEL); stats_init(STATS_HDR(g_stats_gpio_toggle), STATS_SIZE_INIT_PARMS(g_stats_gpio_toggle, STATS_SIZE_32), STATS_NAME_INIT_PARMS(gpio_stats)); stats_register("gpio_toggle", STATS_HDR(g_stats_gpio_toggle)); conf_load(); reboot_start(hal_reset_cause()); #if MYNEWT_VAL(SPLIT_LOADER) { void *entry; rc = split_app_go(&entry, true); if(rc == 0) { hal_system_start(entry); } } #endif init_tasks(); while (1) { os_eventq_run(os_eventq_dflt_get()); } /* Never returns */ return rc; }
/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif conf_init(); log_init(); log_console_handler_init(&log_console_handler); log_register("log", &my_log, &log_console_handler); LOG_DEBUG(&my_log, LOG_MODULE_DEFAULT, "bla"); LOG_DEBUG(&my_log, LOG_MODULE_DEFAULT, "bab"); os_init(); rc = os_mempool_init(&default_mbuf_mpool, DEFAULT_MBUF_MPOOL_NBUFS, DEFAULT_MBUF_MPOOL_BUF_LEN, default_mbuf_mpool_data, "default_mbuf_data"); assert(rc == 0); rc = os_mbuf_pool_init(&default_mbuf_pool, &default_mbuf_mpool, DEFAULT_MBUF_MPOOL_BUF_LEN, DEFAULT_MBUF_MPOOL_NBUFS); assert(rc == 0); rc = os_msys_register(&default_mbuf_pool); assert(rc == 0); shell_task_init(SHELL_TASK_PRIO, shell_stack, SHELL_TASK_STACK_SIZE, SHELL_MAX_INPUT_LEN); (void) console_init(shell_console_rx_cb); stats_module_init(); rc = init_tasks(); os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
void main() { __disable_interrupt(); init_core(); init_device(); init_wdt(); __enable_interrupt(); microrl_init (pointerMicrorl, &serprintf); microrl_set_execute_callback (pointerMicrorl, execute); microrl_set_complete_callback (pointerMicrorl, complet); microrl_set_sigint_callback (pointerMicrorl, sigint); init_app_settings(); print_revision(); DEBUG_PRINTF("FlashMem: %s %s\n\r", get_family_desc_at25df(), get_density_desc_at25df()); enable_default_lis3dh(); init_tasks(); init_reco_drift(); init_can_j1939(); DEBUG_PRINTF("\r\n\r\n"); while (1) { if (pointerRingBuff->size(pointerRingBuff) > 0) { const uint8_t data = pointerRingBuff->get(pointerRingBuff); if (!get_proto_type()) { microrl_insert_char (pointerMicrorl, data); } else { sdp_insert_char(data); } } poll_can_msg(); run_tasks(); clear_wdt(); } }
/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); rc = conf_register(&test_conf_handler); assert(rc == 0); cbmem_init(&cbmem, cbmem_buf, MAX_CBMEM_BUF); log_register("log", &my_log, &log_cbmem_handler, &cbmem, LOG_SYSLEVEL); stats_init(STATS_HDR(g_stats_gpio_toggle), STATS_SIZE_INIT_PARMS(g_stats_gpio_toggle, STATS_SIZE_32), STATS_NAME_INIT_PARMS(gpio_stats)); stats_register("gpio_toggle", STATS_HDR(g_stats_gpio_toggle)); conf_load(); log_reboot(HARD_REBOOT); #if MYNEWT_VAL(SPLIT_LOADER) { void *entry; rc = split_app_go(&entry, true); if(rc == 0) { hal_system_start(entry); } } #endif init_tasks(); os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); init_tasks(); os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
INT16S start_rtcs_scheduler(void) /***************************************************************************** * Input : - * Output : - * Function : The RTCS scheduler ******************************************************************************/ { // contains temp status of semaphores. // INT16U semaphores_task = 0; ENTER_CRITICAL(); task_setup(); init_tasks(); systick_init(); EXIT_CRITICAL(); while(1) { if (systick_get()) { systick_decrement(); for (rtcs_i = 0; rtcs_i < LAST_TASK+1; rtcs_i++) { if ((task_state[rtcs_i] == RUNNING) && (task_time[rtcs_i] > 0)) { task_time[rtcs_i]--; } } for (rtcs_i = 0; rtcs_i < LAST_TASK+1; rtcs_i++) { if _READY(rtcs_i) { task_time[rtcs_i] = 0; current_task = rtcs_i; // Call task. (*task[rtcs_i])(); } } } // if (tick_flag) } // while(!) return 0; }
/** * main * * The main task for the project. This function initializes the packages, calls * init_tasks to initialize additional tasks (and possibly other objects), * then starts serving events from default event queue. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { int rc; #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif sysinit(); init_tasks(); while (1) { os_eventq_run(os_eventq_dflt_get()); } /* Never returns */ assert(0); return rc; }
void cyg_user_start(void) { printf("initializing SB16\n"); ezs_sb16_init(&sb16, 0x220 /* io address */, 5 /* interrupt */, 1 /* 8 bit DMA */, 5 /* 16 bit DMA */); printf("initializing HPET\n"); ezs_counter_init(); // Initialize Tracer printf("initializing tracer\n"); int res = ezs_trace_init(); printf("tracer resolution: %d\r\n" , res); cyg_clock_to_counter(cyg_real_time_clock(), &s_real_time_counter); init_tasks(); }
void mc_main() { __asm__("j7 7"); int core = corenum(); if(core == 2){ wait_after_done = 0; s_processor = new_processor("Processor1"); s_tasks = new_tasks(names, 3); //puts(s_tasks[0].name); //puts(s_tasks[1].name); //puts(s_tasks[2].name); putchar(s_tasks[0].index+'0'); putchar(s_tasks[1].index+'0'); putchar(s_tasks[2].index+'0'); init_tasks(s_processor, s_tasks, 3); /* for(int i=0;i<3;i++)*/ /*{*/ /*j=0;*/ /*while(s_tasks[i].name[j])*/ /*putchar(s_tasks[i].name[j++]);*/ /*putchar(10);*/ /*}*/ wait_after_done = 1; // Called concurrently in all cores except core #1, after mc_init returns //set timer interrupt handler set_handlerR((int)isr); //set timer interrupt intervals set_timerInterval(CLOCK_TO_MS); //set interrupt enable putchar('f'); set_mask(0); task_3(); while (1); } else while(1); }
/** * main * * The main task for the project. This function initializes the packages, calls * init_tasks to initialize additional tasks (and possibly other objects), * then starts serving events from default event queue. * * @return int NOTE: this function should never return! */ int main(int argc, char **argv) { #ifdef ARCH_sim mcu_sim_parse_args(argc, argv); #endif /* Initialize OS */ sysinit(); /* Initialize BLE and OIC logs */ ble_oic_log_init(); /* Load config */ conf_load(); /* Initialize tasks */ init_tasks(); /* Sensor device shell init */ sensors_dev_shell_init(); /* Initialize BLE OIC GATT Server */ sensor_ble_oic_server_init(); /* log reboot */ reboot_start(hal_reset_cause()); /* * As the last thing, process events from default event queue. */ while (1) { os_eventq_run(os_eventq_dflt_get()); } return (0); }
/** * main * * The main function for the project. This function initializes the os, calls * init_tasks to initialize tasks (and possibly other objects), then starts the * OS. We should not return from os start. * * @return int NOTE: this function should never return! */ int main(void) { int i; int rc; int cnt; uint32_t seed; struct nffs_area_desc descs[NFFS_AREA_MAX]; /* Initialize OS */ os_init(); /* Set cputime to count at 1 usec increments */ rc = cputime_init(1000000); assert(rc == 0); rc = os_mempool_init(&g_mbuf_mempool, MBUF_NUM_MBUFS, MBUF_MEMBLOCK_SIZE, &g_mbuf_buffer[0], "mbuf_pool"); assert(rc == 0); rc = os_mbuf_pool_init(&g_mbuf_pool, &g_mbuf_mempool, MBUF_MEMBLOCK_SIZE, MBUF_NUM_MBUFS); assert(rc == 0); rc = os_msys_register(&g_mbuf_pool); assert(rc == 0); /* Dummy device address */ #if BLETEST_CFG_ROLE == BLETEST_ROLE_ADVERTISER g_dev_addr[0] = 0x00; g_dev_addr[1] = 0x00; g_dev_addr[2] = 0x00; g_dev_addr[3] = 0x88; g_dev_addr[4] = 0x88; g_dev_addr[5] = 0x08; g_bletest_cur_peer_addr[0] = 0x00; g_bletest_cur_peer_addr[1] = 0x00; g_bletest_cur_peer_addr[2] = 0x00; g_bletest_cur_peer_addr[3] = 0x99; g_bletest_cur_peer_addr[4] = 0x99; g_bletest_cur_peer_addr[5] = 0x09; #else g_dev_addr[0] = 0x00; g_dev_addr[1] = 0x00; g_dev_addr[2] = 0x00; g_dev_addr[3] = 0x99; g_dev_addr[4] = 0x99; g_dev_addr[5] = 0x09; g_bletest_cur_peer_addr[0] = 0x00; g_bletest_cur_peer_addr[1] = 0x00; g_bletest_cur_peer_addr[2] = 0x00; g_bletest_cur_peer_addr[3] = 0x88; g_bletest_cur_peer_addr[4] = 0x88; g_bletest_cur_peer_addr[5] = 0x08; #endif /* * Seed random number generator with least significant bytes of device * address. */ seed = 0; for (i = 0; i < 4; ++i) { seed |= g_dev_addr[i]; seed <<= 8; } srand(seed); /* Set the led pin as an output */ g_led_pin = LED_BLINK_PIN; gpio_init_out(g_led_pin, 1); /* Init the console */ rc = console_init(shell_console_rx_cb); assert(rc == 0); rc = hal_flash_init(); assert(rc == 0); nffs_config.nc_num_inodes = 32; nffs_config.nc_num_blocks = 64; nffs_config.nc_num_files = 2; nffs_config.nc_num_dirs = 2; rc = nffs_init(); assert(rc == 0); cnt = NFFS_AREA_MAX; rc = flash_area_to_nffs_desc(FLASH_AREA_NFFS, &cnt, descs); assert(rc == 0); if (nffs_detect(descs) == FS_ECORRUPT) { rc = nffs_format(descs); assert(rc == 0); } shell_task_init(SHELL_TASK_PRIO, shell_stack, SHELL_TASK_STACK_SIZE, SHELL_MAX_INPUT_LEN); nmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stack, NEWTMGR_TASK_STACK_SIZE); imgmgr_module_init(); /* Init statistics module */ stats_module_init(); /* Init tasks */ init_tasks(); /* Start the OS */ os_start(); /* os start should never return. If it does, this should be an error */ assert(0); return rc; }
int main(int argc, char **argv) { extern int game_is_being_shut_down; int i, new_mudlib = 0; char *p; struct svalue *ret; extern struct svalue catch_value; extern void init_cfuns(void); struct gdexception exception_frame; (void)setlinebuf(stdout); const0.type = T_NUMBER; const0.u.number = 0; const1.type = T_NUMBER; const1.u.number = 1; constempty.type = T_FUNCTION; constempty.u.func = &funcempty; funcempty.funtype = FUN_EMPTY; catch_value = const0; /* * Check that the definition of EXTRACT_UCHAR() is correct. */ p = (char *)&i; *p = -10; if (EXTRACT_UCHAR(p) != 0x100 - 10) { (void)fprintf(stderr, "Bad definition of EXTRACT_UCHAR() in config.h.\n"); exit(1); } set_current_time(); #ifdef PROFILE_LPC set_profile_timebase(60.0); /* One minute */ #endif #ifdef DRAND48 srand48((long)current_time); #else #ifdef RANDOM srandom(current_time); #else #error No random generator specified!\n #endif /* RANDOM */ #endif /* DRAND48 */ #if RESERVED_SIZE > 0 reserved_area = malloc(RESERVED_SIZE); #endif init_tasks(); query_load_av(); init_num_args(); init_machine(); init_cfuns(); /* * Set up the signal handling. */ init_signals(); /* * The flags are parsed twice ! * The first time, we only search for the -m flag, which specifies * another mudlib, and the D-flags, so that they will be available * when compiling master.c. */ for (i = 1; i < argc; i++) { if (atoi(argv[i])) port_number = atoi(argv[i]); else if (argv[i][0] != '-') continue; switch(argv[i][1]) { case 'D': if (argv[i][2]) { /* Amylaar : allow flags to be passed down to the LPC preprocessor */ struct lpc_predef_s *tmp; tmp = (struct lpc_predef_s *) xalloc(sizeof(struct lpc_predef_s)); if (!tmp) fatal("xalloc failed\n"); tmp->flag = string_copy(argv[i]+2); tmp->next = lpc_predefs; lpc_predefs = tmp; continue; } (void)fprintf(stderr, "Illegal flag syntax: %s\n", argv[i]); exit(1); /* NOTREACHED */ case 'N': no_ip_demon++; continue; case 'm': if (chdir(argv[i]+2) == -1) { (void)fprintf(stderr, "Bad mudlib directory: %s\n", argv[i]+2); exit(1); } new_mudlib = 1; break; } } if (!new_mudlib && chdir(MUD_LIB) == -1) { (void)fprintf(stderr, "Bad mudlib directory: %s\n", MUD_LIB); exit(1); } if (setjmp(exception_frame.e_context)) { clear_state(); add_message("Anomaly in the fabric of world space.\n"); } else { exception_frame.e_exception = NULL; exception_frame.e_catch = 0; exception = &exception_frame; auto_ob = 0; master_ob = 0; if ((auto_ob = load_object("secure/auto", 1, 0, 0)) != NULL) { add_ref(auto_ob, "main"); auto_ob->prog->flags |= PRAGMA_RESIDENT; } get_simul_efun(); master_ob = load_object("secure/master", 1, 0, 0); if (master_ob) { /* * Make sure master_ob is never made a dangling pointer. * Look at apply_master_ob() for more details. */ add_ref(master_ob, "main"); master_ob->prog->flags |= PRAGMA_RESIDENT; resolve_master_fkntab(); create_object(master_ob); load_parse_information(); clear_state(); } } exception = NULL; if (auto_ob == 0) { (void)fprintf(stderr, "The file secure/auto must be loadable.\n"); exit(1); } if (master_ob == 0) { (void)fprintf(stderr, "The file secure/master must be loadable.\n"); exit(1); } set_inc_list(apply_master_ob(M_DEFINE_INCLUDE_DIRS, 0)); { struct svalue* ret1; ret1 = apply_master_ob(M_PREDEF_DEFINES, 0); if (ret1 && ret1->type == T_POINTER) { int ii; struct lpc_predef_s *tmp; for (ii = 0; ii < ret1->u.vec->size; ii++) if (ret1->u.vec->item[ii].type == T_STRING) { tmp = (struct lpc_predef_s *) xalloc(sizeof(struct lpc_predef_s)); tmp->flag = string_copy(ret1->u.vec->item[ii].u.string); tmp->next = lpc_predefs; lpc_predefs = tmp; } } } for (i = 1; i < argc; i++) { if (atoi(argv[i])) ; else if (argv[i][0] != '-') { (void)fprintf(stderr, "Bad argument %s\n", argv[i]); exit(1); } else { /* * Look at flags. -m has already been tested. */ switch(argv[i][1]) { case 'f': push_string(argv[i]+2, STRING_MSTRING); (void)apply_master_ob(M_FLAG, 1); if (game_is_being_shut_down) { (void)fprintf(stderr, "Shutdown by master object.\n"); exit(0); } continue; case 'e': e_flag++; continue; case 'O': warnobsoleteflag++; continue; case 'D': continue; case 'N': continue; case 'm': continue; case 'd': d_flag = atoi(argv[i] + 2); continue; case 'c': comp_flag++; continue; case 'l': unlimited++; continue; case 't': t_flag++; continue; case 'S': s_flag++; mudstatus_set(1, -1, -1); /* Statistics, default limits */ continue; case 'u': #ifdef CATCH_UDP_PORT udp_port = atoi (&argv[i][2]); #endif continue; case 'p': #ifdef SERVICE_PORT service_port = atoi (&argv[i][2]); #endif continue; case 'y': #ifdef YYDEBUG yydebug = 1; #endif continue; default: (void)fprintf(stderr, "Unknown flag: %s\n", argv[i]); exit(1); } } } /* * See to it that the mud name is always defined in compiled files */ ret = apply_master_ob(M_GET_MUD_NAME, 0); if (ret && ret->type == T_STRING) { struct lpc_predef_s *tmp; tmp = (struct lpc_predef_s *) xalloc(sizeof(struct lpc_predef_s)); if (!tmp) fatal("xalloc failed\n"); tmp->flag = string_copy(ret->u.string); tmp->next = lpc_predefs; lpc_predefs = tmp; } ret = apply_master_ob(M_GET_VBFC_OBJECT, 0); if (ret && ret->type == T_OBJECT) { vbfc_object = ret->u.ob; INCREF(vbfc_object->ref); } else vbfc_object = 0; if (game_is_being_shut_down) exit(1); if (!t_flag) init_call_out(); preload_objects(e_flag); (void)apply_master_ob(M_FINAL_BOOT, 0); mainloop(); /* backend(); */ return 0; }
int main(int argc, char **argv) { extern int game_is_being_shut_down; char *p; int i = 0; struct svalue *ret; extern struct svalue catch_value; extern void init_cfuns(void); struct gdexception exception_frame; (void)setlinebuf(stdout); parse_args(argc, argv); const0.type = T_NUMBER; const0.u.number = 0; const1.type = T_NUMBER; const1.u.number = 1; constempty.type = T_FUNCTION; constempty.u.func = &funcempty; funcempty.funtype = FUN_EMPTY; catch_value = const0; /* * Check that the definition of EXTRACT_UCHAR() is correct. */ p = (char *)&i; *p = -10; if (EXTRACT_UCHAR(p) != 0x100 - 10) { (void)fprintf(stderr, "Bad definition of EXTRACT_UCHAR() in config.h.\n"); exit(1); } set_current_time(); #ifdef PROFILE_LPC set_profile_timebase(60.0); /* One minute */ #endif #if RESERVED_SIZE > 0 reserved_area = malloc(RESERVED_SIZE); #endif init_random(); init_tasks(); query_load_av(); init_num_args(); init_machine(); init_cfuns(); init_hash(); /* * Set up the signal handling. */ init_signals(); if (chdir(mudlib_path) == -1) { (void)fprintf(stderr, "Bad mudlib directory: %s\n", MUD_LIB); exit(1); } if (setjmp(exception_frame.e_context)) { clear_state(); add_message("Anomaly in the fabric of world space.\n"); } else { exception_frame.e_exception = NULL; exception_frame.e_catch = 0; exception = &exception_frame; auto_ob = 0; master_ob = 0; if ((auto_ob = load_object("secure/auto", 1, 0, 0)) != NULL) { add_ref(auto_ob, "main"); auto_ob->prog->flags |= PRAGMA_RESIDENT; } get_simul_efun(); master_ob = load_object("secure/master", 1, 0, 0); if (master_ob) { /* * Make sure master_ob is never made a dangling pointer. * Look at apply_master_ob() for more details. */ add_ref(master_ob, "main"); master_ob->prog->flags |= PRAGMA_RESIDENT; resolve_master_fkntab(); create_object(master_ob); load_parse_information(); clear_state(); } } exception = NULL; if (auto_ob == 0) { (void)fprintf(stderr, "The file secure/auto must be loadable.\n"); exit(1); } if (master_ob == 0) { (void)fprintf(stderr, "The file secure/master must be loadable.\n"); exit(1); } set_inc_list(apply_master_ob(M_DEFINE_INCLUDE_DIRS, 0)); { struct svalue* ret1; ret1 = apply_master_ob(M_PREDEF_DEFINES, 0); if (ret1 && ret1->type == T_POINTER) { int ii; for (ii = 0; ii < ret1->u.vec->size; ii++) if (ret1->u.vec->item[ii].type == T_STRING) { add_pre_define(ret1->u.vec->item[ii].u.string); } } } if (flag != NULL) { printf("Applying driver flag: %s\n", flag); push_string(flag, STRING_MSTRING); (void)apply_master_ob(M_FLAG, 1); if (game_is_being_shut_down) { (void)fprintf(stderr, "Shutdown by master object.\n"); exit(0); } } /* * See to it that the mud name is always defined in compiled files */ ret = apply_master_ob(M_GET_MUD_NAME, 0); if (ret && ret->type == T_STRING) { struct lpc_predef_s *tmp; tmp = (struct lpc_predef_s *) xalloc(sizeof(struct lpc_predef_s)); if (!tmp) fatal("xalloc failed\n"); tmp->flag = string_copy(ret->u.string); tmp->next = lpc_predefs; lpc_predefs = tmp; } ret = apply_master_ob(M_GET_VBFC_OBJECT, 0); if (ret && ret->type == T_OBJECT) { vbfc_object = ret->u.ob; INCREF(vbfc_object->ref); } else vbfc_object = 0; if (game_is_being_shut_down) exit(1); init_call_out(); preload_objects(e_flag); (void)apply_master_ob(M_FINAL_BOOT, 0); mainloop(); return 0; }
void init_device() { PCONP_bit.PCUART0 = 0; PCONP_bit.PCPWM1 = 0; PCONP_bit.PCI2C0 = 0; PCONP_bit.PCSSP1 = 0; PCONP_bit.PCAN1 = 0; PCONP_bit.PCAN2 = 0; PCONP_bit.PCI2C1 = 0; PCONP_bit.PCSSP0 = 0; PCONP_bit.PCTIM2 = 0; PCONP_bit.PCTIM3 = 0; PCONP_bit.PCUART2 = 0; PCONP_bit.PCI2C2 = 0; PCONP_bit.PCI2S = 0; PCONP_bit.PCGPDMA = 0; PCONP_bit.PCENET = 0; init_timer0(); init_at25df(); init_led(); init_updater(); init_tasks(); init_app_settings(); create_ring_buff(pointerRingBuff, ring_buff, sizeof(ring_buff)); init_uart0(57600, 3); INT_UART0RX_ON; init_irq(); // Testing main pin (for locked mode) if (FIO2PIN_bit.P2_10 == 0) { return; } // Fork if (is_need_update() == TRUE_T) { DEBUG_PRINTF("BL:enable_update_task()\n\r"); enable_update_task(); } else { if (*((uint32_t *)(IAP_MAIN_SECT_ADDR + SHIFT_FW_VALID_FLG)) != IAP_VALID_DATA) { DEBUG_PRINTF("BL:repair_flash_iap()\n\r"); repair_flash_iap(); } uint32_t success_count = 0; const uint32_t fw_size = *((uint32_t *)(IAP_MAIN_SECT_ADDR + SHIFT_FW_SIZE_ADDR)); const uint32_t fw_crc = *((uint32_t *)(IAP_MAIN_SECT_ADDR + SHIFT_FW_CRC_ADDR)); DEBUG_PRINTF("BL:fw_size=0x%8x, fw_crc=0x%8x\n\r", fw_size, fw_crc); for (uint32_t i = 0; i < 3; i++) { uint8_t * pFw = (uint8_t *)FW_START_ADDRESS; uint32_t crc = 0; for (uint32_t k = 0; k < fw_size; k++) { crc += (uint32_t)(*pFw++); } crc = 0UL - crc; DEBUG_PRINTF("BL:compute crc=0x%8x\n\r", crc); if (fw_crc == crc) { success_count++; break; } } if (success_count > 0 && fw_crc) { DEBUG_PRINTF("BL:run_main_firmware()\n\r"); waite_tx_all_uart0(); run_main_firmware(); } } }
int main(int argc, char** argv) { unsigned int count; struct heap *h; struct task *t; struct evlink *e, *pos; struct st_event_record *rec; int wait_for_release = 0; u64 sys_release = 0; unsigned int pid_filter = 0; const char* name_filter = 0; u32 period_filter = 0; int opt; while ((opt = getopt(argc, argv, OPTSTR)) != -1) { switch (opt) { case 'r': wait_for_release = 1; break; case 'm': want_ms = 1; break; case 'p': pid_filter = atoi(optarg); if (!pid_filter) usage("Invalid PID."); break; case 't': period_filter = atoi(optarg); if (!period_filter) usage("Invalid period."); break; case 'n': name_filter = optarg; break; case ':': usage("Argument missing."); break; case '?': default: usage("Bad argument."); break; } } if (want_ms) period_filter *= 1000000; /* ns per ms */ h = load(argv + optind, argc - optind, &count); if (!h) return 1; init_tasks(); split(h, count, 1); if (wait_for_release) { rec = find_sys_event(ST_SYS_RELEASE); if (rec) sys_release = rec->data.sys_release.release; else { fprintf(stderr, "Could not find task system " "release time.\n"); exit(1); } } /* print header */ printf("#%5s, %5s, %10s, %10s, %8s, %10s, %10s, %7s\n", "Task", "Job", "Period", "Response", "DL Miss?", "Lateness", "Tardiness", "Forced?"); /* print stats for each task */ for_each_task(t) { if (pid_filter && pid_filter != t->pid) continue; if (name_filter && strcmp(tsk_name(t), name_filter)) continue; if (period_filter && period_filter != per(t)) continue; print_task_info(t); for_each_event(t, e) { rec = e->rec; if (rec->hdr.type == ST_RELEASE && (!wait_for_release || rec->data.release.release >= sys_release)) { pos = e; count = 0; while (pos && count < MAX_COMPLETIONS_TO_CHECK) { find(pos, ST_COMPLETION); if (pos->rec->hdr.job == rec->hdr.job) { print_stats(t, rec, pos->rec); break; } else { pos = pos->next; count++; } } } } }
int main(int argc, char *argv[]) { /* mandatory function to initialize simple executive application */ cvmx_user_app_init(); sysinfo = cvmx_sysinfo_get(); if (cvmx_is_init_core()) { /* may need to specify this manually for simulator */ cpu_clock_hz = sysinfo->cpu_clock_hz; if(init_tasks(NUM_PACKET_BUFFERS) != 0) { printf("Initialization failed!\n"); exit(-1); } /* get the FPA pool number of packet and WQE pools */ packet_pool = cvmx_fpa_get_packet_pool(); wqe_pool = cvmx_fpa_get_wqe_pool(); print_debug_info(); int num_interfaces = cvmx_helper_get_number_of_interfaces(); int interface; bool found_valid_xaui_port = false; for (interface=0; interface < num_interfaces && !found_valid_xaui_port; interface++) { uint32_t num_ports = cvmx_helper_ports_on_interface(interface); cvmx_helper_interface_mode_t imode = cvmx_helper_interface_get_mode(interface); if (imode == CVMX_HELPER_INTERFACE_MODE_XAUI) { printf("\nIdentified XAUI interface with %" PRIu32 " port(s)\n", num_ports); printf("interface number: %d\n", interface); uint32_t port; for (port = 0; port < num_ports; port++) { if (cvmx_helper_is_port_valid(interface, port)) { xaui_ipd_port = cvmx_helper_get_ipd_port(interface, port); printf("xaui_ipd_port: %d\n", xaui_ipd_port); found_valid_xaui_port = true; break; } } } printf("\n"); } } /* Wait (stall) until all cores in the given coremask have reached this * point in the progam execution before proceeding. */ CORE_MASK_BARRIER_SYNC; if (cvmx_is_init_core()) { receive_packet(); } else if (cvmx_get_core_num() == 1) { send_packet(); } else { /* for this program, all cores besides the first two are superfluous */ printf("Superfluous core #%02d\n", cvmx_get_core_num()); return 0; } printf("Execution complete for core #%02d\n", cvmx_get_core_num()); return 0; }
int main(void) { struct task *next; /* Set the CPU speed */ uint32_t skuid = read32(DEVICEID_BASE + DEVICEID_SKUID_OFFSET); uint32_t cpuspeed_id = skuid & DEVICEID_SKUID_CPUSPEED_MASK; uint32_t clksel_val = (1<<19) | 12; if(cpuspeed_id == DEVICEID_SKUID_CPUSPEED_720) clksel_val |= (720 << 8); else if(cpuspeed_id == DEVICEID_SKUID_CPUSPEED_600) clksel_val |= (600 << 8); else panic("Unsupported CPU!"); write32(CM_MPU_BASE + PRM_CLKSEL1_PLL_MPU_OFFSET, clksel_val); /* Basic hardware initialization */ init_cpumodes(); // set up CPU modes for interrupt handling intc_init(); // initialize interrupt controller gpio_init(); // initialize gpio interrupt system /* Start up hardware */ timers_init(); // must come first, since it initializes the watchdog eth_init(); uart_init(); /* For some reason, turning on the caches causes the kernel to hang after finishing the third invocation. Maybe we have to clear the caches here, or enable the MMU. */ printk("mmu init\n"); prep_pagetable(); init_mmu(); printk("cache init\n"); init_cache(); /* Initialize other interrupts */ init_interrupts(); /* Initialize task queues */ init_tasks(); /* Initialize idle task */ syscall_spawn(NULL, 7, idle_task, NULL, 0, SPAWN_DAEMON); pmu_enable(); trace_init(); printk("userspace init\n"); /* Initialize first user program */ syscall_spawn(NULL, 6, init_task, NULL, 0, 0); while (nondaemon_count > 0) { next = schedule(); task_activate(next); check_stack(next); } pmu_disable(); intc_reset(); eth_deinit(); deinit_mmu(); return 0; }
int16_t start_rtcs_scheduler(void) /***************************************************************************** * Input : - * Output : - * Function : The RTCS scheduler ******************************************************************************/ { // contains temp status of semaphores. // INT16U semaphores_task = 0; ENTER_CRITICAL(); timer0_systick_init(); timer0_systick_start(); task_setup(); init_tasks(); EXIT_CRITICAL(); while(1) { //Simple and no good implementation of timer incrementation //This needs to be changed into a correct interrupt handler. if (Xil_In32(XSCUTIMER_0_INT_STATUS_REG) & 0x00000001) { // Clear SCUtimer interrupt flag Xil_Out32(XSCUTIMER_0_INT_STATUS_REG,0x00000001); //increment tick systick_increment(); //increment systime systime_increment(); } if (systick_get()) { systick_decrement(); for (rtcs_i = 0; rtcs_i < LAST_TASK+1; rtcs_i++) { if ((task_state[rtcs_i] == RUNNING) && (task_time[rtcs_i] > 0)) { task_time[rtcs_i]--; } } for (rtcs_i = 0; rtcs_i < LAST_TASK+1; rtcs_i++) { if _READY(rtcs_i) { task_time[rtcs_i] = 0; current_task = rtcs_i; // Call task. (*task[rtcs_i])(); } } if(err_overload_hndlr != NULL) { //call overload error handler (*err_overload_hndlr)(systick_get()); //if tick > 0 the cpu is overloaded } } } // while(!) return 0; }