This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE : RedBoot crash after do_go()


The program works also well with GDB.
I don't understand your explanation about the cache flush code ! I think
also there's a problem with cache but I not familiar with it.

The stack is corrupt when 'sync' is executed, just after the 'mtmsr'
instruction with the bit EE set.

David


-----Message d'origine-----
De : Gary Thomas [mailto:gary@mlbassoc.com] 
Envoyé : mercredi 7 janvier 2004 18:38
À : David POUTY
Cc : eCos Discussion
Objet : Re: [ECOS] RedBoot crash after do_go()


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]