Hello,
I want to build a system where all the standard functions are already in FLASH (something like a BIOS), this is no problem to generate this.
But, how can I build and link/locate an other application without having the functions which are already in the flash.
So how can I tell the linker/locator that the library functions are available and are at there addreses?
Regards Mark,
As Thomas suggested, you should be able to locate the BIOS functions at certain addresses and call them using those addresses. It can be done with macros:
#define bios_func ((void (*)(void))0x123456) ... bios_func();
If the BIOS uses any static variables, you must make sure they don't clash with the main program's variables.
I think that you will not be able to build your application with unresolved objects. I have not tried (just compiled) but I think you just can define your functions using the addresses as follows:
#define MY_FUNC_ADDR 0x1000000 typedef void (*func_t) (void); func_t my_func = (func_t) MY_FUNC_ADDR; ... my_func();
Thomas
View all questions in Keil forum