Цитата(Waso @ Nov 2 2007, 12:28)

Линкер выдает такую ошибку:
Код
Error[e27]: Entry "AT91F_ADC_CfgModeReg" in module BasicWEB ( ..\BasicWEB.r79 ) redefined in module SAM7_EMAC ( ..\SAM7_EMAC.r79 )
В обоих указан инклюд, в котором находится конфликтующая ф-я. Причом она инлайновая.
#include <lib_AT91SAM7X256.h>
С АЦП я вообще не работаю. Охранные директивы в этом хедере есть. В чем проблема?
Это уже линкер обругал Ваши объектные файлы... АЦП тут вовсе непричем.
Просто у Вас скорее всего в сишных файлах и/или инклюдниках есть два объявления функции AT91F_ADC_CfgModeReg, а именно в файлах
BasicWEB.с ( или в асмовском)
и в файле:
SAM7_EMAC.c ( или в асмовском)
Да Вы и сами причину написали:
Цитата
В обоих указан инклюд, в котором находится конфликтующая ф-я. Причом она инлайновая.
вот не должно так быть... Охранные директивы - охраняют только в пределах одного *.c файла, между ними - охранные директивы не работают. Вот Вы и получили - в разных модулях - одну и ту же функцию, а линкер это обнаружил... Все правильно...
Цитата(VladislavS @ Nov 2 2007, 20:41)

Наверное static поможет.
либо попробовать ее в одном из файлов как extern объявить, но если она не inline-естествоенно...
мне вообще странно что inline-функция вылезла аж до линкера.
Вроде бы ее тело должно просто быть подставлено в текст программы в каждой точке ее вызова и она не должна вылазить в распоряжение линкера?