Проблема в следующем. Пишу вторичный загрузчик для LPC23xx. Мне нужно жестко расположить программу по определенному адресу - чтобы туда прыгать из загрузчика. В настройках линкера есть такая фишка как entry symbol - __iar_program_start. Как определить эту entry метку и присвоить ей свой адрес? Может как-то по другому можно? Если вообще отключить библиотеку то эта метка не инициализируется и вываливает ошибку...
Вопрос снят. Два дня мучился и стоило написать ответ нашел.
Подправил startup.s:
было - SECTION .TEXT:CODE:NOROOT(2)
EXTERN ?main REQUIRE __vector EXTERN low_level_init
ARM
__iar_program_start:
?cstartup:
I_Bit DEFINE 0x80 ; when I bit is set, IRQ is disabled F_Bit DEFINE 0x40 ; when F bit is set, FIQ is disabled .....
стало - SECTION .CSTARTUP:CODE:NOROOT(2)
EXTERN ?main REQUIRE __vector EXTERN low_level_init
ARM
__iar_program_start:
I_Bit DEFINE 0x80 ; when I bit is set, IRQ is disabled F_Bit DEFINE 0x40 ; when F bit is set, FIQ is disabled .....
И в линкере прописал сегмент:
/* Place startup code at a fixed address */ place at address mem:0x200 { readonly section .CSTARTUP };
|