Problem with internal flash

I'm trying to write in the internal flash memory a funcion that it is written in an external eeprom. I would like, write the funtion in a specifical adress, and I would call this funtion from my internal program. But i think that it's imposible. If i write in the internal flash i can't use the bootloader. But i must use the bootloader for design requirement.But i think that all this it isn't posible :'(

Somebody have trying this before? Somebody know a library that allow write in a specific adress in the internal flash and it could be used with the bootloader?

The project is a system capable of selfprogramming from a eeprom. ::)