#7781 - funkeejeffou - Tue Jun 24, 2003 4:42 pm
Hi,
I'm using goldroad, and I've been implementing a long functiun in Iwram.
The problem is when I call it from ROM code with a "bl my_functiun", golroad generates me an error saying the branch is out of range.
My textareas, pool splitting as well as my copy data loops are fine since they've been working well till now.
Is it normal that the assembler cannot branch a label as far as this?
If so, should I manually change the PC and stack the oldest one so I can return after my functiun finished?
In this case, should I take care of the pipelining and substract 12 from the PC (it's ARM code)?
Also thought of this, what about :
If this works, then WHY does "bl my_functiun" doesn't work?
Thanks
I'm using goldroad, and I've been implementing a long functiun in Iwram.
The problem is when I call it from ROM code with a "bl my_functiun", golroad generates me an error saying the branch is out of range.
My textareas, pool splitting as well as my copy data loops are fine since they've been working well till now.
Is it normal that the assembler cannot branch a label as far as this?
If so, should I manually change the PC and stack the oldest one so I can return after my functiun finished?
In this case, should I take care of the pipelining and substract 12 from the PC (it's ARM code)?
Also thought of this, what about :
Code: |
addr r0, my_functiun
bl r0 |
If this works, then WHY does "bl my_functiun" doesn't work?
Thanks