Искусственно закончим функцию и подставим ей в конец flash-массив
void fun(void)
{
// С-операторы. Здесь для простоты NOP'ы
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
// вот тут был конец Вашей ф-ции, и здесь
// стояла закрывающая скопка }
// Но мы продолжим функцию.
// посмотреть в листинге эпилог (чем заканчивается фукнция)
// там должны быть возвраты из стека переменных...
Делаем как в подсмотренном листинге:
asm( "куча pop reg" );
asm( "ld Y+, XXX" );
// ... и все это заканчиваем кодом RET.
asm("ret");
// Функция якобы кончилась.
//И теперь располагайте свои константы
asm("DW 0x1234");
asm("DW 0x4567");
..............
// здесь компилятор поставит
RET; // ну и хрен с ним
} // конец функции.
Вот так получилось. Но изменяя опции проекта надо каждый раз смотреть не поменялся ли эпилог.
1051 void fun(void)
\ fun:
1052 {
\ 00000000 REQUIRE __RSTACK_in_external_ram
1053 _NOP();
\ 00000000 0000 NOP
1054 _NOP();
\ 00000002 0000 NOP
1055 _NOP();
\ 00000004 0000 NOP
1056 _NOP();
\ 00000006 0000 NOP
1057 _NOP();
\ 00000008 0000 NOP
1058 _NOP();
\ 0000000A 0000 NOP
1059 asm("ret");
\ 0000000C 9508 ret
1060 asm("DW 0x1234");
\ 0000000E 1234 DW 0x1234
1061 asm("DW 0x5678");
\ 00000010 5678 DW 0x5678
1062 }
\ 00000012 9508 RET
1063