[ECOS] RedBoot crash after do_go()

Gary Thomas gary@mlbassoc.com
Wed Jan 7 17:37:00 GMT 2004

On Wed, 2004-01-07 at 10:32, David POUTY wrote:
> Hi,
> I try to execute a simple application from RedBoot (MPC8xx plateform).
> When application is finished RedBoot display exit code, then crash
> (enter in GDB mode).
> It seems that the stack is corrupted BEFORE the application is executed.
> During function hal_thread_load_context(), the macro 'hal_cpu_int_merge'
> is called to merge MSR register value with the thread context previously
> initialized (HAL_THREAD_INT_CONTEXT). The thread MSR value contains
> MSR_EE (to external enable irqs).
> The stack is corrupted when MSR_EE bit is set to MSR in
> 'hal_cpu_int_merge' !!
> I use GDB with BDI probe. There's no interrupt pending (SIPEND=0).

What happens if you execute the program via GDB, instead of RedBoot?

One thing to try (no guarantees) would be to disable the cache flush
code that's in mbx.S (only when CYG_HAL_STARTUP_RAM is defined).  Look
at how it's done on a newer platform, like the adder.

Gary Thomas <gary@mlbassoc.com>
MLB Associates

Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

More information about the Ecos-discuss mailing list