EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  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  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: embedded linux target with uClibC and PREEMPT_RT needs caRepeater
From: <[email protected]>
To: <[email protected]>, <[email protected]>
Date: Wed, 23 May 2012 08:02:53 +0000

At Diamond we run EPICS on a number of embedded processors (both ARM and PowerPC) running our own busybox based build of Linux.  I’ve developed a makefile based framework for assembling a customised rootfs, I’ve published my work on this here: http://controls.diamond.ac.uk/downloads/other/rootfs .

 

For ARM we’ve been able to stay very close to the standard kernels at http://kernel.org (our two targets are XCEP and PXA270 Colibri), but for PowerPC (both FPGA embedded and MVME5500) we’re currently stuck with some very old and large patch sets on old kernels (2.6.20 for MVME, 2.6.26 for Xilinx FPGA embedded PPC core) and I am hoping to remedy this.  If anybody else has experience with these targets, please let me know!

 

Regarding the caRepeater problem for a single standalone IOC I can offer a different solution that was recommended to me ages ago by Andrew Johnson (Dec 2006 it seems), which is simply to start a thread running caRepeaterThread().  For some reason this function is not published in any EPICS header file, so something like the following code will serve:

 

 

extern void caRepeaterThread(void *);

 

int main(int argc, char **argv)

{

    ...

    epicsThreadCreate(

        “CAC-repeater”, epicsThreadPriorityLow,

        epicsThreadStackSize(epicsThreadStackMedium),

        caRepeaterThread, 0);

 

    ...

}

 

 

I create the thread pretty early during IOC startup, seems to work quite well.

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Ernest L. Williams Jr.
Sent: 23 May 2012 02:07
To: EPICS Techtalk
Subject: embedded linux target with uClibC and PREEMPT_RT needs caRepeater

 

Hi,

We are now starting to do a lot of run time testing with our new embedded linux target IOC:

We are calling it:  "linuxRT-x86"

Some Ingredients:
Linux Kernel = 3.2.13-rt22 #1 SMP PREEMPT RT Mon May 21 16:55:55 PDT 2012 i686 GNU/Linux
uClibc
busybox
PREEMPT_RT

=========================================
Thanks to Till Strauman for this work. :)
=========================================

Meanwhile, I would like to know of any others out there doing this sort of thing as well?
What are you using? 
What has been your experience?

And now a technical EPICS build related question:

I found that I need to have caRepeater available for my target but EPICS BASE does not build it.
How have others done this? 
We build our target as a CROSS, so caRepeater only gets built for HOST builds.

Now for vxWorks and RTEMS, they use  "repeater.cpp"  which gets linked in.

What I have done for our embedded linux target is the following, is this acceptable?
=====================================================
Modify,  <BASE>/src/ca/Makefile
And added:


ifeq ($(T_A),linuxRT-x86)
 PROD_DEFAULT += caRepeater catime acctst caConnTest casw caEventRate
endif
 
 
Then, I did a build like so,
make CROSS_COMPILER_TARGET_ARCHS=linuxRT-x86
 
 
Thanks in advance for your comments and help. 
 
 
Cheers,
Ernest
 

 


 

-- 

This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
 



References:
embedded linux target with uClibC and PREEMPT_RT needs caRepeater Ernest L. Williams Jr.

Navigate by Date:
Prev: embedded linux target with uClibC and PREEMPT_RT needs caRepeater Ernest L. Williams Jr.
Next: CSS BOY EDL --> OPI giles.knap
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: embedded linux target with uClibC and PREEMPT_RT needs caRepeater Ernest L. Williams Jr.
Next: Re: embedded linux target with uClibC and PREEMPT_RT needs caRepeater Michael Davidsaver
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·