void init_quick_tests(int argc, char *argv[]) { int trace=0; int new_option; //int x=0; do{ new_option=getopt_long(argc,argv,short_options,long_options,NULL); if (new_option=='h'){ printf("help\n"); printf("-h will print the commands available\n"); printf("-c will continue after a test fails else the program will exit\n"); printf("-v will print all messages\n"); printf("-q quiet mode only the number of tests passed and failed will be printed\n"); printf("-t [number] set yaffs_trace to number\n"); printf("-n [number] sets the number of random loops to run after the the test has run\n"); exit(0); } else if (new_option=='c') { set_exit_on_error(0); } else if (new_option=='q') { set_print_level(-3); } else if (new_option=='t') { trace = atoi(optarg); } else if (new_option=='v') { set_print_level(5); } else if (new_option=='n') { number_of_random_tests=atoi(optarg); } }while (new_option!=-1); yaffs_start_up(); yaffs_set_trace(trace); }
void init(char *yaffs_test_dir,char *yaffs_mount_dir,int argc, char *argv[]){ char output=0; int x=0; int seed=-1; FILE *log_handle; /*these variables are already set to zero, but it is better not to take chances*/ message_buffer.head=0; message_buffer.tail=0; log_handle=fopen(LOG_FILE,"w"); if (log_handle!=NULL){ fputs("log file for yaffs tester\n",log_handle); fclose(log_handle); } add_to_buffer(&message_buffer,"welcome to the yaffs tester",MESSAGE_LEVEL_BASIC_TASKS,PRINT);/* print boot up message*/ yaffs_start_up(); yaffs_mount(yaffs_mount_dir); for (x=0;x<argc;x++){ // add_to_buffer(&message_buffer,"argv ",MESSAGE_LEVEL_BASIC_TASKS,PRINT); // add_to_buffer(&message_buffer,argv[x],MESSAGE_LEVEL_BASIC_TASKS,PRINT); if (strcmp("-seed",argv[x])==0){ /*warning only compares the length of the strings, quick fix*/ seed= atoi(argv[x+1]); /*add_to_buffer(&message_buffer,"setting seed to ",MESSAGE_LEVEL_BASIC_TASKS,NPRINT); append_int_to_buffer(&message_buffer,seed,MESSAGE_LEVEL_BASIC_TASKS,NPRINT); append_to_buffer(&message_buffer,"\n",MESSAGE_LEVEL_BASIC_TASKS,PRINT);*/ } } if (seed==-1){ seed=time(NULL); srand(seed); } else { srand(seed); } add_to_buffer(&message_buffer,"setting seed to ",MESSAGE_LEVEL_BASIC_TASKS,NPRINT); append_int_to_buffer(&message_buffer,seed,MESSAGE_LEVEL_BASIC_TASKS,PRINT);/* print boot up message*/ if (yaffs_access(yaffs_test_dir,0)) /* if the test folder does not exist then create it */ { add_to_buffer(&message_buffer,"creating dir: ",MESSAGE_LEVEL_BASIC_TASKS,NPRINT); append_to_buffer(&message_buffer,yaffs_test_dir,MESSAGE_LEVEL_BASIC_TASKS,PRINT); output=yaffs_mkdir(yaffs_test_dir,S_IREAD | S_IWRITE); yaffs_check_for_errors(output, &message_buffer,"could not create dir","created dir\n\n"); } }
int main() { int output = 0; int output2 = 0; yaffs_start_up(); printf("\n\n starting test\n"); yaffs_set_trace(0); output = yaffs_mount(YAFFS_MOUNT_POINT); if (output>=0){ printf("yaffs mounted: %s\n",YAFFS_MOUNT_POINT); } else { printf("error\n yaffs failed to mount: %s\nerror\n",YAFFS_MOUNT_POINT); return (0); } //now create a file. output = yaffs_open(FILE_PATH,O_CREAT | O_RDWR, S_IREAD | S_IWRITE); if (output>=0){ printf("file created: %s\n",FILE_PATH); } else { printf("error\n yaffs failed to create the file: %s\nerror\n",FILE_PATH); return (0); } output2 = yaffs_close(output); if (output2>=0){ printf("file closed: %s\n",FILE_PATH); } else { printf("error\n yaffs failed to close the file: %s\nerror\n",FILE_PATH); return (0); } //unmount and remount the mount point. output = yaffs_unmount(YAFFS_MOUNT_POINT); if (output>=0){ printf("yaffs unmounted: %s\n",YAFFS_MOUNT_POINT); } else { printf("error\n yaffs failed to unmount: %s\nerror\n",YAFFS_MOUNT_POINT); return (0); } output = yaffs_mount(YAFFS_MOUNT_POINT); if (output>=0){ printf("yaffs mounted: %s\n",YAFFS_MOUNT_POINT); } else { printf("error\n yaffs failed to mount: %s\nerror\n",YAFFS_MOUNT_POINT); return (0); } //now open the existing file. output = yaffs_open(FILE_PATH, O_RDWR, S_IREAD | S_IWRITE); if (output>=0){ printf("file created: %s\n",FILE_PATH); } else { printf("error\n yaffs failed to create the file: %s\nerror\n",FILE_PATH); return (0); } //close the file. output2 = yaffs_close(output); if (output2>=0){ printf("file closed: %s\n",FILE_PATH); } else { printf("error\n yaffs failed to close the file: %s\nerror\n",FILE_PATH); return (0); } //unmount the mount point. output = yaffs_unmount(YAFFS_MOUNT_POINT); if (output>=0){ printf("yaffs unmounted: %s\n",YAFFS_MOUNT_POINT); } else { printf("error\n yaffs failed to unmount: %s\nerror\n",YAFFS_MOUNT_POINT); return (0); } printf("test passed. yay!\n"); }
/********************************************************************************************************* ** Function name: taskStart ** Descriptions: Start task ** input parameters: *parg ** output parameters: ? ** Returned value: ? *********************************************************************************************************/ static void TaskStart (void *parg) { INT8U err; UserRS485Send ussend; (void)parg; #if OS_TASK_STAT_EN > 0 OSStatInit(); /* Enable statistics */ #endif /* Init the file system */ optionSaveStruct.masterIP[1]=0xaa; EEPROM_WriteStruct(optionSaveStruct); yaffs_start_up(); File_Init(); KeyInit(); KeyQueueHead=OSQCreate(KeyMsg,KEYQSIZE); //创建按键消息队列 在优先级较高的任务中执行 ConfigQueueHead = OSQCreate( ConfigMsg, CONFIGQSIZE ); UploadQueueHead = OSQCreate( UploadMsg, UPLOADQSIZE ); EquipmentTaskSem = OSSemCreate(0); UartRcvTaskSem = OSSemCreate(1); sem_tcp_init_done = OSSemCreate(0); UartSendTaskSem = OSSemCreate(1); tcpip_init(tcpip_init_done, NULL); OSSemPend(sem_tcp_init_done, 0, &err); eth_netif_init(ipConfig); TCPTest(); err = OSTaskCreate((void (*)(void *)) Equipment_Task, (void * ) 0, (OS_STK * )&TaskEquipmentStk[TASK_KEY_STK_SIZE - 1], (INT8U ) TASK_EQUIPMENT_PRIO ); /* Create Equipment Task */ //printf("Equipment_Task: err = %d\n", err ); err = OSTaskCreate((void (*)(void *)) UartRcv_Task, (void * ) 0, (OS_STK * )&TaskUartRcvStk[TASK_KEY_STK_SIZE - 1], (INT8U ) TASK_UART_RCV_PRIO ); /* Create Equipment Task */ //printf("UartRcv_Task: err = %d\n", err ); err = OSTaskCreate((void (*)(void *)) FileReceive_Task, (void * ) 0, (OS_STK * )&TaskFileRcvStk[TASK_FILERCV_STK_SIZE - 1], (INT8U ) TASK_FILE_RCV_PRIO ); /* Create FileReceive Task */ //printf("FileReceive_Task: err = %d\n", err ); err = OSTaskCreate((void (*)(void *)) hvsftpd_main, (void * ) 0, (OS_STK * )&TaskFtpStk[TASK_FTP_STK_SIZE - 1], (INT8U ) TASK_FTP_PRIO ); /* Create FileReceive Task */ printf(" hvsftpd_Task: err = %d\n", err ); err = OSTaskCreate ((void (*)(void *))Menu_Task, (void *)0, (OS_STK *)&Gstk2[MENU_TASK_STK_SIZE-1], (INT8U )MENU_TASK_PRIO ); /* Create Menu Task */ /* err = OSTaskCreate ((void (*)(void *))Test_Key, (void *)0, (OS_STK *)&TestStk[511], (INT8U )44 ); / Create Menu Task */ App_KeyTaskCreate(); /* Create Task Key */ #if FRMB_DEBUG ussend.address=0x00; ussend.ctrl=0x01; ussend.data[0]=0xaa; ussend .len=1; ussend.CRCH=0x00; ussend.CRCL=0x11; #else // err=OSTaskCreate((void (*)(void *))FMB_Task, // (void *)0, // (OS_STK *)&FMBStk[FMB_TASK_STK_SIZE-1], // (INT8U )FMB_TASK_PRIO ); // // err=OSTaskCreate((void (*)(void *))FMB_Poll_Task, // (void *)0, // (OS_STK *)&FMBPollStk[FMB_TASK_STK_SIZE-1], // (INT8U )FMB_POLL_TASK_PRIO ); #endif while (1) { #if FRMB_DEBUG RS485Send_Struct(RS485_UART0,&ussend); RS485Send_Struct(RS485_UART2,&ussend); RS485Send_Struct(RS485_UART3,&ussend); RS485Send_Struct(RS485_UART4,&ussend); #else #endif //OSTimeDly(500); OSTaskSuspend(OS_PRIO_SELF); /* The start task can be pended*/ /* here. ?????????? */ } }