Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil, LPC2000 , компиляция ARM/Thumb
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Костян
День добрый. При компиляции из Keil не всегда удается перейти от Thumb к ARM mode линковшик выдает часто ошибку:

ERROR104 : MULTIPLE PUBLIC DEFINITIONS
SYNBOL : putchar?A
DEFINED : serial.obj

в проекте используется printf и include <stdio.h> . В файле serial.c находится описание фунцкий putchar и getchar .

В чем причина ?
d__
Посмотри как это делается в C:\Keil\ARM\RV30\Examples\Hello\...
Костян
Да забыл уточнить, компилятор Keil CARM
Для определенности вопроса, например поясните как скомпилировать под ARM инструкциях следуюший проект:
С:\Keil\ARM\Examples\Hello
VAI
Цитата
Да забыл уточнить, компилятор Keil CARM

а почему карм? Сами себе создаете трудности, а все вместе мы их преодолевать будем?
d__
На вкладке компилера надо снять интерворкинг и телемаркет...
Костян
Цитата(d__ @ Feb 5 2007, 11:44) *
На вкладке компилера надо снять интерворкинг и телемаркет...

Сорри за тормоза, но у CARM нету таких полей. И простое снятие галки thump приводит к приведенной выше ошибки
С:\Keil\ARM\Examples\Hello


Цитата
а почему карм? Сами себе создаете трудности, а все вместе мы их преодолевать будем?

Хм.. да вот примеры как с keil именно под ним ходят, аргуметнируйте если можно, чем он дурной ?
VAI
Цитата
аргуметнируйте если можно, чем он дурной ?

1. Double не поддерживает. Точнее sizeof( double ) = sizeof( float ).
http://www.keil.com/support/docs/3209.htm
2. Поддержка прекращена из-за наличия компилятора RV в Кейле. В последних версиях (3.03, 3.04) МДК отсутствует.
Andy Great
Странно, что поддержка GCC не прекращена - есть же RV smile.gif Не совсем понимаю, чем им родной КАРМ помешал - места намного жрет.
Костян
Цитата(VAI @ Feb 5 2007, 13:41) *
Цитата
аргуметнируйте если можно, чем он дурной ?

1. Double не поддерживает. Точнее sizeof( double ) = sizeof( float ).
http://www.keil.com/support/docs/3209.htm
2. Поддержка прекращена из-за наличия компилятора RV в Кейле. В последних версиях (3.03, 3.04) МДК отсутствует.

Пасиб за ответ , первое я заметил , а вот второе новость , причем убедительная.
Andrew2000
Цитата(Andy Great @ Feb 5 2007, 18:58) *
Странно, что поддержка GCC не прекращена - есть же RV smile.gif Не совсем понимаю, чем им родной КАРМ помешал - места намного жрет.

А зачем тогда ARM покупал Keil-a?
(Для Infineon 16x Keil лучший компилятор сделала, и для ARM был бы лучшим, я так думаю...)
d__
Извините, произошла ошибочка. По замотанности был открыт проект с похожим названием. В документации на CARM написано, что он генерит только чумб программы, так что в арм режиме, только на на асемблере... Еще раз извините...
Костян
Цитата(d__ @ Feb 5 2007, 15:27) *
В документации на CARM написано, что он генерит только чумб программы, так что в арм режиме, только на на асемблере...

Да вроде нет, тот же FreeRTOS дает примеры в ARM и Thumb инструкциях, но почему в разных файлах проекта.
По крайней мере нашел способ через ж... изменять режим. В закладке компилера в поле "misc control" пробиваю INTERWORK , но что к чему нипонятно.
Может все же кто-то возмется из форумчан обьяснить , как изменять mode ? До сегодняшнего дня приходилось брать готовый пример в ARM инструкциях, оставлять из него только файл проекта, а исходники набивать свои.
Или все же имеет смысл перейти на RV compiler ? Хотя нехотелось бы это делать когда проект наполовину написан в CARM
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.