/*TASK*----------------------------------------------------------------- * * Function Name : localPlay_init_task * Returned Value : void * Comments : * *END------------------------------------------------------------------*/ void localPlay_init_task ( uint_32 temp ) { MQX_TICK_STRUCT time; _mqx_int errcode = 0; /* Install MQX default unexpected ISR routines */ _int_install_unexpected_isr(); if(_lwevent_create(&player_event, 0)!= MQX_OK) { printf("\nMake event failed"); } /* Setup time */ printf("Setting up time......................"); time.TICKS[0] = 0L; time.TICKS[1] = 0L; time.HW_TICKS = 0; _time_set_ticks(&time); printf("[OK]\n"); /* Init GPIOs */ lwgpio_init(&btn_next, BSP_SW1, LWGPIO_DIR_INPUT, LWGPIO_VALUE_NOCHANGE); lwgpio_set_functionality(&btn_next,BSP_SW1_MUX_GPIO); lwgpio_set_attribute(&btn_next, LWGPIO_ATTR_PULL_UP, LWGPIO_AVAL_ENABLE); lwgpio_int_init(&btn_next, LWGPIO_INT_MODE_RISING); _int_install_isr(lwgpio_int_get_vector(&btn_next), int_service_routine_btn_pause, (void *) &btn_next); hmi_init(); sgtl5000_power_on(); hmi_install(1, int_service_routine_btn_prev); _bsp_int_init(lwgpio_int_get_vector(&btn_next), BTN_ISR_PRIORITY, 0, TRUE); lwgpio_init(&btn_prev, BSP_SW2, LWGPIO_DIR_INPUT, LWGPIO_VALUE_NOCHANGE); lwgpio_set_functionality(&btn_prev, BSP_SW2_MUX_GPIO); lwgpio_set_attribute(&btn_prev, LWGPIO_ATTR_PULL_UP, LWGPIO_AVAL_ENABLE); #ifdef SD_DETECT_POLLING lwgpio_int_init(&btn_prev, LWGPIO_INT_MODE_RISING); _int_install_isr(lwgpio_int_get_vector(&btn_prev), int_service_routine_btn_stop, (void *) &btn_prev); _bsp_int_init(lwgpio_int_get_vector(&btn_prev), BTN_ISR_PRIORITY, 0, TRUE); #endif hmi_install(2, int_service_routine_btn_next); hmi_install(3, int_service_routine_vol_up); hmi_install(4, int_service_routine_vol_down); #if 0 /* Initialize audio codec */ printf("Initializing audio codec............."); if (errcode != 0) { printf("[FAIL]\n"); printf(" Error 0x%X\n", errcode); } else { printf("[OK]\n"); } //#else /* Initialize audio driver and codec */ /************************************************/ if ((errcode = msi_snd_init()) != 0) { printf("Initializing audio driver and codec........[FAIL]\n"); printf(" Error 0x%X\n", errcode); return; } else { printf("Initializing audio driver and codec........[OK]\n"); } /************************************************/ #endif /* Create tasks */ errcode = _task_create(0, SDCARD_TASK, 0); printf("Creating SD card task................"); if (errcode == MQX_NULL_TASK_ID) { printf("[FAIL]\n"); printf(" Error 0x%X.\n"); } else { printf("[OK]\n"); } #ifdef SD_PLAYER_SHELL_SUPPORTED printf("Creating shell task.................."); errcode = _task_create(0, SHELL_TASK, 0); if (errcode == MQX_NULL_TASK_ID) { printf("[FAIL]\n"); printf(" Error 0x%X.\n"); } else { printf("[OK]\n"); } #endif lwgpio_int_enable(&btn_next, TRUE); #ifdef SD_DETECT_POLLING lwgpio_int_enable(&btn_prev, TRUE); #endif _task_abort(MQX_NULL_TASK_ID); }
/** * This function will startup RT-Thread RTOS. */ void rtthread_startup(void) { char buf[128]; char *psrc; char *pdst=RT_NULL; int i,linkno,infolen; /* init board */ rt_hw_board_init(); /* show version */ rt_show_version(); /* init tick */ rt_system_tick_init(); /* init kernel object */ rt_system_object_init(); /* init timer system */ rt_system_timer_init(); rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END); /* init scheduler system */ rt_system_scheduler_init(); /* init all device */ rt_device_init_all(); rt_kprintf("\r\nrcc.csr=%08x",RCC->CSR); /* sprintf(buf,"%s","%IPDATA:1,3,\"123\""); psrc=buf; pdst=buf; rt_kprintf("buf=%s\r\n",psrc); i = sscanf( psrc, "%%IPDATA:%d,%d,%s", &linkno, &infolen, pdst ); rt_kprintf("\r\ni=%d,linkno=%d,infolen=%d,pdst=%s\r\n",i,linkno,infolen,pdst); */ /* init application */ sst25_init(); /*在此初始化,gsm才能读取参数,放在app_thread中不会先执行*/ rt_application_init(); RS485_init(); gps_init(); gsm_init(); hmi_init(); jt808_init(); #ifdef RT_USING_FINSH /* init finsh */ finsh_system_init(); finsh_set_device( FINSH_DEVICE_NAME ); #endif /* init timer thread */ rt_system_timer_thread_init(); /* init idle thread */ rt_thread_idle_init(); /* start scheduler */ rt_system_scheduler_start(); /* never reach here */ return ; }