Problem in Integration of Analog / Digital Drivce driver with RTEMS for MVME162-522A

Thomas Doerfler (nt) Thomas.Doerfler at imd-systems.de
Wed Mar 28 10:23:21 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

just my two cents: maybe you have to "bootstrap" to update the *.in files?

$> cd ...\rtems-4.10.2\
$> ./bootstrap

wkr,

Thomas.

Am 28.03.2012 10:58, schrieb AJAI KUMAR MEDHAVI:
> Hi,
> 
> 
> I have made Analog / Digital IO ( ADC, DAC, OPTO and Relay)
> Device drivers for MVME162-512 VME CPU Board using RTEMS 4.10.2 on
> Windows with MinGW-get-inst-20110802 and RTEMS4.10 tools
> 
> 
> Before integrating ADC / DAC Drivers, I have successfully
> configured, build and run all sample and test applications on my
> CPU board.
> 
> 
> Now I have added ADC/DAC Device Drivers for Four IO boards i.e ADC,
> DAC, RELAY and OPTO. I have integrated Device Driver files in
> following steps :
> 
> 
> 1. First created a new folder ADCDAC in
> 
> ..\rtems-4.10.2\c\src\lib\libbsp\m68k\mvme162
> 
> And added following Files
> 
> ADC.c DAC.c OPTO.c RELAY.c
> 
> in ..\rtems-4.10.2\c\src\lib\libbsp\m68k\mvme162\ADCDAC directory.
> 
> 
> 
> 2. Then modify makefile.am in   ..\rtems-4.10.2\c\src\lib\ libbsp\
> m68k\ mvme162
> 
> With
> 
> # ADCDAC libbsp_a_SOURCES += adcdac/adcdrv.c adcdac/dacdrv.c
> adcdac/optodrv.c \ adcdac/relaydrv.c
> 
> to include ADC/DAC C files in makefile.
> 
> 
> 3. Then added Header files adc.h, dac.h, opto.h and realy.h
> 
> In ..\rtems-4.10.2\c\src\lib\libbsp\m68k\mvme162\include
> 
> 
> And modify makefile.am in   ..\rtems-4.10.2\c\src\lib\ libbsp\
> m68k\ mvme162
> 
> With
> 
> include_bspdir = $(includedir)/bsp
> 
> dist_project_lib_DATA = bsp_specs include/adc.h include/dac.h
> include/opto.h include/relay.h
> 
> 
> The modified makefile.am in
> ..\rtems-4.10.2\c\src\lib\libbsp\m68k\mvme162 is :
> 
> 
> -----------------------------------------------------------------------------
>
> 
##
> ## $Id: Makefile.am,v 1.42 2008/09/30 10:32:49 ralf Exp $ ##
> 
> ACLOCAL_AMFLAGS = -I ../../../../aclocal
> 
> include $(top_srcdir)/../../../../automake/compile.am
> 
> include_bspdir = $(includedir)/bsp
> 
> dist_project_lib_DATA = bsp_specs
> 
> include_HEADERS = include/bsp.h include/adc.h include/dac.h
> include/opto.h include/relay.h include_HEADERS += include/tm27.h
> 
> nodist_include_HEADERS = include/bspopts.h 
> nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h 
> DISTCLEANFILES = include/bspopts.h noinst_PROGRAMS =
> 
> # wrapup is the one that actually builds and installs the library #
> from the individual .rel files built in other directories # XXX
> ignore tools since it doesn't build SUBDIRS = .
> 
> include_HEADERS += ../../shared/tod.h include_HEADERS +=
> include/coverhd.h include_HEADERS += include/page_table.h
> 
> nodist_include_HEADERS +=
> $(top_srcdir)/../shared/mvme/mvme16x_hw.h
> 
> noinst_LIBRARIES = libbspstart.a libbspstart_a_SOURCES =
> ../../m68k/shared/start.S project_lib_DATA = start.$(OBJEXT)
> 
> dist_project_lib_DATA += startup/linkcmds
> 
> noinst_LIBRARIES += libbsp.a libbsp_a_SOURCES =
> 
> # startup libbsp_a_SOURCES += startup/bspclean.c
> ../../shared/bsplibc.c \ ../../shared/bsppredriverhook.c
> ../../shared/bsppost.c \ startup/bspstart.c ../../shared/bootcard.c
> \ ../../shared/bsppretaskinghook.c startup/page_table.c \ 
> ../../shared/bspgetworkarea.c startup/page_table.c \ 
> ../../shared/sbrk.c ../../m68k/shared/setvec.c \ 
> ../../shared/gnatinstallhandler.c # clock libbsp_a_SOURCES +=
> clock/ckinit.c # console libbsp_a_SOURCES += console/console.c
> ../../shared/dummy_printk_support.c # timer libbsp_a_SOURCES +=
> timer/timer.c timer/timerisr.S # ADCDAC libbsp_a_SOURCES +=
> adcdac/adcdrv.c adcdac/dacdrv.c adcdac/optodrv.c adcdac/relaydrv.c 
> # tod libbsp_a_SOURCES += tod/tod.c
> 
> if HAS_NETWORKING network_CPPFLAGS =
> -D__INSIDE_RTEMS_BSD_TCPIP_STACK__ noinst_PROGRAMS += network.rel 
> network_rel_SOURCES = ../mvme167/network/network.c 
> network_rel_CPPFLAGS = $(AM_CPPFLAGS) $(network_CPPFLAGS) 
> network_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) endif
> 
> libbsp_a_LIBADD = \ ../../../libcpu/@RTEMS_CPU@/shared/cache.rel \ 
> ../../../libcpu/@RTEMS_CPU@/shared/misc.rel if HAS_NETWORKING 
> libbsp_a_LIBADD += network.rel endif if HAS_FPSP libbsp_a_LIBADD +=
> ../../../libcpu/@RTEMS_CPU@/@RTEMS_CPU_MODEL@/fpsp.rel endif
> 
> EXTRA_DIST = times
> 
> include $(srcdir)/preinstall.am include
> $(top_srcdir)/../../../../automake/local.am
> 
> ------------------------------------------------------------------------------
>
> 
> 
> 
> 4. I have included Header files in Drivers C Files (ADC.c, DAC.c
> etc)
> 
> With
> 
> #include <ADC.h>       	[ in adc.c   ] #include <DAC.h>  		[ in
> dac.c   ] #include <OPTO.h>		[ in opto.c  ] #include <RELAY.h> 		[
> in relay.c ]
> 
> 
> Also modified ..\RTEMS\rtems-4.10.2\cpukit\sapi\include\condefs.h
> 
> To include ADC /DAC Device Driver Header files and Driver Table
> entries just (like CONSOLE AND CLOCK DRIVER TABLE ENTRY points :
> 
> 
> 
> /* Default Device Driver Table.  Each driver needed by the test is 
> explicitly *  choosen by that test.  There is always a null driver
> entry. */
> 
> The relevant part of this condefs.h file is as given below :
> 
> 
> #define NULL_DRIVER_TABLE_ENTRY \ { NULL, NULL, NULL, NULL, NULL,
> NULL }
> 
> #ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #include
> <rtems/console.h> #endif . . .
> 
> 
> /******** ADDED BY MEDHAVI ***********************************/
> 
> #ifdef CONFIGURE_APPLICATION_NEEDS_ADC_DRIVER #include <adc.h> 
> #endif
> 
> #ifdef CONFIGURE_APPLICATION_NEEDS_DAC_DRIVER #include <dac.h> 
> #endif
> 
> #ifdef CONFIGURE_APPLICATION_NEEDS_OPTO_DRIVER #include <opto.h> 
> #endif
> 
> #ifdef CONFIGURE_APPLICATION_NEEDS_RELAY_DRIVER #include <relay.h> 
> #endif
> 
> /******** END OF ADDITION  MEDHAVI ***********************/
> 
> #ifdef CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER /* the ide driver
> needs the ATA driver */ #ifndef
> CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER #define
> CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER #endif #include
> <libchip/ide_ctrl.h> #endif
> 
> 
> And
> 
> 
> #ifdef CONFIGURE_INIT rtems_driver_address_table Device_drivers[] =
> { #ifdef CONFIGURE_BSP_PREREQUISITE_DRIVERS 
> CONFIGURE_BSP_PREREQUISITE_DRIVERS, #endif #ifdef
> CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS 
> CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER 
> CONSOLE_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER CLOCK_DRIVER_TABLE_ENTRY, 
> #endif #ifdef CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER 
> RTC_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER 
> WATCHDOG_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER 
> DEVNULL_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER 
> IDE_CONTROLLER_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER ATA_DRIVER_TABLE_ENTRY, 
> #endif #ifdef CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER 
> FRAME_BUFFER_DRIVER_TABLE_ENTRY, #endif /*----- BEGINING : ADDED BY
> MEDHAVI ----------*/ #ifdef CONFIGURE_APPLICATION_NEEDS_ADC_DRIVER 
> ADC_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_DAC_DRIVER DAC_DRIVER_TABLE_ENTRY, 
> #endif #ifdef CONFIGURE_APPLICATION_NEEDS_OPTO_DRIVER 
> OPTO_DRIVER_TABLE_ENTRY, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_RELAY_DRIVER RELAY_DRIVER_TABLE_ENTRY, 
> #endif /*----- END : ADDED BY MEDHAVI --------------*/ #ifdef
> CONFIGURE_APPLICATION_EXTRA_DRIVERS 
> CONFIGURE_APPLICATION_EXTRA_DRIVERS, #endif #ifdef
> CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER NULL_DRIVER_TABLE_ENTRY 
> #elif !defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER) && \ 
> !defined(CONFIGURE_APPLICATION_EXTRA_DRIVERS) 
> NULL_DRIVER_TABLE_ENTRY #endif }; #endif
> 
> 
> 5. Then I have defined following in samples\hello\init.c :
> 
> #define		CONFIGURE_APPLICATION_NEEDS_ADC_DRIVER #define
> CONFIGURE_APPLICATION_NEEDS_DAC_DRIVER #define
> CONFIGURE_APPLICATION_NEEDS_OPTO_DRIVER #define
> CONFIGURE_APPLICATION_NEEDS_RELAY_DRIVER
> 
> just to include ADC /DAC Header files and
> 
> 
> 6. Then after running configuration with following options :
> 
> 
> 
> When I run ?make ? w  all?,I  have observed following ERRORs in 
> ..\rtems-4.10.2\ Testsuites\samples\hello\init.c
> 
> I.  ../../../../../mvme162/lib/include/rtems/confdefs.h  Error :
> adc.h : No such file or directory ? II.
> ../../../../../mvme162/lib/include/rtems/confdefs.h  Error : dac.h 
> :No such file or directory
> 
> III. ../../../../../mvme162/lib/include/rtems/confdefs.h  Error :
> opto.h : No such file or directory
> 
> 
> IV. ../../../../../mvme162/lib/include/rtems/confdefs.h  Error :
> relay.h : :No such file or directory I have also found that
> makmefile.in and preinstall.am
> 
> ..\rtems-4.10.2\c\src\lib\libbsp\ m68k\mvme162
> 
> Have not been updated though I have modified makefile.am (in same 
> m68k]mvme162). My drivers source files like adcdrv.c and adc.h are
> not appearing in makefile.in
> 
> 
> Though I have included ADC / DAC Device Driver C and Header files
> and included these in relevant makefile.am just like CONSOLE and
> CLOCK Driver, I am not sure why header files like adc.h are not
> included in makefile.in
> 
> 
> 
> I have following queries regarding this problem :
> 
> 
> 1.why makmefile.in and preinstall.am are not updating (by
> generating automatically by automake) as per modifications done in
> makefile.am I believe that makefile.in and preinstall.am have to be
> automatically get modified once we build RTEMS with modified
> makefile.am
> 
> 
> 2. What to do to get modified makefile.in and preinstall.am
> 
> 3. Whether I have to modify some other makefiles / configuration
> files
> 
> 
> 
> Kindly provide your suggestions and solution to resolve the problem
> at the earliest.
> 
> 
> Further The Prototype Application for Testing ADC / DAC driver on 
> MVME162-522A is ready for Integration with RTEMS-4.10.2 and then
> testing ADC/DAC Device Driver.
> 
> 
> 
> 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


- -- 
- --------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler           Herbststrasse 8
D-82178 Puchheim          Germany
email:    Thomas.Doerfler at imd-systems.de
PGP public key available at:
     http://www.imd-systems.de/pgpkey_en.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9y5pgACgkQwHyg4bDtfjT4jwCghZwmzjotsrigRajO5Gc7ipTD
B54AoIDx4ahYOcJDOnd/vOvsrTJDWVEy
=2HvA
-----END PGP SIGNATURE-----



More information about the users mailing list