microwindows 0.90-rtems 4.7-pc386 - exececuting demo proble - SOLVED

luca bertozzo lbertozzo at hotmail.com
Tue Feb 8 19:43:20 UTC 2005


It had just been enough to define more 
CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS.

For the sake of anyone concerned, I'm debugging with ddd + i386-rtems4.7-gdb 
targeting a bochs box - compiled with --enable-gdb-stubs. Executable is 
called by grub in a floppy image.

>From: "Joel Sherrill <joel at OARcorp.com>" <joel.sherrill at OARcorp.com>
>Reply-To: joel.sherrill at OARcorp.com
>To: Mark Mussetter <mark at link-comm.com>
>CC: rtems-users at rtems.com
>Subject: Re: [rtems-users] microwindows 0.90-rtems 4.7-pc386 -  executing 
>demo problems
>Date: Mon, 07 Feb 2005 11:27:01 -0600
>
>Mark Mussetter wrote:
>>We got that error when we were getting started as well.  Turned out that 
>>we needed to actually create and install a framebuffer driver (/dev/fb0).  
>>Using Rosimildo da Silva's patch for rtems as a starting point, this is 
>>what we had to do:
>>
>>1) In rtemscfg.h, changed the CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS  
>>define to allow more devices.
>>2) Added MY_FRAMEBUFFER_DRIVER_TABLE_ENTRY to the Device_drivers table
>>3) Defined MY_FRAMEBUFFER_DRIVER_TABLE_ENTRY in framebuffer_driver.h
>>4) Wrote functions FB_Initialize, FB_Open, FB_Close, and FB_Control.
>>
>>Everything else is pretty hardware specific but this should get you 
>>started.
>
>Can you post your build and configure options for using MicroWindows
>to the Wiki?
>
>FWIW it would be nice if we could get a /dev/fb0 implementation for
>the pc386 BSP which is appropriately licensed.
>
>--joel
>
>>Hope this helps,
>>
>>Mark
>>
>>
>>==================================
>>
>>
>>/* In rtemscfg.h (Values that override settings in confdefs.h) */
>>
>>...
>>
>>#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS  10 /* overriding 
>>confdefs value of 3, so can install our devices including /dev/fb0 */
>>
>>...
>>
>>/* List of device drivers loaded by RTEMS at boot time */
>>rtems_driver_address_table Device_drivers[] =
>>{
>>   CONSOLE_DRIVER_TABLE_ENTRY,
>>   CLOCK_DRIVER_TABLE_ENTRY,
>>
>>/* this can be a bit tricky if you are using a serial mouse,
>>    make sure that you do not install and serial driver that
>>    uses the same port !!!!
>>*/
>>#if 0
>>   TTY2_DRIVER_TABLE_ENTRY,
>>
>>     #if PS2_MOUSE
>>       PAUX_DRIVER_TABLE_ENTRY,
>>     #else
>>       /*
>>        * Make sure that you have selected the COM port and the
>>        * mouse type in ( 
>>c/src/lib/libbsp/i386/pc386/console/serial_mouse.h ).
>>       */
>>       SERIAL_MOUSE_DRIVER_TABLE_ENTRY,
>>     #endif
>>   /* Standard VGA driver */
>>   FBVGA_DRIVER_TABLE_ENTRY,
>>#else
>>   {NULL,NULL,NULL,NULL,NULL,NULL},
>>   {NULL,NULL,NULL,NULL,NULL,NULL},
>>   {NULL,NULL,NULL,NULL,NULL,NULL},
>>#endif
>>   {NULL,NULL,NULL,NULL,NULL,NULL},
>>   MY_FRAMEBUFFER_DRIVER_TABLE_ENTRY,
>>   MY_ADS_DRIVER_TABLE_ENTRY,
>>   PTY_DRIVER_TABLE_ENTRY
>>};
>>
>>#include <confdefs.h>
>>
>>==================================
>>
>>/*In framebuffer.h */
>>
>>rtems_device_driver FB_Open( rtems_device_major_number major,
>>                                  rtems_device_minor_number minor,
>>                                  void *args );
>>
>>
>>rtems_device_driver FB_Close( rtems_device_major_number major,
>>                          rtems_device_minor_number minor,
>>                          void *args );
>>
>>
>>rtems_device_driver FB_Control( rtems_device_major_number major,
>>                           rtems_device_minor_number minor,
>>                           void *args );
>>
>>
>>rtems_device_driver FB_Initialize( rtems_device_major_number major,
>>                                  rtems_device_minor_number minor,
>>                                  void *args );
>>
>>
>>//When using the following driver setup, we don't need a read or write 
>>function since the subdriver "fblinx.c" handles the pixels directly
>>#define MY_FRAMEBUFFER_DRIVER_TABLE_ENTRY \
>>{ FB_Initialize, FB_Open, FB_Close, NULL, NULL, FB_Control }
>>
>>==================================
>>
>>
>>At 08:20 AM 2/5/2005, you wrote:
>>
>>>Hello all,
>>>
>>>I've compiled microwindows demo for pc386 bsp.
>>>
>>>Trying to run wdemo on real pc and bochs too, I found problem in getting 
>>>access to /dev/fb0.
>>>
>>>In microwindows/src/scr_rtems.c :
>>>
>>>....
>>>static PSD
>>>fb_open(PSD psd)
>>>{
>>>         char *  env;
>>>         int     type, visual;
>>>         int     tty;
>>>         PSUBDRIVER subdriver;
>>>         struct fb_screeninfo fb_info;
>>>
>>>         assert(status < 2);
>>>
>>>         /* locate and open framebuffer, get info*/
>>>         if(!(env = getenv("FRAMEBUFFER")))
>>>                 env = "/dev/fb0";
>>>         fb = open( env, O_RDWR);
>>>         if(fb < 0) {
>>>                 EPRINTF("Error opening %s: %m\n", env);
>>>      return NULL;
>>>   }
>>>
>>>Call to open() always returns -1.
>>>
>>>Anyone may help?
>>>
>>>Thanks.
>>>
>>>Luca
>>
>>Mark Mussetter
>>Link Communications, Inc.
>>1035 Cerise Rd
>>Billings, MT 59101-7378
>>phone: (406) 245-5002 ext 105
>>Fax:    (406) 245-4889
>>WWW: http://www.link-comm.com
>>MailTo:mark at link-comm.com
>>
>>
>
>
>--
>Joel Sherrill, Ph.D.             Director of Research & Development
>joel at OARcorp.com                 On-Line Applications Research
>Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>    Support Available             (256) 722-9985
>





More information about the users mailing list