Running RTEMS on a LEON2 from ROM
mike.looijmans at topic.nl
Tue Jul 25 12:36:38 UTC 2017
On 25-07-17 12:51, Mike Looijmans wrote:
> On 25-07-17 12:13, Jiri Gaisler wrote:
>> I haven't looked at this for a while, but I remember that the trap table
>> usually sits in the beginning of the .text segment. RTEMS overwrites the
>> trap entries at boot so if the trap table is in PROM, you will get a
>> memory exception trap. To run from PROM, you will need to allocate a new
>> trap table in RAM (4k aligned) and change the %tbr register to point to
>> it. This has to be done early before the trap table is initialized by
> Any hint on where this trap table allocation should happen in RTEMS code?
>> RTEMS. An elegant way of doing this would be to place the trap table in
>> a separate linker section, and then putting it to the desired place with
>> a custom linker file. The %tbr register should then be initialized to
>> the start of the trap table section.
> Simplest would be to put the trap table at the start of RAM (which will always
> have page alignment) and let the data segment follow on that.
> Simply directing the table into the data segment would work as well, I guess,
> the init code copies it on boot along with the rest of the initialized data then.
I did just that, the trap table now is at start of RAM, I left a small init
vector at address 0 in ROM to jump to the startup code.
After copying the .data segment into RAM, I set the %tbr register, enable
traps and continue. The table is indeed there at the first 4k of RAM now.
This executes okay, but no improvement yet. It does not even reach a
breakpoint at "bsp_pretasking_hook".
Still RTEMS silently locks up. I'm soft of bisecting now how far it goes,
since the backtrace is still blank ....
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans at topicproducts.com
Please consider the environment before printing this e-mail
More information about the users