Семен Семенович! Точно, Кортекс же Thumb-2 использует, а для B(L)X признак перехода на Thumb-код - единица в младшем разряде адреса. Промежуточный указатель лишний, из всего насветованного достаточно лишь указывать адрес функции в скрипте линкера с единичкой в младшем разряде.
По второму вопросу - можно описать секцию и присвоить адрес конкретного места этой секции (ну и единичку добавить). Вот так экспортируются адреса конструкторов:
.text :
{
................
__ctors_start = . ;
KEEP((.ctors))
KEEP((.init_array))
__ctors_end = . ;