ADR is relative to PC. i.e the label need to be quite near to the ADR instruction (to be simple).Use movw and movt movw r1, #:lower16:F4_ROM movt r1, #:upper16:F4_ROMthe code needs 2 instructions instead of one but it will works in all case !
movw r1, #:lower16:F4_ROM movt r1, #:upper16:F4_ROM