Errors in PSIM

Joel Sherrill Joel.Sherrill at
Mon May 6 02:39:45 UTC 2013

The linker script format is defined by binutils. RTEMS bsps need enough symbols to define the work area and starting stack.

Since the linker script has 16mb in it, that is all the RTEMS application can know about. Anything beyond that 16mb is free for you to use as you like.

Gedare Bloom <gedare at> wrote:

You can look for some tutorials on ld scripts. This is an area of rtems that lacks good documentation.

The only way to know what memory you can use outside of rtems is to inspect the linkcmds. In your case though you might be able to just point at the 16 MB base address, since psim bsp does not expect to use that much ram...

On May 5, 2013 9:01 PM, "Binkowski, Cassio" <cassioiks at<mailto:cassioiks at>> wrote:
Hi Gedare,

Can you please explain where/how in linkcmds I should be touching and how to let the bps know about the change?
I'm very new to this.

Also, how do I calculate how much space RTEMS is taking so I know the address to start creating the partitions?


On Sun, May 5, 2013 at 9:40 PM, Gedare Bloom <gedare at<mailto:gedare at>> wrote:

You probably need to modify the bsp linkcmds file, or just malloc a large chunk. The bsp may need to know about the extra memory in either case, so check out the linkcmds.

On May 5, 2013 2:46 PM, "Binkowski, Cassio" <cassioiks at<mailto:cassioiks at>> wrote:
Thanks Joel.

I have modified it to be with 32 MB of RAM.

/openprom/options/oea-memory-size 33554432

Right now my doubt is the following:

>From<> or other resources, how can I know at which address I can start creating the partitions and make sure it won't give me an 'unmapped address' error again?


On Thu, May 2, 2013 at 12:06 PM, Joel Sherrill <joel.sherrill at<mailto:joel.sherrill at>> wrote:
I don't know where this all ended yesterday.

On 5/1/2013 9:00 PM, Binkowski, Cassio wrote:
I know I'm missing out on something. It's probably because of the memory addresses and maybe a custom config is required on that file mentioned by Joel ( I have never dealt with this before and will need some assistance.

You could modify the device tree created by psim/psim-gdb to add
more RAM or a second bank of RAM after the first 16 MB that the
linkcmds knows about.  This is in<>:

/openprom/options/oea-memory-size 16777216

The bottom line is that you are reading the mpc5200 PowerPC manual for
addresses and that does not have any correlation to the memory map of
the "psim board" as defined by the device-tree.

0x10000 is 64k which is in use by the program or RTEMS.
0x100000 is 1MB and is also in use by the program or RTEMS.
0x1000000 is outside the memory map.


On Wed, May 1, 2013 at 10:35 PM, Binkowski, Cassio <cassioiks at<mailto:cassioiks at>> wrote:
That may be one solution.

@Joel: Thank you so much for the detailed explanation.
One thing that would be great is that if we could somehow condense all this information exchanged in the mailing list into the Wiki/Manuals/Doxygen.

For example, I am now getting another exception, I'm just pasting some of it, because it's huge:

Suspending faulting task (0x0A010003)
Exception handler called for exception 7 (0x7)
Too many stack frames (stack possibly corrupted), giving up...
Suspending faulting task (0x0A010004)

It's given at the creation of the 7th partition when function _API_extensions_Run_postswitch() is executed.

How can I start searching for it? I don't know what to look for inside inter.h.

Best regards

On Wed, May 1, 2013 at 10:18 PM, Gedare Bloom <gedare at<mailto:gedare at>> wrote:

You tell the partitions where to start, so just give the second partition the right address. You have to be sure the memory you use is available both in the hw as real memory and also not used for other purposes. Probably you can malloc all the memory you need at startup time and pass pointers into the allocated buffer to partition create.

On May 1, 2013 7:07 PM, "Binkowski, Cassio" <cassioiks at<mailto:cassioiks at>> wrote:
Hmmm. The 'Testing Task' does not have a while(1) loop and I'm not deleting it. Could that be it? <- Yup, that's it. Just tested. Can you please explain how did you arrive at this conclusion?

I'm referring to the MPC5200B board. You can see the manual in the following link:

Now, mentioning the partitions and memory addresses. I'm not quite sure if I'm incrementing addresses correctly. I do want to create a partition right next where the other one finishes.
So, if starting address is 0x10000, the next partition will start at 0x10000 + previousPartitionSize.
Does this make sense?


On Wed, May 1, 2013 at 7:49 PM, Joel Sherrill <Joel.Sherrill at<mailto:Joel.Sherrill at>> wrote:

It could be another task exiting. You mentioned loading code.

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<mailto:cassioiks at>> wrote:


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<mailto:Joel.Sherrill at>> wrote:

That address is invalid for psim. Where does the partition memory come from? Here I'd the memory keep for psim

"Binkowski, Cassio" <cassioiks at<mailto:cassioiks at>> 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<mailto:cassioiks at>> 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:

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<mailto:Joel.Sherrill at>> 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<mailto:cassioiks at>> wrote:

Hi everyone,

I was just testing my application using PSIM and it is returning the following lines, right after starting a Task:

rtems- (classic FPU)/psim) PANIC ERROR 5
events.c:404: assertion failed - events->time_from_event > 0

Has anybody experienced this before?


rtems-users mailing list
rtems-users at<mailto:rtems-users at>

Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at<mailto:joel.sherrill at>        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985<tel:%28256%29%20722-9985>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the users mailing list