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