Author Topic: Boot to External keil Code  (Read 4096 times)

Offline Manish

  • Newbie
  • *
  • Posts: 23
    • View Profile
Boot to External keil Code
« on: August 10, 2013, 02:31:04 PM »
Hi mark,

  We have LPC23XX boot code , and we have also a second code for lpc 23xx, We want to boot (jump from one code to second code)second code at specific time.but it is not jumping. My memory map like

0x00000 to 0x20000 Boot code with UTasker

0x20000 to 0x80000 App code without Utakser (like Keil demo code)
When Code start from Utaker Boot code , If I want to jump from Utasker to keil Code, use   main_call = (void (*)(void))0x200000; but it will not jump to My keil Code. can you explain it how it works.

  If I use both code of Utasker then both are work and also Jump from one to second, use same location for jumping.

Please reply us regarding this, how we jump from Utasker to Keil.

Offline mark

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3079
    • View Profile
    • uTasker
Re: Boot to External keil Code
« Reply #1 on: August 10, 2013, 10:29:33 PM »
Hi Manish

The following simply jumps to the address specified and is suitable for jumping to ARM7/9 initialisation code which will then set up the stack pointers and other registers:
main_call = (void (*)(void))0x200000; // 0x20000 ??
main_call();


Are you sure that you have set the correct address since the above has one 0 too many?

Regards

Mark

Offline Manish

  • Newbie
  • *
  • Posts: 23
    • View Profile
Re: Boot to External keil Code
« Reply #2 on: August 12, 2013, 08:06:24 AM »
No , that is just writing mistake, but I added only 0x20000.

 My question is if I use both Utasker code (one is Utasker boot code + Utasker App code) then this will work but when I user ( Utasker Boot Code + keil Demo Code as App), then it doesnt works.  Can you please check it again because I am facing it here.

Thank you,
ManisH

Offline mark

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3079
    • View Profile
    • uTasker
Re: Boot to External keil Code
« Reply #3 on: August 12, 2013, 12:49:07 PM »
Hi Manish

I don't see any reason why a jump to the start location of any other application code should not operate. I would step through the jump in disassembler mode to see what it is doing (and compare to when it operates directly at the start address 0x00000000); it may be that the application code has not been correctly linked to the new starting address or that it has some code in it which is expecting the start to be at a fixed address. Therefore I expect that the problem is at the application rather than the jump itself.

Regards

Mark