about device driver registration

Chan Kim ckim at etri.re.kr
Sun Jul 12 11:25:39 UTC 2015

Hello all,

In RTEMS, defining CONFIGURE_APPLICATION_NEEDS_XXX_DRIVERS in init.c places the driver address table in the "Device_driver" table(of type rtems_driver_address_table, it's in confdef.h). I found rtems_io_register_driver function places the driver address entry in the "_IO_Driver_address_table" which is also of type rtems_driver_address_table(see ioregisterdriver.c). 
What is the difference of Device_driver table and _IO_Driver_address_table? How differently are those tables used in RTEMS?

I'm having difficulty in mounting the SD card. Using rtems_bdpart_register_from_disk function, while trying to read the master boot record, the rtems_disk_fd_get_disk_device function can't get the rtems_disk_device from fd(file descriptor, fd=3 in my case). 
untimately in ioctl function,  the line 
rc = (*iop->pathinfo.handlers->ioctl_h)( iop, command, buffer );
functions fails.
But using rtems_ide_part_table_initialize(instead of rtems_bdpart_register_from_disk_function), it reads the MBR anyway but fails the rtems_fsmount later.
Can anybody tell me what could have gone wrong? Any help would be deeply appreciated.

Chan Kim / ETRI

More information about the users mailing list