EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: and Speaking of sysAtReboot....
From: "Bjorklund, Eric A" <[email protected]>
To: EPICS tech-talk <[email protected]>
Date: Mon, 22 Apr 2013 21:15:11 +0000
I just discovered today that the vxWorks osd class "atRebootRegister" is not being loaded into my munch files (EPICS 3.14.12.3, vxWorks 6.8, gnu toolchain 4.1.2).  The class is clearly present in libCom.a, but it seems the newer gnu loaders have become too clever for the "atRebootExtern" trick.  Removing the "static" declaration from the "pext" structure in osdThread.c (and giving it a less vulnerable name) is one way to fix the problem.

This is a pretty subtle bug, since everything will work fine until you reboot (and even then it may not be obvious that things aren't being run down), so Y'all might want to check.  A grep for "atRebootExtern" on your munch files should do the trick.

-Eric Bj.



On Apr 22, 2013, at 10:16 AM, Andrew Johnson wrote:

> Hi 周永年,
> 
> On 2013-04-22 周永年 wrote:
>> When we started to executing the startup script st.cmd at :
>> 
>> ld<systemO/system.munch
>> 
>> sysAtReboot not found. epicsExit will not be called by reboot.
>> 
>> According to http://www.aps.anl.gov/epics/tech-talk/2005/msg00004.php , I
>> added the two routines in bootConfig.c.
> 
> bootConfig.c is only used when building a bootrom and is not included in the 
> VxWorks OS image so it won't work properly if you put it there.  The above 
> message was not clear where to put these changes, my apologies about that.
> 
> It is easiest to put everything in the vxWorks/target/src/config/usrNetwork.c 
> file.  The two functions and the Hook variable definition would go after all 
> the variable declarations (make sure they are outside of any ifdef INCLUDE_* 
> guards), and then the call to rebootHookAdd belongs inside the usrNetInit() 
> routine, just before the call to hostTblInit().
> 
> Don't forget to remove the changes from your bootConfig.c file again.  Then 
> build a vxWorks boot image using "make vxWorks" or "make vxWorks.st" as you 
> normally do and boot that OS image; you do not have to reprogram the vxWorks 
> bootrom on your CPU.
> 
> Hope this helps,
> 
> - Andrew
> -- 
> It is difficult to get a man to understand something, when his salary
> depends upon his not understanding it. -- Upton Sinclair
> 



Replies:
Re: and Speaking of sysAtReboot.... Andrew Johnson
References:
Andrew 周永年
Re: Andrew Andrew Johnson

Navigate by Date:
Prev: Re: Crash when using access security Till Straumann
Next: RE: Crash when using access security Hill, Jeff
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Andrew Andrew Johnson
Next: Re: and Speaking of sysAtReboot.... Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024