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: Program hangs after cyg_thread_create


On Thursday 18 November 2004 17:30, Wolfram Kattanek wrote:
> On Thu, 18 Nov 2004 17:05:06 +0200, Wayne Gemmell <wayneg@ananzi.co.za> 
wrote:
> > On Thursday 18 November 2004 16:58, Wayne Gemmell wrote:
> >> Hi all
> >>
> >> My program that used to work hangs after calling cyg_thread_create. The
> >> consol outputs the following
> >>
> >> Spurious Interrupt!!! - vector: 37, data: 0
> >> I am working on  F35-XXL-SI-G8-1 from falcom.
> >>
> >> Has anyone got any ideas?
> >>
> >> Regards
> >> Wayne Gemmell
> >
> > Sorry, my brains fried... Heres the offending code...
> >
> >   cyg_thread_create(4,gps_proc, (cyg_addrword_t) 0,"GPS Thread",
> >   (void *) stack[0],4096, &gps_thread, &thread_s[0]);
>
> What means "My program that used to work"? Have you changed anything
> in your program or eCos configuration since the last time when your
> program used to work?
Hi, I've changed nothing in my program that I've run hundred of times in 
trying to find my way around C. I have however rebuilt the environment the 
same way as before. 

I have now tried the image *.S3 in the unit and it works... How is it that it 
doesn't word in the gdb but works in the unit? This is going to make 
development a pain. 

>
> "Spurious Interrupt!!! - vector: 37, data: 0" means that an interrupt
> was generated but no interrupt handler is available (i.e. no handler
> was installed). Vector 37 is on a V850SA1 controller assigned to the
> watch timer interrupt. But I suspect that eCos uses or activates this
> timer. On a V850SB1 vector 37 is assigned to the serial1 interface.
> Did you change the processor variant from SA1 to SB1 by mistake?
>
> Which function contains your cyg_thread_create(...)? Normally these
> should go in cyg_user_start(). During cyg_user_start() all interrupts
> are globally disabled. When you get "Spurious Interrupt!!! ..." inside
> cyg_user_start() then something really weird is happening. Maybe you
> should provide a bigger section of your code.
Yes it is located in cyg_user_start().

Thanks
Wayne

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


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