Цитата(KARLSON @ Aug 29 2011, 08:55)

...
1) как узнать размер функции?
Можно разместить ее в отдельном сегменте, и затем вычислять его адрес, через встроенные указатели начала и конца сегмента (__segment_begin("mySeg");__segment_end("meSeg");SFE("mySg");SFB("mySeg"))
Цитата
2) как предотвратить наложение адресов при перепрограммировании, вдруг новая функция растолстела больше диапазона первоначального?
Можно сделать запас.
Цитата
3) можно ли при перепрограммировании переложить функцию по другому адресу, где при этом прописать остальной программе, что перепрограммированная функция запускается по новому адресу?
Конечно можно. Как вариант, обращаться к функции через указатель на нее, который находится по фиксированному адресу.