On Sat, Aug 8, 2020 at 9:46 PM Heinz Junkes <jun...@fhi-berlin.mpg.de> wrote:
> Hallo Mritunjay, > everything looks pretty good. I'm commenting on the text. I also send this > mail > to two EPICS experts (Andrew Johnson and Michael Davidsaver). Maybe they > also have some ideas. > Thank you so much Heinz! It will be really a great help! > > > > > > Current Status: > > > > 1) Successfully built EPICS7 with RTEMS5 by hand for pc-386 > > 2) Worked for RSB recipe. > > In its due process, I Wrote: > > i) rsb/rtems/config/epics/epics-7-1.cfg > > ii)rsb/rtems/config/epics/epics-base.bset > > iii)rsb/source-builder/config/epics-7-1.cfg > > 3) Added Patch for RTEMS-pc-386 support which made the above recipe work > successfully. > > 4) Therefore, Successully built EPICS7 with RTEMS5 by using RSB recipe > as well for pc-386 as of now. > > 5) Sent 4 Patches for review of the same. > > > > What problems are in the next steps? > > > > 1) How to make it work across different architectures? > > 2) Exisiting EPICS works on the old legacy network stack. > > 3) I am not using EPICS upstream branch. It is being built > > by Heinz's epics playground. > > 4) Doubts in how to start with testing. > > > > My Resarch work for the Problem no: 1 > > > > I have gone through the EPICS developer guide from here > > exhaustively in the past couple of day and here are few interesting > things > > that I found which can help: > > > > 1) "The main ingredients of the build system are: > > • A set of configuration files and tools provided in the EPICS > base/configure directory > > • A corresponding set of configuration files in the <top>/configure > directory of a non-base <top> directory > > structure to be built. The makeBaseApp.pl and makeBaseExt.pl scripts > create these configuration files. Many of > > these files just include a file of the same name from the base/configure > directory. > > • Makefiles in each directory of the <top> directory structure to be > built > > • User created configuration files in build created > $(INSTALL_LOCATION)/cfg directories. > > " > > > > Remarks: Now since it is also mentioned in the guide that > "makeBaseApp.pl > > creates directories and then copies template files into the newly > created directories > > while expanding macros in the template files. EPICS base provides two > sets of template files: simple and example." > > Can we think of using makeBaseApp.pl to that end? Making the user allow > > to change the configurations from the terminal? > > I don't think that makeBaseApp.pl will help you. This is intended to build > an example IOC. It takes the settings from the above mentioned > configuration files. > > You "only" need to specify the location of the RTEMS installation in > configure/os/CONFIG_SITE.Common.RTEMS. > RTEMS_VERSION = > RTEMS_BASE = > > Then you have to define the target in configure/CONFIG_SITE: > ... > # Which target architectures to cross-compile for. > # Definitions in configure/os/CONFIG_SITE.<host>.Common > # may override this setting. > CROSS_COMPILER_TARGET_ARCHS= > … > e.g. “CROSS_COMPILER_TARGET_ARCHS=RTEMS-xilinx_zynq_a9_qemu" > > And for each target there must be a file in configure/os: > e.g. CONFIG_Common.RTEMS-xilinx_zynq_a9_qemu > If it is not provided by EPICS, the RSB should install it there (adapted > to the target to be used by epics make). > Yes, Heinz. I followed the above steps and created a patch which I applied in the configuration files of RSB recipe. The problem with it is that it's made only for pc-386 and I have to hardcode there about location of the RTEMS installation in configure/os/CONFIG_SITE.Common.RTEMS. My doubt is how to modify the patch that can it offer user-specific location of the RTEMS installation and bsp? > > > > > 2) "The startup directory in EPICS base contains a perl script, > EpicsHostArch.pl, which can be used to define > > EPICS_HOST_ARCH. This script can be invoked with a command line > parameter defining the alternate compiler (e.g. > > if invoking EpicsHostArch.pl yields solaris-sparc, then invoking > EpicsHostArch.pl gnu will yield > > solaris-sparc-gnu). > > The startup directory also contains scripts to help users set the path > and other environment variables” > This has nothing to do with 2) > I am sorry for the misunderstanding. All the 4 points mentioned here are my observations only for the Problem No.1 `1) How to make it work across different architectures?` > > There's no need to adjust anything here. The EPICS make recognizes the > architecture on which it is started. > > > Remarks: As EPICS_HOST_ARCH, can we do something similar for > CROSS_COMPILER_TARGET_ARCHS? > > > > 3) ") The following is a summary of targets that can be specified for > gnumake: > > • <action> > > • <arch> > > • <action>.<arch> > > • <dir> > > • <dir>.<action> > > • <dir>.<arch> > > • <dir>.<action>.<arch> > > where: > > <arch> is an architecture such as solaris-sparc, vxWorks-68040, > win32-x86, etc. > > <action> is help, clean, realclean, distclean, inc, install, build, > rebuild, buildInstall, realuninstall, or uninstall" > > > > Remarks: Now similar to the above stated, can we work for Cross Compiler > target Architecture? > > > > But this does not refer to 3) ? No no, this remark is also for the problem 1 only as told above. Slight misunderstanding here :) > > 3) You have to take "my" repo at the moment, because the adaptations to > RTEMS5 are not yet included in the official epics-base. This is a > hen-and-egg problem because RTEMS is only now in the release phase, so my > changes have not been implemented yet. > Ok, I hope Dr. Gedare and Chris can help you with that. > > 2) I'm just about to figure out in the Epics Makefiles whether the target > was built with the legacy-stack or libbsd-stack. It's working already. > Now I also have to adjust the rtems_init.c accordingly. Here I have to > clean up a little bit. But I hope to have this finished by the middle of > the week. > Thank you so much for the update! So I would like to ask my other mentors - what can I do for the time being? What should be the next steps for this week? And yes how to begin the testing part? I have tried to find some resources but I think it will be better if you can help somewhere to look at. Thanks Mritunjay Sharma > > > These were the little doubts that originated from the research work I > did. > > I will like the opinion of mentors that what can be the optimal way now > to approach the > > project after this? What can be some resources for better research work > of the > > above problems? > > > > Also, for the reference: > > Link to the changes in commits of rsb can be found here: > https://github.com/RTEMS/rtems-source-builder/compare/master...mritunjaysharma394:epics-support > > > > The patch for epics can be found here: > https://github.com/mritunjaysharma394/epics-mritunjay/tree/master/patches > > > > > > Thanks > > Mritunjay Sharma > > > > > > > > > Heinz
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel