Помогите слинковать проект

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 98
Зарегистрирован: Пн дек 06, 2010 12:26:45

Сообщение ESWANT »

Здравствуйте!

Помогите сделать makefile


вот часть кода где видно какие модули я использую (главный модуль main.c):

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>

#include "module1.c" //находится в каталоге рядом с main 
#include "module2.c" //находится в каталоге рядом с main 
#include "usbdrv/usbdrv.h" - это исходники из статьи  http://radiokot.ru/konkursCatDay2014/15/

выдает ошибку:
Linking: main.elf
avr-gcc -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref -lm
main.o: In function `RunTasks':
C:\........./main.c:66: undefined reference to `usbPoll'
main.o: In function `main':
C:\......../main.c:182: undefined reference to `usbInit'
make.exe: *** [main.elf] Error 1

раз ошибка линковщика то я предполагаю что makefile ошибочный, я его делал из sample

ругается как раз на функции и еще указатель из этой библиотеки

makefile прикрепил

что сделать???
Вложения
makefile.rar
(5.67 КБ) 121 скачивание
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

undefined reference to `usbPoll'
main.o: In function `main':
C:\......../main.c:182: undefined reference to `usbInit'

Все же ясно написано, функции usbPoll и usbInit не найдены. Подключен ли файл с этими функциями в проект? Просто компановщик не может найти эти функции. Makefile тут, вроде, не при делах.
Реклама
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт ноя 13, 2008 16:33:42

Сообщение vdavid »

ESWANT
Добавьте в строку "SRC =" файл usbdrv/usbdrv.с
а в строку "ASRC =" файл usbdrv/usbdrvasm.S
Именно через пробел, без запятых.
И будет Вам счастье.
Встал на лапы
Сообщения: 98
Зарегистрирован: Пн дек 06, 2010 12:26:45

Сообщение ESWANT »

vdavid писал(а):ESWANT
Добавьте в строку "SRC =" файл usbdrv/usbdrv.с
а в строку "ASRC =" файл usbdrv/usbdrvasm.S
Именно через пробел, без запятых.
И будет Вам счастье.
Счастье не наступило где-то нагнал :cry:
make.exe: *** No rule to make target `main.elf', needed by `elf'. Stop.

а написал вот как
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c usbdrv/usbdrv.с
.........
ASRC = usbdrv/usbdrvasm.S
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт ноя 13, 2008 16:33:42

Сообщение vdavid »

ESWANT писал(а): Счастье не наступило где-то нагнал
Убедитесь, что в папке usbdrv есть файлы usbdrv.c и usbdrvasm.S. Кроме того могут быть косяки с путем по умолчанию. Попробуйте из командной строки, находясь в папке проекта сделать male all.
Реклама
Встал на лапы
Сообщения: 98
Зарегистрирован: Пн дек 06, 2010 12:26:45

Сообщение ESWANT »

vdavid писал(а):
ESWANT писал(а): Счастье не наступило где-то нагнал
Убедитесь, что в папке usbdrv есть файлы usbdrv.c и usbdrvasm.S. Кроме того могут быть косяки с путем по умолчанию. Попробуйте из командной строки, находясь в папке проекта сделать male all.
файлы есть, из командной строки, такая же ошибка :cry:

а вообще попросить бы makefile у того товарища кто статью написал :)))
Реклама
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт ноя 13, 2008 16:33:42

Сообщение vdavid »

Скачал этот проект. Скомпилировал с Вашим makefile. Все нормально.

Код: Выделить всё

Size after:
AVR Memory Usage
----------------
Device: atmega32

Program:    2390 bytes (7.3% Full)
(.text + .data + .bootloader)

Data:        208 bytes (10.2% Full)
(.data + .bss + .noinit)
ESWANT писал(а): SRC = $(TARGET).c usbdrv/usbdrv.с
Ё-моё, так тут вместо латинской "c" русская "c". Я когда первоначально писал не заметил.
Вложения
makefile.rar
(4.86 КБ) 145 скачиваний
Встал на лапы
Сообщения: 98
Зарегистрирован: Пн дек 06, 2010 12:26:45

Сообщение ESWANT »

:))
Спасибо!!!
чё то собралось!!!!
Ответить

Вернуться в «AVR»