This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

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 Reply Children
  • if I write too more lines befor the error occurs - then the addr changed

    from:

    0x1F8003A8 FFFF07C0 ???
    


    to:

    0x1F8003BC FFFF07C0 ???
    

    I added these two lines

    wait();
    // turn on led
    AT91C_BASE_PIOA->PIO_CODR = led_mask[0];
    

    The function wait was already defined

    void wait (void) {
    
      unsigned short i=0;
    
      for(i=0; i<1000; i++);
    
    }
    

    best regards
    Stefan

  • A few questions:
    Does anything work at all? Any part of code?
    Does firmware upload work correctly?
    Does external memory work correctly?
    Is memory layout for linker configured correctly?
    Could you post longer snippets of disassembled code? It's difficult to match C and assembly code in the samples you posted.