BL instruction with no sense for me

Hi,

I'm working with the AT91SAM9260 controller - but I think it's a software problem.

I try to go to another c-function located at 0x200003A8 but the assembler code is very different

//c-code: status = function(pEmac);
//both variables are defind as well as the function

0x2000052C E1800006 ORR   R0, R0, R6
0x20000530 EBDFFF9C BL    0x1F8003A8
-> there is the error

the whole programm is running in the sdram. How could I get the information for this BL jump in the program?

best regards
Stefan

Parents
  • Did you expect 'BL 0x200003A8'? There can be a perfectly reasonable explaination for this. For example, when using ARM/THUMB interworking, RealView tools automatically generate veneers. So there could be a veneer at 0x1F8003A8. Besides, at higher optimization levels the compiler may rearrange code very significantly. Did you try to look at disassembly output at 0x1F8003A8?

Reply
  • Did you expect 'BL 0x200003A8'? There can be a perfectly reasonable explaination for this. For example, when using ARM/THUMB interworking, RealView tools automatically generate veneers. So there could be a veneer at 0x1F8003A8. Besides, at higher optimization levels the compiler may rearrange code very significantly. Did you try to look at disassembly output at 0x1F8003A8?

Children
More questions in this forum