/* * Simple test program -- simplified version of sample test hello. */ #include #include #include #include #include /* this code is lifted from the umon demo application */ int umon_demo(int argc, char **argv) { int i, tfd; char line[80], *ab, *filename; /* If argument count is greater than one, then dump out the * set of CLI arguments... */ if (argc > 1) { mon_printf("Argument list...\n"); for(i=0;i= 0) { while(mon_tfsgetline(tfd,line,sizeof(line))) mon_printf("%s",line); mon_tfsclose(tfd,0); } else { mon_printf("TFS error: %s\n", (char *)mon_tfsctrl(TFS_ERRMSG,tfd,0)); } } else { mon_printf("File '%s' not found\n",filename); } return 0; } void catFile(const char *name) { int i; FILE *fp; char line[128]; if (!name) return; printf( "====> Start of file %s\n", name ); /* Attempt to open and print a file through the * the TFS based FS... */ fp = fopen(name,"r"); if (!fp) { printf("fopen() failed\n"); perror("fopen()"); return; } for (i=0 ; fgets(line,sizeof(line),fp) ; i++) printf("LINE %d: %s",i, line); printf( "====> End of file %s\n", name ); fclose(fp); } void tfsFsDemo(void) { char *name; /* Initialize the TFS based file system... */ puts( "Mounting RTEMS TFS filesystem" ); if (rtems_initialize_tfs_filesystem( "/JOEL/" ) != 0) { puts("tfs init failed"); return; } /* Use uMon's environment to store the name of the file. * If the shell variable TFSFS_FILENAME is present, then * assume it contains the name of the file to open and * print to the console... * For TFS to run as a file system under RTEMS, all filenames * that are associated with tfs are preceded with "/TFS/". */ name = mon_getenv("TFSFS_FILENAME"); if (!name) puts("Shell variable TFSFS_FILENAME not available"); else catFile( name ); catFile( "/JOEL/csbboot" ); catFile( "/JOEL/boot" ); } rtems_task Init( rtems_task_argument ignored ) { puts( "\n\n*** MicroMonitor Demonstration ***" ); puts( "calling monConnect ..." ); rtems_umon_connect(); umon_demo(0, NULL); tfsFsDemo(); puts( "*** MicroMonitor Demonstration ***" ); exit( 0 ); } /* configuration information */ /* NOTICE: the clock driver is explicitly disabled */ #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_RTEMS_INIT_TASKS_TABLE #define CONFIGURE_MAXIMUM_TASKS 1 #define CONFIGURE_MAXIMUM_SEMAPHORES 5 #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4 #define CONFIGURE_MICROSECONDS_PER_TICK 5000 #define CONFIGURE_INIT_TASK_STACK_SIZE \ (CONFIGURE_MINIMUM_TASK_STACK_SIZE * 10) #define CONFIGURE_INIT #include /* end of file */