void app_main(void *data) { EatEvent_st event; eat_bool rc; EatEntryPara_st *para; APP_InitRegions();//Init app RAM APP_init_clib(); //C library initialize, second step para = (EatEntryPara_st*)data; if(para->is_update_app && para->update_app_result) { //APP update succeed LOG_DEBUG("app upgrade success"); eat_update_app_ok(); //clear update APP flag } LOG_INFO("booting: version:%s, build_time=%s %s. core(version:%s, buildno=%s, buildtime=%s)", VERSION_STR, __DATE__, __TIME__, eat_get_version(), eat_get_buildno(), eat_get_buildtime()); rc = eat_mem_init(s_memPool, EAT_MEM_MAX_SIZE); if (!rc) { LOG_ERROR("eat memory initial error:%d!", rc); return; } if (lzo_init() != LZO_E_OK) { return; } log_initial(); setting_restore(); fs_initial(); seek_initial(); startWatchdog(); while(EAT_TRUE) { unsigned int event_num = eat_get_event_num(); if (event_num != 0) { int i = 0; for (i = 0; i < event_num; i++) { eat_get_event(&event); event_proc(&event); } } //poll } }
void app_main(void *data) { EatEvent_st event; u16 len = 0; EatUartConfig_st uart_config; eat_bool ret; APP_InitRegions();//Init app RAM APP_init_clib(); //C library initialize, second step #if 0 if(eat_uart_open(EAT_UART_1 ) == EAT_FALSE) { eat_trace("[%s] uart(%d) open fail!", __FUNCTION__, EAT_UART_1); } uart_config.baud = EAT_UART_BAUD_115200; uart_config.dataBits = EAT_UART_DATA_BITS_8; uart_config.parity = EAT_UART_PARITY_NONE; uart_config.stopBits = EAT_UART_STOP_BITS_1; if(EAT_FALSE == eat_uart_set_config(EAT_UART_1, &uart_config)) { eat_trace("[%s] uart(%d) set config fail!", __FUNCTION__, EAT_UART_1); } #endif log_0("app_main ENTRY"); Gpio_init(); ret = eat_mem_init(s_memPool,EAT_MEM_MAX_SIZE); if (!ret) log_0("ERROR: eat memory initial error!"); eat_timer_start(TIMER_SOFT_RESET,600000); at_cluster(); while(EAT_TRUE) { eat_get_event(&event); log_2("MSG id%x", event.event); switch(event.event) { case EAT_EVENT_TIMER : { EatTimer_enum timer_id = event.data.timer.timer_id; timer_hdlr(timer_id); } break; case EAT_EVENT_INT : log_0("INTERRUPT IS COMING"); if(get_key())/*donw = 1 */ key_hdlr(); break; case EAT_EVENT_USER_MSG: { u8 data = event.data.user_msg.data[0]; set_debounce(data); } break; case EAT_EVENT_KEY: { eat_bool press = event.data.key.is_pressed; log_0("power key"); pwrkey_hdlr(press); } break; case EAT_EVENT_MDM_READY_WR: break; case EAT_EVENT_UART_READY_RD: log_2("EAT_EVENT_UART_READY_RD"); break; case EAT_EVENT_MDM_READY_RD: { len = 0; /* boot info(such as:RDY ;+CFUN: 1 ;+CPIN: READY) * will be sent to here(main task); */ len = eat_modem_read(buf, 2048); /*necessary:Read it out*/ buf[len] = 0; log_2("main task buf (%s)",buf); #if 0 if(core_is_ready(buf)) { eat_trace("core is ready"); eat_timer_start(TIMER_SOFT_RESET,600000); at_cluster(); } #endif } break; case EAT_EVENT_UART_SEND_COMPLETE : break; default: break; } } }