Post build flashing of configuration data in embedded systems
To achieve "dynamic" linking in an statically linked embedded platform you need to do this yourself.

What you can do is reserve some area of flash memory for this module.
The module may not have dependencies on anything else. Best thing to try is to compile it as library first.

The mechanism you can use to do this is to place an array of function pointers at the start of the library binary. Much like the interrupt vector table at the start of ROM.
Then you can call the entries in this list to run the functions in this library.



If you only have parameters then this would be very easy indeed. Don't put any code in a C file, just constant variables structs and arrays. Tell the linker to put it at a fixed place, and have some means to program it. Either in-application or via some other way.

Try to have a checksum (SRecord can do this), and try if you can make 0x00 and 0xFF illegal values. (default erased values) Automotive will have some guidelines in this.

Right now I'm maintaining code that I wrote some years ago that does exactly this.
Allocate a 2048 bytes block of memory. Place a struct in it. Copy the struct to SRAM for live editing, and maintain actual CRC of data in the structure. Compile time CRC is made with SRecord.
An additional list is used to specify when, who may edit, and what value each parameter may have.

This is not difficult, it's just a lot of work.

J1939 Memory Access Requests (DM14) are used to read/write this block.
Unfortunately, I can't share this code.