scanf , getchar, gets, read are not working in libtests\termios and my application

Joel Sherrill joel.sherrill at OARcorp.com
Thu Apr 19 03:28:04 UTC 2012


Then something is wrong with the input side of the console device driver.  You have the source. :)

There are consultants on the list who can help but having the hardware is a big help itself.

--joel

AJAI KUMAR MEDHAVI <akmedhavi at rrcat.gov.in> wrote:

>Hi
>
>
>I have ported RTEMS-4.10.2 on M68k processor based MVME162 CPU Board using
>MinGW on Windows XP.
>
>I have developed Anaglog / Digtial IO Boards Drivers and Prototype
>application for testing ADC/DAC device drivers.  In this protypte
>application I have used printf, scanf and getchar.
>
>
>On running my application,  scanf getchar are not working. I have enabled
>following drivers in my application :
>
>
>#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
>#define CONFIGURE_FILESYSTEM_DEVFS
>#define CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
>#define CONFIGURE_EXTRA_TASK_STACKS         (3 * RTEMS_MINIMUM_STACK_SIZE)
>
>and included following
>
>#include <bsp.h>
>#include <rtems/bspIo.h>
>#include <string.h>
>#include <stdio.h>
>#include <stdlib.h>
>#include <errno.h>
>#include <assert.h>
>#include <stdarg.h>
>#include <ctype.h>
>#include <rtems.h>
>#include <rtems/error.h>
>#include <rtems/bspIo.h>
>#include <rtems/libio.h>
>
>
>#define CONFIGURE_INIT
>#include <rtems/confdefs.h>
>
>
>Then I tried to run following sample applications provided by RTEMS :
>
>1. Testsuites\libtests\termios
>2. Testsuites\smaples\fileio
>
>
>I found the same problem :  scanf, fgets not working while printf is working.
>
>
>Then I made a following new test application and tried to test it  :
>____________________________________________________________________
>#include <bsp.h> /* for device driver prototypes */
>
>#include <rtems/bspIo.h>
>#include <string.h>
>#include <stdio.h>
>#include <stdlib.h>
>#include <errno.h>
>#include <assert.h>
>#include <stdarg.h>
>#include <ctype.h>
>#include <rtems.h>
>#include <rtems/error.h>
>#include <rtems/bspIo.h>
>#include <rtems/libio.h>
>
>#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
>#define CONFIGURE_FILESYSTEM_DEVFS
>#define CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
>
>#define CONFIGURE_EXTRA_TASK_STACKS         (3 * RTEMS_MINIMUM_STACK_SIZE)
>#define CONFIGURE_MAXIMUM_TASKS                    1
>#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
>
>#define CONFIGURE_INIT
>#include <rtems/confdefs.h>
>
>rtems_task Init(  rtems_task_argument ignored )
>{
>  int                        ch, ch1, chno;
>  char                         buf[5], val[3];
>  int                         nbChar;
>  printf( "WELCOME TO ACCELERATOR CONTROLS .... RTEMS KERNEL ON
>MVME162-522A \n" );
>  memset(buf, 0, sizeof(buf));
>  printf("enter a string\n");
>  nbChar = read(0, buf, sizeof(buf));
>  printf("string read = %s\n", buf);
>
>
>  printf("Press any key to continue 111");  fflush(stdout);
>  ch=getchark();
>  while(!isalpha(ch))
>    ch=getchark();
>  printf("ch : %d",ch);         fflush(stdout);
>
>   printf("\nEnter Channel Number [ 1 TO 32 ] :");         fflush(stdout);
>  scanf("%s",val);
>  chno=(int)strtol((const char *)val,(char**)NULL,10);
>  printf("\nWrite Relay chan no :%d",chno);  fflush(stdout);
>
>  printf("Press any key to continue 222"); fflush(stdout);
>  ch1=getchar();
>  printf("ch : %d",ch1);
>
>
>  printf("Please enter your choice(1,2,3,4 or 5) -> "); fflush(stdout);
>  scanf("%d",&ch1);
>  printf("choice : %d",ch1);                fflush(stdout);
>
>  exit( 0 );
>}
>
>---------------------------------------------------------------------------
>
>TEST  RESULT  :
>none of  scanf,  getchar, getchark  and read working and application hangs.
>
>
>May someone execute the above program with clock enabled to check
>if it also fail on their plateform?
>
>
>
>I am not able to figure out why scanf, gethar  etc are not working. Here I
> have several queries and doubts :
>
>1. Is there any problem /bug with Keyboard driver or console driver
>
>2. Is  “scanf / getchar /gets / read”  etc has restricted inclusions
>   controlled by some #define or makefile or configure file.
>
>3. Any chance of problem with Initial task stack size.
>
>4. I have USB based keyboard, not PS2 keyboard. However I have tested it
>with PS2 keyboard also with same result.
>
>
>
>
>Any tips / suggestions
>
>
>Can someone help me out?
>
>
>One more thing, how to enable  “prinf/puts”  for debugging in any part of
>code/device driver, before starting of Init task.
>
>
>
>Best Regards
>
>
>
>
>AJAI KUMAR MEDHAVI
>SCIENTIFIC OFFICER
>RAJA RAMMANNA CENTRE FOR ADVANCED TECHNOLGY
>DEPARTMENT OF ATOMIC ENERGY, GOV. OF INDIA,
>PO : CAT, INDORE-452013, INDIA
>PH. 91-731-2488052
>Email : akmedhavi at rrcat.gov.in , akmedhavi at rediffmail.com
>
>
>
>
>
>
>
>_______________________________________________
>rtems-users mailing list
>rtems-users at rtems.org
>http://www.rtems.org/mailman/listinfo/rtems-users




More information about the users mailing list