This Question is Possibly Answered

1 "correct" answer available (4 pts) 2 "helpful" answers available (2 pts)
5 Replies Last post: Nov 4, 2009 10:31 AM by DivyaS  
MarcS. Contributor 13 posts since
Oct 5, 2009
Currently Being Moderated

Nov 2, 2009 10:45 AM

Core Hang

Hi,

 

when I want to halt my programm following error occours:

"Core Hang Detected on Device 0"

For a more detailed description please look at the screenshot below.

Core Hang.jpg

I'm not sure at the moment which information are necessary for you to solve the problem. Please let me know.

 

Best regards,

 

Marc

DivyaS Analog Employee   94 posts since
Feb 3, 2009
Currently Being Moderated
1. Nov 2, 2009 4:58 PM in response to: MarcS.
Re: Core Hang

Hi Marc,

 

Following are some of the common scenarios where a core hang can occur.

 

i. Core hang could occur when the code tries to read the inactive buffer(a receive/tranmit buffer) of a sport configured as transmitter/receivef.

 

ii. If the BHD(buffer hang disable) of certain peripherals such as SPORT, IDP,TWI is cleared core hang occurs when the code tries to read from an empty buffer or write to a full buffer. you could avoid core hang by setting the BHD bit of the peripheral is set.

 

 

Thanks,

Divya

DivyaS Analog Employee   94 posts since
Feb 3, 2009
Currently Being Moderated
3. Nov 3, 2009 9:55 AM in response to: MarcS.
Re: Core Hang

Hi Marc,

 

The code snippet that you sent is fine as it is. Since you are having issues with the RTS I would suggest you to check the PCSTK value just before RTS. From what you describe it looks like the PCSTK is corrupted. Checking the PCSTK value would let you know if the PCSTK is loaded with the corresponding call location or is corrupted. Also could you please tell me what processor you are running the code in.

 

Thanks,

Divya

DivyaS Analog Employee   94 posts since
Feb 3, 2009
Currently Being Moderated
5. Nov 4, 2009 10:31 AM in response to: MarcS.
Re: Core Hang

Hi Mark,

 

Usually a Call to a subroutine is matched with the RTS or RTS(DB) instruction in the subroutine. The CALL instruction pushes the return address on the PC STACK which is the next instruction address after the call instruction. The RTS instruction causes the sequences to fetch the return address at the top of PCSTACK and pops the PCSTACK address at the top.

 

The difference between RTS and RTS(DB) is that RTS (DB) instruction extecutes the next two instructions after the RTS before returning to the return address instruction.

 

You can find this information in the programming reference manaul available online at the following link . please refer to page 4-20 of the manual.

 

http://www.analog.com/static/imported-files/processor_manuals/ADSP_2136x_PGR_rev2-0.pdf

 

If you still have issues could you please send your code so that we could have a look here.

 

Thanks,

Divya

More Like This

  • Retrieving data ...