По основному вопросу согласен с IgorKossak. Смотрите .map - что он куда разместил. В шапке .map вы увидете аргументы командную строку линкера и сможете проверить, используется ли ваш .xcl. В крайнем случае делайте проект int main() {} и кидайте его сюда. Я часто использую подобное размещение и никогда не сталкивался с вашей проблемой.
Немного не в тему:
Цитата(Hexxx @ Sep 20 2007, 15:36)

-Z(CODE)INTVEC=30080000-3008003F
Вы потом эти вектора куда-то копируете? В таком случае работоспособность этого кода будет зависеть от того, как описаны переходы по векторам. Попробуйте вот такой вариант:
Код
// Intvec always linked to 0x00-0x3F
-Z(CODE)INTVEC=00000000-0000003F
// ROM
-Z(CODE)INTVEC_I=ROMSTART-ROMEND
-QINTVEC=INTVEC_I // place vectors to INTVEC_I, but link to intvec
В этом случае вектора будут указывать куда надо после копирования в нулевые адреса вне зависимости от описания переходов: LDR PC,=Handler или B Handler.