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  2013  <20142015  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  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: asyn driver problem running Linux 3.8.13 with arm processor
From: "Jim Chen" <[email protected]>
To: "'Till Straumann'" <[email protected]>, <[email protected]>
Date: Tue, 11 Feb 2014 16:13:27 -0000
Thanks for everybody's help.

It finally turns out to be a bug in my interrupt mechanism down to the
device driver/API function level -- a wrong (and redundant) pointer
assignment code. Funny enough the same code receives no complain in other
Linux distro like Redhat, Debian etc but with 2.6.x kernel though.

This also means that EPICS (R3.4.12.3) and asyn driver (4-22) work no
problem in ARM based processor (BeagleBone Black at least) and Angstrom
Linux.

Thanks again,
Jim

-----Original Message-----
From: [email protected] [mailto:[email protected]]
On Behalf Of Till Straumann
Sent: 07 February 2014 18:23
To: [email protected]
Subject: Re: asyn driver problem running Linux 3.8.13 with arm processor

I would also suggest that you provide as much detail as you can (e.g.,
complete code) rather than snippets.


On 02/07/2014 09:13 AM, Andrew Johnson wrote:
> Hi Jim,
>
> On 02/07/2014 10:38 AM, Jim Chen wrote:
>> while(1) {
>>          /* Wait for event from interrupt routine */
>> printf("====before\n");
>>         epicsMessageQueueReceive(intMsgQId, data, sizeof(data));
>> printf("====queue responsed\n");
>> }
> What does the code at the other end of the message queue look like? Does
> it get called from interrupt context, or from task-level?
>
> The problem might be that you can't use C++ code inside an ARM ISR (I
> don't know whether that's true or not, but it's conceivable), and since
> the libCom/osi/os/default/osdMessageQueue.cpp implementation is written
> in C++ the problem is with the choice of using the epicsMessageQueue
> inthe first place. As I said I don't know whether that is a restriction
> but it's something you should check.
>
> - Andrew



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



References:
asyn driver problem running Linux 3.8.13 with arm processor Jim Chen
RE: asyn driver problem running Linux 3.8.13 with arm processor Mark Rivers
RE: asyn driver problem running Linux 3.8.13 with arm processor Jim Chen
RE: asyn driver problem running Linux 3.8.13 with arm processor Jim Chen
Re: asyn driver problem running Linux 3.8.13 with arm processor Andrew Johnson
Re: asyn driver problem running Linux 3.8.13 with arm processor Till Straumann

Navigate by Date:
Prev: Area Detector IOC: how to change MAXSIZE X and Y? Ivashkevych, Oksana
Next: RE: Area Detector IOC: how to change MAXSIZE X and Y? Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: asyn driver problem running Linux 3.8.13 with arm processor Till Straumann
Next: motorRecord on linux-arm Jens . Eden
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024