Не совсем понял задачу - Вам нужен адрес main в текущей программе, или нужно положить его в виде константы в известном месте прошивки?
В первом случае делаем просто:
Код
void *main_addr = (void*)main;
Во втором я бы рекомендовал в startup.s по известному адресу добавить:
Код
IMPORT main
main_addr
DCD main
Кстати, оперировать с __current_pc() не совсем корректно, так как на самом деле main может начаться несколько раньше __current_pc().