2002 2003 2004 2005 2006 2007 <2008> 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 2002 2003 2004 2005 2006 2007 <2008> 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Unresolved symbol: rtemsTicksPerSecond_double |
From: | Eric Norum <[email protected]> |
To: | Till Straumann <[email protected]> |
Cc: | Steve Shoaf <[email protected]>, Arturo Alarcon <[email protected]>, EPICS core-talk <[email protected]>, "Ernest L. Williams Jr." <[email protected]>, [email protected] |
Date: | Fri, 2 May 2008 10:31:57 -0500 |
On May 2, 2008, at 10:22 AM, Till Straumann wrote:
It just seems that rtems_netconfig.c mixes functionality of initializing RTEMS (networking, console, ...) and initializing EPICS (some generic things, someos/RTEMS specific).
How so?As far as I can tell, rtems_netconfig.c contains nothing but the network configuration structures.
At least that's all that I intended it to contain.
IMO it would be useful to break the two apart so that users implementing their own RTEMS initialization can still use the pieces that deal with initializingEPICS (w/o having to copy/paste from rtems_netconfig.c)
For network configuration, the hooks mentioned in the release notes should be all that's needed to implement custom tweaks (no copying of rtems_netconfig.c required). For example, our BPM embedded IOCs set all their network configuration based on the setting of front-panel switches.
There are no corresponding hooks for RTEMS configuration at the moment, though.
- Till- Andrew Eric Norum wrote:There are some mechanisms already available.1) EPICS RTEMS support breaks the configuration/initialization into several source files. If, for example, your application requires some specialized network configuration, simply copy rtems_netconfig.c to the application directory, make the changes, and add rtems_netconfig.c to the application Makefile. To do this on a site-wide basis, put your site-specific version of rtems_netconfig.o into a support module where it will be linked before -lrtemsCom is encountered. There's a separate rtems_config.c file, too.2) As noted in the EPICS R3.14.10 release notes, there are some hooks to make it easier to set up your own specific configuration:Added hooks for application routines to supply special network configuration parameters. The RTEMS startup code calls epicsRtemsInitPreSetBootConfigFromNVRAM just before reading values from NVRAM and epicsRtemsInitPostSetBootConfigFromNVRAM just afterwards. See epicsRtemsInitHooks.h for prototypes and global variables.On May 1, 2008, at 4:10 PM, Andrew Johnson wrote:Till Straumann wrote:seems that 3.14.10 does a more initialization in the 'Init' function which we don't use (e.g., because it hardcodes things like the theamount of mbuf (networking buffers) space [which ends up being the same] and whether BOOTP should be used.IMHO we should come up with a better way of initializing the system that is more flexible (here we use a bootloader plus a small library for connecting the bootloader, user interactive input, non- volatile memoryand the bootee). For the time being, IMHO 'Init' should be broken up into pieces that a) deal with initializing RTEMS (networking, filesystem, console)b) deal with initializing EPICS (setting some environment variables,rtemsTicksPerSecond_double etc.)The user should be able to override all of (a) but use (b) to initializeEPICS on an RTEMS system of her preference.That seems entirely reasonable, can you work with Eric to come up with a proposal and patch that works for both camps? R3.14.10 is not set in stone yet, and it would be good to get this cleared up before the release.- Andrew
-- Eric Norum <[email protected]> Advanced Photon Source Argonne National Laboratory (630) 252-4793