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

Branch to function pointer array

Hopefully someone knows...

I'm writing a jump table for a number of functions. The jump table located '__at' a location in memory contains __asm instructions to branch to all required functions defined previously, using "__asm{B func1}", for example.

Some code I am using contains a function pointer array (*funcptr[16])(arg..), and I'm not sure how to branch to it. if I try __asm{B funcptr}, the compiler (uvision3) complains that the "Target is out of range", which is understandable. Unfortunately my asm abilities are nearly non-existent and I'm unsure how to rectify it.

extern void func1(char stuff);
extern void(* funcptr[16]) (unsigned int arg);

void usb_table(void)    __at 0x00002000
}
   __asm{B func1}                // located at 0x2000
   __asm{B funcptr}        // target out of range
{

0