/****************************************************************************** Function Name : main Description : Main task Arguments : none Return value : none ******************************************************************************/ void main(void) { lvd_err_t err; lvd_config_t channel1_cfg; channel1_cfg.e_action = LVD_ACTION_RESET; channel1_cfg.e_trigger = LVD_TRIGGER_FALL; channel1_cfg.e_voltage_level =LVD_VOLTAGE_CH1_2_95; err = R_LVD_Open(LVD_CHANNEL_1, &channel1_cfg, NULL); bool ret = false; /* Reserve the CMT0 for FreeRTOS */ ret = R_BSP_HardwareLock((mcu_lock_t)(BSP_LOCK_CMT0)); while (false == ret) /* can't lock the CMT0 resource */ { while (1); } WDT_FEED /* Inicialização das variaveis EEPROM */ eepromInit(); eepromConsistencyCheck(); /* Initialize USB */ usb_main(); /* Initialize RTOS */ FreeRTOSConfig(); /* Start tasks - only returns if something bad happened! */ vTaskStartScheduler(); while (1) { } }
/***************************************************************************** DISCRIPTION : コマンドスレッドメイン1 ARGUMENT : argc argv RETURN : 0 = 正常終了 0以外 = 異常終了 NOTE : - UPDATED : 2014-06-22 *****************************************************************************/ int command_main(int argc, char** argv) { char* pcBuf; int iSize; uint32 ulAddr = 0x00003034; sendUse(SERIAL_DEFAULT_DEV); while(1) { sendWrite("cmd> "); /* コンソールからの受信文字列を受け取る */ kzRecv(MSGBOX_ID_CONS_INPUT, &iSize, &pcBuf); pcBuf[iSize] = '\0'; if(strncmp(pcBuf, "echo", 4) == TRUE) { sendWrite(&pcBuf[4]); sendWrite("\n"); } #if 1 else if(strncmp(pcBuf, "usb", 3) == TRUE) { usb_main(0,NULL); } #endif else if(pcBuf[0] == '\0') { /* 何もしない */ } else if(strcmp(pcBuf, "0000") == TRUE) { //pFuncEntry = (int (*)(int argc, char** argv))ppcOsEntryFp; //pFuncEntry(1, ppcOsEntryFp); ((void (*)())ulAddr)(); } else { sendWrite("unknown.\n"); } kzMfree(pcBuf); } return 0; }