I need to set the address where the library I've included will reside in the code memory
So I want to collect all the libraries in one defined area in one record to enable the user mode to use them.
And how is the non-library code outside that region supposed to get its execution privileges?
And once it has them, how will that set-up be any more useful than the obvious approach, in which the entire exectuable, library and all, is set up as a single MMU execution region?
And once it has them, how will that set-up be any more useful than the obvious approach those libraries provides service functions for user mode. for example, one library may include a function like memcpy(). The approach is not to prevent the user mode from executing those libraries, I'm concerned to prevent the user mode from accessing the other regions.
I'm concerned to prevent the user mode from accessing the other regions. Then I suggest you put those other parts of code into a decidated region, which you can configure as system-mode only.
But before you make any further step, you really need to sit down and learn a lot about how the '51 tools work. This is a highly unusual C toolchain, for which a lot of things that would apply cleanly on almost every other system, just don't.