EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: linux-xscale port, SYSFS device support
From: Peter Milne <[email protected]>
To: [email protected]
Date: Tue, 08 Nov 2005 08:57:41 +0000
Hi All

I've recently ported BASE 3.14.7 to run on linux-xscale (so that our intelligent digitizers now have IOC functionality on board).
The patch to build the IOC is available here: http://www.d-tacq.com/epics.shtml


The port was very straightforward, thanks to the excellent EPICS build system. If anyone is planning to repeat this exercise, the only issue with xscale (and probably any little-endian ARM processor) on Linux is that the floating point library has another take on little-endianness compared to the norm - easily corrected as shown in the patch.

A second point that may be of interest to list members is Device Support for Sysfs:

It's increasingly common in modern Linux systems to use device files on Sysfs to enable simple user space access to kernel parameters. Or in our case, to nail up a Linux VFS with a file per channel. I couldn't find suitable Device Support for this functionality, so I wrote a simple but generic "dsSysfs" device support interface, using "ai" records and encoding the location and characteristics of the files in the INP field.

So, for example, it's easy to create records for

AI monitoring:
field(INP, "@/dev/mean/01 rb4") # reads the rolling mean for channel 01 as a 4 byte integer
...
field(INP, "@/dev/mean/96 rb4") # reads the rolling mean for channel 96 as a 4 byte integer


Heartbeat (generic to any Linux system) :
field(INP, "@/proc/uptime")            # read the ascii data from this file

or even

System health monitor:
field(INP, "@#!sysmon -T 1") # read the [ascii] result of spawned task sysmon (temperature monitor).


The source code and doc is freely available at http://www.d-tacq.com/epics.shtml

If there already is the means to do this in EPICS, do let me know, it will be useful to compare features.

Thanks

Peter.

--
Peter Milne			[email protected]
D-TACQ Solutions Ltd		www.d-tacq.com


Replies:
RE: linux-xscale port, SYSFS device support Jeff Hill

Navigate by Date:
Prev: Driver for Sorenson PS - DLM Series Martin Pieck
Next: Re: Driver for Sorenson PS - DLM Series Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Driver for Sorenson PS - DLM Series Eric Norum
Next: RE: linux-xscale port, SYSFS device support Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·