Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  Index 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020 
<== Date ==> <== Thread ==>

Subject: Re: CA server message buffers
From: Peregrine McGehee <mcgehee@cfht.hawaii.edu>
To: tech-talk@epics.aps.anl.gov
Date: Fri, 4 Aug 95 8:52:02 HST
Jeff,
	Redefining the message_buffer struct in rsrv/server.h seems to work
fine. Thanks. 

	Your observations clarified why the UDP messages were "bad" and also
why, as you suspected, that protocol buffers were aligned on 4 byte boundaries.

	Another point I need to bring up is on the Sparcs I am _not_
using gcc's -mforce-align gcc option which forces doubles to be 8-byte
aligned and to use double-word instructions to reference them.
This option had the effect of replacing one of the arguments (usually the
sixth one) in functions like taskSpawn and printf with what appeared to be
the stack pointer.

	I'm still working through building a simple application but so far
have only run into two problems. The second (minor) one was:

Problem: 
	iocInit crashes with Memory Address Not Aligned.
File:
	rsrv/rsrv_init.c
Cause:	
	In rsrv/rsrv_init.c the DELETE_TASK macro is called with the result
	of the taskNameToID() vxWorks function call. If the task name is not
	found, this returns a -1 (0xffffffff), which causes the error when
	passed to errnoOfTaskGet().
Fix:
	DELETE_TASK now checks for it's argument (TID) being ERROR (-1).
	

#define DELETE_TASK(TID)\
if(TID!=ERROR && errnoOfTaskGet(TID)!=ERROR)taskDelete(TID);


I'll send you a full report when I finish.

Aloha,
	Peregrine
	


References:
Re: CA server message buffers Jeff Hill

Navigate by Date:
Prev: UAE - the Universal Application Environment Nick Rees
Next: Re: ca question Jeff Hill
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020 
Navigate by Thread:
Prev: Re: CA server message buffers Jeff Hill
Next: UAE - the Universal Application Environment Nick Rees
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·