Возвращаясь к нашим баранам
|
Код:
|
Error[Li005]: no definition for "__iar_program_start" |
Конкретно ошибку линкера обойти можно. Надо поставить пинок в нужную строну, но тут сталкиваемся с проблемой...
Если добавить в проект пару строк.
Открываем файл system_stm32f10x.с и пишем в конец этого файла следующие строки:
|
PHP код:
|
void __iar_program_start(void);
void __iar_program_start(void)
{
}
|
то при дебаге получаем набор сообщений типа:
Wed Mar 02 16:32:09 2011: Warning: __vector_table symbol not found. e_entry value: 0x08000138 does not match reset vector value: 0xF0506800 Initial SP_main value:0x4846B580 uncertain.
Wed Mar 02 16:32:09 2011: Error (col 1): Unknown or ambiguous symbol. main
Затираем что мы наделали в предыдущем файле. Идем дальше...
В стартапе добавляем метку в самый конец и меняем метку старта программы на паблик
|
PHP код:
|
SECTION .intvec:CODE:NOROOT(2)
;EXTERN __iar_program_start
PUBLIC __iar_program_start
EXTERN SystemInit
PUBLIC __vector_table
................
B TIM7_IRQHandler
_iar_program_start
END
/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
|
И все-равно ничего не работает.
В общем решил забить на все и поднять с работающего проекта, повычистив изнутри и поставив мигалку в main
Template_v1 - версия со стартапом ld_vl
Template_v2 - версия со стартапом md_vl
Спасибо гражданину Eugene-у за то что максимально упрощенный базис выложил у себя.