scanf , getchar, gets, read are not working in libtests\termios and my application
AJAI KUMAR MEDHAVI
akmedhavi at rrcat.gov.in
Thu Apr 19 03:10:23 UTC 2012
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
More information about the users
mailing list