Loading...
 

STM32MP1 support available in SW4STM32

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world.
And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4; you can download a short video showcasing this on the ac6-tools website (registration required).

System Workbench for STM32


generating position independent code problem on STM32F4

France

Hi Sylvain,

In fact function calls are never generated using absolute addressses, except whan calling a function through a pointer, where the pointer must, obviously, contain the absolute address of the function. All function calls (using the BL instruction) are using relative addresses, limited to +-16MB.

Only if the function is farther than 16MB from the call will the linker generate a veneer which loads an absolute address in the r12 register and branch using a BX instruction; the original BL will then call the veneer that will redirect to the proper function.

For a PIC driver, all your internal calls will thus be using relative addressing; however, if you need to call other functions, then you should create yourself (probably in the code providing these functions) a structure containing pointers to functions that will be used to call them from PIC code.

Bernard (Ac6)