UC3A handle_bus_error_data_ftech

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi all,

We have a strange problem that is not easy to figure.

We use FreeRTOS ans some time (1 reset of 5) I jump to _handle_bus_error_data_fetch handler

I try to determine what could be the problem and I doesn't seem to be very easy to get the offending piece of code.

I have an JTAG MKII interface.

Is it possible to have an Idea of what could be the problem ?

I pause the debug session when this happen, and I check the PC + 0x08 to see what is the PC was and it's in the div asm files.

I'm pretty sure i'm not doing the right thing now to get what i'm looking for.

What can cause this kind of exception ? The Tech manual is not really detail fot that exception

Regards

Jonathan

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

anyone ?

idea ?

Jonathan

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Can you run the freeRTOS demo from the framework and make it _not_ crash?

-sma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

Yes I can make the demo without crashing. The problem is when I reset my board if the program start correctly it run forever without crashing. Some time When I reset the CPU, it crash and jump to this handler.

Really hard to find where could be the problem.

if the program is always crashing, i could identify it but whith this issue it's very hard.

Regards

Jonathan

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

When it crashes, can you halt and dump the stack?
You should be able to see the offending address (see in SP+4 location).

-sma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

yes I can do this. It's in newlib malloccr.c line 2645. (Free function).

but if I change the code a little bit, I got another address...

very strange.

Jonathan

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What is the version of your chip and what is your clock speed?

Letting the smoke out since 1978

 

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

I have a Rev I and a speed of 48Mhz with 1 wait state.

We have some something in our code about Freeing a bad pointer.

So I keep you updated when we find why.

regards

Jonathan