Теперь 2 сегмента
define block _BOOT0_ with alignment = 8, size = 0x1000 { };
place at address mem: 0x70000 { readonly section _BOOT0_ };
define block _BOOT1_ with alignment = 8, size = 0x1000 { };
place at address mem: 0x75000 { readonly section _BOOT1_ };
place in ROM_region { readonly, block _BOOT0_, block _BOOT1_ };
в теле
void LedON(void);
void LedOFF(void);
int main()
{ IO0DIR=(1<<22);
while(1)
{if (IO0PIN&(1<<22)) LedOFF(); else LedON();
}
}
void LedON(void) @ "_BOOT0_"
{
IO0SET|=(1<<22);
}
void LedOFF(void) @ "_BOOT1_"
{
IO0CLR|=(1<<22);
}
и получается что LedON() расположилось в 0x70000, LedOFF() расположилось в 0x75000- тоесть как и просил. А вот main расположилось между ними, притом что еще дохерища места в начале.