Witam!
Zabralem sie pare dni temu za pisanie oprogramowania dla ATtiny45 (co akurat jest malo wazne) w C z wykorzystaniem software'owej implementacji USB pt. AVR-USB.
Problem pojawil sie, gdy postanowilem program skompilowac. Poniewaz makefile dolaczany do projektow referencyjnych nie byl dla mnie zbyt jasny, to wykorzystalem swoj makefile, stworzony na podstawie template'u z WinAVR, z wycietymi sekcjami dotyczacymi C++. Zgodnie z readme:
plik odpowiednio dostosowalem:
Przy wywolaniu make all otrzymuje nastepujacy blad:
Tak wiec niby nie ma instrukcji do generacji pliku ELF. Sek w tym, ze w projekcie, z ktorego makefile pochodzi, taki plik i wszystkie inne pliki elegancko sie generowaly. Z kolei makefile z projektu referencyjnego generuje plik ELF.
Bardzo prosze, zeby ktos na zerknal i poinstruowal mnie, co dopisac. Niestety skladnia plikow make pozostaje dla mnie dosyc niejasna...
W zalacznikach jest moj makefile i plik referencyjny.
>Zmieniłem tytuł tematu i przeniosłem do właściwego działu<
https://www.elektroda.pl/.../topic1015361.html
[zumek]
Zabralem sie pare dni temu za pisanie oprogramowania dla ATtiny45 (co akurat jest malo wazne) w C z wykorzystaniem software'owej implementacji USB pt. AVR-USB.
Problem pojawil sie, gdy postanowilem program skompilowac. Poniewaz makefile dolaczany do projektow referencyjnych nie byl dla mnie zbyt jasny, to wykorzystalem swoj makefile, stworzony na podstawie template'u z WinAVR, z wycietymi sekcjami dotyczacymi C++. Zgodnie z readme:
The driver consists of the following files:
Readme.txt ............. The file you are currently reading.
Changelog.txt .......... Release notes for all versions of the driver.
usbdrv.h ............... Driver interface definitions and technical docs.
* usbdrv.c ............... High level language part of the driver. Link this
module to your code!
* usbdrvasm.S ............ Assembler part of the driver. This module is mostly
a stub and includes one of the usbdrvasm*.S files
depending on processor clock. Link this module to
your code!
usbdrvasm*.inc ......... Assembler routines for particular clock frequencies.
Included by usbdrvasm.S, don't link it directly!
asmcommon.inc .......... Common assembler routines. Included by
usbdrvasm*.inc, don't link it directly!
usbconfig-prototype.h .. Prototype for your own usbdrv.h file.
* oddebug.c .............. Debug functions. Only used when DEBUG_LEVEL is
defined to a value greater than 0. Link this module
to your code!
oddebug.h .............. Interface definitions of the debug module.
iarcompat.h ............ Compatibility definitions for IAR C-compiler.
usbdrvasm.asm .......... Compatibility stub for IAR-C-compiler. Use this
module instead of usbdrvasm.S when you assembler
with IAR's tools.
License.txt ............ Open Source license for this driver.
CommercialLicense.txt .. Optional commercial license for this driver.
USBID-License.txt ...... Terms and conditions for using particular USB ID
values for particular purposes.
(*) ... These files should be linked to your project.
plik odpowiednio dostosowalem:
...
MCU = attiny45
F_CPU = 16500000
#caly moj kod zawiera sie w main.c
SRC = main.c usbdrv.c oddebug.c
ASRC = usbdrvasm.S
#AVR-USB znajduje sie w podkatalogu usbdrv
EXTRAINCDIRS = usbdrv
...
Przy wywolaniu make all otrzymuje nastepujacy blad:
make.exe: *** No rule to make target `main.elf', needed by `elf'. Stop.
Tak wiec niby nie ma instrukcji do generacji pliku ELF. Sek w tym, ze w projekcie, z ktorego makefile pochodzi, taki plik i wszystkie inne pliki elegancko sie generowaly. Z kolei makefile z projektu referencyjnego generuje plik ELF.
Bardzo prosze, zeby ktos na zerknal i poinstruowal mnie, co dopisac. Niestety skladnia plikow make pozostaje dla mnie dosyc niejasna...
W zalacznikach jest moj makefile i plik referencyjny.
>Zmieniłem tytuł tematu i przeniosłem do właściwego działu<
https://www.elektroda.pl/.../topic1015361.html
[zumek]
