Errors in PSIM

Joel Sherrill joel.sherrill at OARcorp.com
Thu May 2 00:45:52 UTC 2013


I was answering this thread while on an evening walk from my
phone. I seem to have deleted the last message in this thread
to answer to. :(

On 5/1/2013 5:49 PM, Joel Sherrill wrote:
> It could be another task exiting. You mentioned loading code.
You asked .. "how could I know?"

The smart answer is that I am an original author of RTEMS dating
back to 1989. I tend to know the code which leads me on a long
response since I remembered more behavior than I could find
documentation for. :(

The more proper answer is that this should be documented behavior.
But I am not finding it quickly in the users guide so we probably need
to discuss where to add more so it is obvious. I know it has been
discussed many times on the mailing list but that is not formal
documentation. So we have a task.. where would you have looked
for this information in the users guide?

Classic API tasks have always been defined to cause a fatal error if
they return from their function body. In contrast, POSIX threads are
implicitly deleted.  This is the most obvious example of the differences
in the guiding philosophies that lead to the standards the APIs are
based upon.

Even with this undocumented or hard to find, we always have the source
and that's what is great about open source software. The initial fatal error
output indicated the class of error and what is logically a sub-code. Each
fatal error in cpukit should be unique and in only one place in the code.
These are listed in cpukit/score/include/rtems/score/interr.h and if you
count down the enumeration and see what it was. You could grep and
that should put you in cpukit/score/src/threadhandler.c after the call
to invoke the user's task body.

Sebastian Question/Task. Didn't you add a method to convert the
internal RTEMS fatal error causes into strings? Should the PowerPC
handler invoked here use it? What's a good example?

Another question/task. There are no Doxygen comments for the
values of Internal_errors_Core_list. This needs to be fixed for Doxygen.
And we may want to consider how to include some information on
decoding the internal error occurred in the users guide in the fatal error
chapter.
> Psim is a specific simulated hardware environment and does not as configured match any board. If you got addresses from a piece of real hardware, the addresses will not match. What target board's manual are you reading?
>
> "Binkowski, Cassio" <cassioiks at gmail.com> wrote:
>
> Ok.
>
> 1) The Init task is already deleting itself after loading the other 
> tasks. Do I have to do something else?
>
> 2) The memory for partitions came from the board data sheet. I based 
> myself on the addresses mentioned there and followed upon. I was 
> creating the first one starting at 0x10000 and incrementing from that 
> according to each partition's size.
>
> Can you help me set these 2 things up? I'm not really sure how to deal 
> with that memory issue and the internal error as well.
>
>
> On Wed, May 1, 2013 at 6:18 PM, Joel Sherrill 
> <Joel.Sherrill at oarcorp.com <mailto:Joel.Sherrill at oarcorp.com>> wrote:
>
>     That address is invalid for psim. Where does the partition memory come from? Here I'd the memory keep for psim
>
>     http://git.rtems.org/rtems/tree/c/src/lib/libbsp/powerpc/psim/startup/linkcmds
>
>     "Binkowski, Cassio" <cassioiks at gmail.com  <mailto:cassioiks at gmail.com>> wrote:
>
>     I'm also getting the following error when I uncomment the function
>     that creates 10 partitions to be used by my application:
>
>     /core_find_mapping() - access to unmaped address, attach a default
>     map to handle this - addr=0x1000d2c nr_bytes=0x4
>     processor=0xa8e5000 cia=0x1028c/
>     /
>     /
>     Can you please help?
>
>
>     On Wed, May 1, 2013 at 5:44 PM, Binkowski, Cassio
>     <cassioiks at gmail.com <mailto:cassioiks at gmail.com>> wrote:
>
>         The file 'events.c' is inside /gdb-7.5.1/sim/ppc.
>
>         I am using psim-gdb testing my own application, it's not an
>         RTEMS example.
>
>         I managed to break right on it, and it stops at:
>         ../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:58
>
>         Signature is the following:
>         the_source=the_source at entry=INTERNAL_ERROR_CORE,
>         is_internal=is_internal at entry=true,
>             the_error=the_error at entry=5)
>
>         I have no clue of what it can be. Do you have any idea?
>
>
>         On Wed, May 1, 2013 at 5:37 PM, Joel Sherrill
>         <Joel.Sherrill at oarcorp.com <mailto:Joel.Sherrill at oarcorp.com>>
>         wrote:
>
>             Where is the file events.c?
>
>             Break at the fault handler printing that.
>
>             Does this happen with any rtems provided examples?
>
>             Are you using the psim or psim-gdb script to run it?
>
>             "Binkowski, Cassio" <cassioiks at gmail.com  <mailto:cassioiks at gmail.com>> wrote:
>
>             Hi everyone,
>
>             I was just testing my application using PSIM and it is
>             returning the following lines, right after starting a Task:
>
>             /rtems-4.10.99.0(PowerPC/Generic (classic FPU)/psim) PANIC
>             ERROR 5/
>             /events.c:404: assertion failed - events->time_from_event > 0/
>
>             Has anybody experienced this before?
>
>             Thanks.
>             Cassio
>
>
>
>


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20130501/819da8f8/attachment-0001.html>


More information about the users mailing list