реклама на сайте
подробности

 
 
> IAR не линкуется проект, IAR не линкуется проект
chdm
сообщение Nov 23 2009, 15:21
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 23-10-09
Пользователь №: 53 160



Здравствуйте. У меня есть такая проблема. Хочу написать простое приложение типа hello world для микроконтроллера ATmega168. При этом в проект подключаю RTOS XMK (видно не получается корректно подключить). Эта RTOS линкуется, как я понимаю статически. Я её прописал в Additional Includes. Компилятор отрабатывает, а линкер ругается:
Error[e46]: Undefined external "_Xmk_core_initialize" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "_xmkIsrSp" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "_xmkCurThread" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "_xmkKrnStatus" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "_xmkCurNext" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "_Xmk_findNext" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "PAL__XMK_startIdle" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error[e46]: Undefined external "_Xmk_createThread" referred in main ( E:\atmel\Dimmer\Demo\Debug\Obj\main.r90 )
Error while running Linker

Подскажите пожалуйста как правильно прописать в ИАР.
Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Fktrctq
сообщение Nov 25 2009, 17:42
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 10-11-05
Из: Таганрог
Пользователь №: 10 659



Искренне советую в исходниках RTOS ничего не менять, если у Вас порт под Вашу платформу то она должна работать без Вашего вмешательства. Если же у Вас просто исходники ОС, не портированные под Вашу платформу - тоды ой. В этом случае Вам сначала придется сделать порт или взять другую ОС (благо под AVR их валом).
Что касается линковки:
1. Посмотрите в исходниках ОС, в заголовочных файлах присутствуют такие строки(первые две в начале, последняя - в конце):

#ifndef XXXX_XXX
#define XXXX_XXX


#endif /* XXXX_XXX */

ну или что-то вроде этого... такая запись исключает возможность повторного подключения заголовочных файлов и как следствие повторного объявления функций.

2. Возможно Вам нужно настроить пути к директориям с исходниками ОС в препроцессоре, и так, лезем вот сюда: Project options -> C/C++ Compiler -> Preprocessor, там Вы должны увидеть memo поле "Additional Include Directories (One Per Line)", попробуйте вбить туда пути к исходникам ОС, если в исходниках ОС имеется заголовочный файлик из разряда "misc" или "conf" с кучей подключаемых библиотек внутри, то возможно его стоит прописать в графу (на той же вкладке настроек проекта) "Preinclude file"

Желаю успехов!


--------------------
Вы пробовали выключить и снова включить?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016