EPICS Home

Experimental Physics and Industrial Control System


 
2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020 
<== Date ==> <== Thread ==>

Subject: Re: RTEMS5 with epics-base
From: "Heinz P. Junkes" <junkes@fhi-berlin.mpg.de>
To: Michael Davidsaver <mdavidsaver@gmail.com>
Cc: EPICS Core Talk <core-talk@aps.anl.gov>
Date: Tue, 6 Nov 2018 20:07:56 +0100
Hi Mike,

thank you for your mail.

On 11/6/18 7:00 PM, Michael Davidsaver wrote:
How did you get this toolchain?  I'm wondering if you have some "contamination"
from other/newer toolchains?

The usual way but with branch 4.10 instead of master.

git clone git://git.rtems.org/rtems.git
git clone git://git.rtems.org/rtems-tools.git
git clone git://git.rtems.org/rtems-source-builder.git

cd into rtems: git checkout origin/4.10

cd into rtems-tools: git checkout origin/4.10

cd into rtems-source-builder: git checkout origin/4.10

waf configure --prefix=/home/h1/RTEMS/rtems/4.10 build install

source-builder/sb-set-builder --log log.i386.4.10.log --prefix=/home/h1/RTEMS/rtems/4.10 4.10/rtems-i386

rtems-source-builder/source-builder/sb-bootstrap

rtems/configure --enable-maintainer-mode --prefix=/home/h1/RTEMS/rtems/4.10 --target=i386-rtems4.10 --enable-rtemsbsp="pc386" --enable-cxx --enable-networking --enable-tests=samples

In RTEMS/rtems/4.10/i386-rtems4.10/pc386/lib/include/rtems/score/thread.h

real_priority is defined in struct Thread_Priority_node

...

/**
 * @brief Encapsulates base and inherited priority.
 */
typedef struct Thread_Priority_node {
  Chain_Node                   Node;
  /** current priority = min(real_priority, min(Inherited_priorities)) */
  Priority_Control             current_priority;
  /** base priority irrespective of inheritance/ceiling */
  Priority_Control             real_priority;
  /** NULL if not waiting, or the mutex blocked upon
   * if waiting. If not NULL, then this Priority_node is on the mutex holder's
   * Priority_node.Inherited_priorities list. */
  struct CORE_mutex_Control   *waiting_to_hold;
  /** Priority Queue of thread Priority_nodes blocked by this one, thus
   * possibly contributing their priority to the current_priority. */
  Chain_Control                Inherited_priorities;
} Thread_Priority_node;
...

I will investigate further,

Heinz


If you want you can try to test using the pre-built toolchain I created for the travis-ci builder.
These are built for use in an Ubuntu Linux environment.

https://github.com/mdavidsaver/rsb/releases

In this toolchain the Thread_Control struct is

/home/travis/.rtems/i386-rtems4.10/pc386/lib/include/rtems/score/thread.h

and 'real_priority' and 'current_priority' are unconditional members.


On 11/6/18 9:44 AM, Heinz P. Junkes wrote:
Try to compile epics-base against rtems 4.10 for i368 target (pc368) and get

/home/h1/RTEMS/rtems/4.10/bin/i386-rtems4.10-gcc --pipe -B/home/h1/RTEMS/rtems/4.10/i386-rtems4.10/pc386/lib/ -specs bsp_specs -qrtems   -fasm   -mtune=i386 -DUNIX      -O2 -g -g   -Wall           -I. -I../O.Common -I. -I../../src/osi/compiler/gcc -I../../src/osi/compiler/default -I. -I../../src/osi/os/RTEMS -I../../src/osi/os/posix -I../../src/osi/os/default -I.. -I../../src/as -I../../src/bucketLib -I../../src/calc -I../../src/cvtFast -I../../src/cppStd -I../../src/cxxTemplates -I../../src/dbmf -I../../src/ellLib -I../../src/env -I../../src/error -I../../src/fdmgr -I../../src/flex -I../../src/freeList -I../../src/gpHash -I../../src/iocsh -I../../src/log -I../../src/macLib -I../../src/misc -I../../src/osi -I../../src/pool -I../../src/ring -I../../src/taskwd -I../../src/timer -I../../src/yacc -I../../src/yacc -I../../src/yajl -I/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/include/compiler/gcc -I/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/include/os/RTEMS
-I/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/include -I/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/include/compiler/gcc -I/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/include/os/RTEMS -I/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/include -c ../../src/osi/os/RTEMS/osdThread.c
../../src/osi/os/RTEMS/osdThread.c: In function 'showInternalTaskInfo':
../../src/osi/os/RTEMS/osdThread.c:643: error: 'Thread_Control' has no member named 'real_priority'
../../src/osi/os/RTEMS/osdThread.c:650: error: 'Thread_Control' has no member named 'current_priority'
../../src/osi/os/RTEMS/osdThread.c:650: error: 'Thread_Control' has no member named 'real_priority'
../../src/osi/os/RTEMS/osdThread.c:651: error: 'Thread_Control' has no member named 'current_priority'
../../src/osi/os/RTEMS/osdThread.c:653: error: 'Thread_Control' has no member named 'real_priority'
../../src/osi/os/RTEMS/osdThread.c:653: error: 'Thread_Control' has no member named 'current_priority'
/home/h1/WIP/EPICS_PORT/4.10/epics-base/epics-base/configure/RULES_BUILD:232: recipe for target 'osdThread.o' failed
make[4]: *** [osdThread.o] Error 1

Heinz



   11/3/18 12:12 PM, Heinz Junkes wrote:

Hello friends,

unfortunately, it's only now that I get back to taking care of rtems-5 for epics-base.

And unfortunately, I haven't really taken care of travis-ci yet. I found the last "travis-run” for rtems 4.10:
https://travis-ci.org/epics-base/epics-base/jobs/450069785.
I'm going to try to replay this on my computer first.

Do I see it right that I should then try to do exactly that with rtems-5. So on the qemu-system-x86 with the rtems i386 bsp?

The next step would then be on my hardware mvme6100? And maybe also on the qemu for mvme3100?
@Michael: Can you write me again where I can get the qemu mvme3100 from?
I'll try my luck and hope to make it to Melbourne.
Heinz

----------------------------------------------------------------------
Das FHI verarbeitet, speichert und loescht Daten im Rahmen seiner
Geschaeftstaetigkeit gemaess der Datenschutz-Grundverordnung (DSGVO)
[General Data Protection Regulation (GDPR)] der Europaeischen Union.



Replies:
Re: RTEMS5 with epics-base Michael Davidsaver
References:
RTEMS5 with epics-base Heinz Junkes
Re: RTEMS5 with epics-base Heinz P. Junkes
Re: RTEMS5 with epics-base Michael Davidsaver

Navigate by Date:
Prev: Re: RTEMS5 with epics-base Michael Davidsaver
Next: Re: RTEMS5 with epics-base Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020 
Navigate by Thread:
Prev: Re: RTEMS5 with epics-base Michael Davidsaver
Next: Re: RTEMS5 with epics-base Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020