Loading...
 

System Workbench for STM32


generating position independent code problem on STM32F4

Hi Sylvain,

As I said in my previous post, BL is ALWAYS using relative addressing; to use absolute adressing you would have to use code like this:
LD R12,=test_function
BLX R12
where the first instruction will in turn be displayed in disassembly as two instruction: a MOVW #xxxx to load the 16 lsb (setting the msb to 0) and a MOVT #xxxx to load the 16 msb

Thus the code you show is indeed using relative addressing, so is perfectly valid in PIC mode.

Bernard (Ac6)