Цитата(Сергей Борщ @ Dec 13 2012, 17:20)

В map нет ни одного упоминания g_pfnVectors. В каком файле находится объявление этого массива? Компилируется ли этот файл? Передается ли его объектник линкеру?
Находится в startup_LPC17xx.c. Не компилировался и не передавался (упс, еще не собиралась lpc17xxlib), но после исправления лучше не стало - линкер сыплет ошибками
linker.txt ( 2.38 килобайт )
Кол-во скачиваний: 422Цитата(mdmitry @ Dec 13 2012, 18:08)

А не является ли это куском startup-кода от CoIDE, который линкуется им по умолчанию (библиотека) и о котором gcc не знает ничего. (Аналогия с CodeSourcery, версии lite и коммерческая)
Является , после перадачи линкеру объектника - он сыплет ошибками (прикрепил отчет выше)
Цитата(klen @ Dec 13 2012, 21:56)

похоже на то..... но какбы gcc принципиально никаких предположений не делает - какое ему дело до стартап кода и таблицы векторов - он их и вообще не различает одругого кода - зачем ему оно. это уже ты сам должен скомпилять все что нужно и передать ликуру - это твоя забота чтобы там была таблица векторов и твоя забота чтоб ее линуер использую тови указания в скрипте положил по нужному адресу.
я вот мотрю тоже пока ниче непонятно. если найду косяг отпишусь.
код Reset_Handler в студию
Код
#pragma weak Reset_Handler = Default_Reset_Handler
void Default_Reset_Handler(void)
{
/* Initialize data and bss */
unsigned long *pulSrc, *pulDest;
/* Copy the data segment initializers from flash to SRAM */
pulSrc = &_sidata;
for(pulDest = &_sdata; pulDest < &_edata; )
{
*(pulDest++) = *(pulSrc++);
}
/* Zero fill the bss segment. This is done with inline assembly since this
will clear the value of pulDest if it is not kept in a register. */
__asm(" ldr r0, =_sbss\n"
" ldr r1, =_ebss\n"
" mov r2, #0\n"
" .thumb_func\n"
"zero_loop:\n"
" cmp r0, r1\n"
" it lt\n"
" strlt r2, [r0], #4\n"
" blt zero_loop");
__asm(" ldr r0, =_sbss1\n"
" ldr r1, =_ebss1\n"
" mov r2, #0\n"
" .thumb_func\n"
"zero_loop1:\n"
" cmp r0, r1\n"
" it lt\n"
" strlt r2, [r0], #4\n"
" blt zero_loop1");
/* Setup the microcontroller system. */
SystemInit();
/* Call the application's entry point.*/
main();
}
Цитата(_Артём_ @ Dec 13 2012, 23:09)

Может добавление такой строки
Код
ENTRY(Reset_Handler)
что-то изменит? Или она в другом файле?
Не изменило, в файле startup_LPC17xx.c
Новый map после добавления добавления недостающих файлов:
PIR_NEW.map.txt ( 211.53 килобайт )
Кол-во скачиваний: 690После последних исправлений добавил заглушки к newlib - сборка завершена успешно. Надо мне внимательней читать выхлоп средств сборки.
Спасибо за помощь.
Сообщение отредактировал Croman13n3c - Dec 14 2012, 05:59