This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UTL_Halt on C6457

Hi,

 My application uses the Host port interface to communicate with the master processor. But when I run a test that stresses this interface I get a UTL Halt. 

The NRP has a crazy value something like 0xfa120524

There is an internal exception due to resource conflict. EFR = 0x2 and IERR = 0x10

So i looked at register B3 and traced it up.

I reached the function EXC_Dispatch

In this routine B3 is 0x0000 so I have no clue how to trace back.

Does anyone know what do the contents of register B0 to B3 contain. B0 has a vaild address 0x8f1c08 which is my ISR for the the Serial port.

 

Any help will be appreciated.

 

Thanks in advance

 

regards,

 

Pavan

  • Pavan,

    You have done some very good debug work. I am sure you will soon come to a conclusion.

    The NRP is the most telling of the information, since that tells you where the PC was when the bad instruction was executing. Do any of your registers have a value close to 0xfa120524? if so, you may want to keep your eyes open for an instruction that branches using that register.

    I have not deciphered the meaning of EFR and IERR. What have you found for those?

    The DSP/BIOS API Reference Guide talks about EXC_Dispatch being the default catch-all for exception handling. You could write your own (the API Ref Guide tells where to find the source for EXC_Dispatch) to capture the information you are looking for, or you could set a breakpoint at EXC_Dispatch or at the HWI_NMI "branch vector". The breakpoint is what I would tend to use first - easier and gets the data you want, especially since it happens predictably.

    Another direction to go in your debug is to examine your HPI stress test more closely to find out what it is doing when the exception is caused. If you can figure out if you are causing too much internal bus loading, that would be helpful to know. If you are stomping on some memory that is corrupting some operation, that would be good to know.

    My guess would be loading, and that somehow is resulting in stack overflow which causes PC corruption when something returns.

    But to address your original question, the source code for EXC_Dispatch is available as I indicated above. You can look at that and figure out what the various register usages are.

    Please let us know which debug direction you are taking, or multiple directions. And also tell us what new observations you find.

    Regards,
    RandyP