Hallo, ich kompiliere ein Miniprogramm von Winavr mit der Make. Habe dort "binary" angegeben. Es wird aber keine "bin" erzeugt, woran liegt das? Danke.
Wo hast Du „binary“ angegeben und wie? Was heißt „Es wird aber keine "bin" erzeugt“? Erwartest Du, eine Datei mit der Endung .bin zu erhalten oder woraus schließt Du das? Was geschieht stattdessen? Wie compilierst Du? Was sind die Meldungen des Compilers? Wieder mal ein Textadventure ohne grundlegende Angaben.
Ein Auszug aus der Make. Unten ist "binary". Beim erstellen der Make mit Mfile kann man es ja auswählen.
1 | # Hey Emacs, this is a -*- makefile -*-
|
2 | #----------------------------------------------------------------------------
|
3 | # WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
|
4 | #
|
5 | # Released to the Public Domain
|
6 | #
|
7 | # Additional material for this makefile was written by:
|
8 | # Peter Fleury
|
9 | # Tim Henigan
|
10 | # Colin O'Flynn
|
11 | # Reiner Patommel
|
12 | # Markus Pfaff
|
13 | # Sander Pool
|
14 | # Frederik Rouleau
|
15 | # Carlos Lamas
|
16 | #
|
17 | #----------------------------------------------------------------------------
|
18 | # On command line:
|
19 | #
|
20 | # make all = Make software.
|
21 | #
|
22 | # make clean = Clean out built project files.
|
23 | #
|
24 | # make coff = Convert ELF to AVR COFF.
|
25 | #
|
26 | # make extcoff = Convert ELF to AVR Extended COFF.
|
27 | #
|
28 | # make program = Download the hex file to the device, using avrdude.
|
29 | # Please customize the avrdude settings below first!
|
30 | #
|
31 | # make debug = Start either simulavr or avarice as specified for debugging,
|
32 | # with avr-gdb or avr-insight as the front end for debugging.
|
33 | #
|
34 | # make filename.s = Just compile filename.c into the assembler code only.
|
35 | #
|
36 | # make filename.i = Create a preprocessed source file for use in submitting
|
37 | # bug reports to the GCC project.
|
38 | #
|
39 | # To rebuild project do "make clean" then "make all".
|
40 | #----------------------------------------------------------------------------
|
41 | |
42 | |
43 | # MCU name
|
44 | MCU = atmega32 |
45 | |
46 | |
47 | # Processor frequency.
|
48 | # This will define a symbol, F_CPU, in all source code files equal to the
|
49 | # processor frequency. You can then use this symbol in your source code to
|
50 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
51 | # automatically to create a 32-bit value in your source code.
|
52 | # Typical values are:
|
53 | # F_CPU = 1000000
|
54 | # F_CPU = 1843200
|
55 | # F_CPU = 2000000
|
56 | # F_CPU = 3686400
|
57 | # F_CPU = 4000000
|
58 | # F_CPU = 7372800
|
59 | # F_CPU = 8000000
|
60 | # F_CPU = 11059200
|
61 | # F_CPU = 14745600
|
62 | F_CPU = 16000000 |
63 | # F_CPU = 18432000
|
64 | # F_CPU = 20000000
|
65 | # F_CPU = 8000000
|
66 | |
67 | |
68 | # Output format. (can be srec, ihex, binary)
|
69 | FORMAT = binary |
70 | |
71 | |
72 | # Target file name (without extension).
|
73 | TARGET = main |
74 | |
75 | .....
|
Ich erwarte eine Datei mit der Endung "bin" bei dieser Einstellung. Es ist eine hex-datei vorhanden mit der Endung ".hex".
Öhm, häng mal alles an (als Dateianhang), das wichtigste fehlt imho. Wenn das, was fehlt, nur halbwegs so aussieht, wie bei mir, bekommst du nie ein *.bin sondern immer ein hex und elf und dann noch eep lss und sym. ;-) Aber lass erst mal dein Makefile anschauen. funkker schrieb: > Ich erwarte eine Datei mit der Endung "bin" bei dieser Einstellung. Du nimmst an , du solltest aber lieber mal das Makefile lesen (können). Das FORMAT ändert den Suffix höchstwahrscheinlich überhaupt man gar nicht! Den Unterschied zwischen Formaten kenne ich aber nicht. (Hab im Makefile hier im AVR-GCC-Tutorial/Exkurs Makefiles und in meinem nachgeschaut, die müssten mehr oder weniger wie deines sein.)
funkker schrieb: > Ich erwarte eine Datei mit der Endung "bin" bei dieser Einstellung. Das schien mir auch so, deshalb hatte ich gefragt. Es gibt aber keine Regel, die besagt, dass das so sein muss, und in der Tat haben die meisten Binaries andere Endungen oder gar keine. > Es ist eine hex-datei vorhanden mit der Endung ".hex". Das ist Dein Binary. Es gibt auch eine Datei mit der Endung „.elf“, die enthält auch Dein Binary, nur in anderer Form. Welches von beiden Du verwendest, hängt von dem Programm ab, das das Binary als Nächstes vorgeworfen bekommt.
funkker schrieb: > Es ist eine hex-datei vorhanden mit der Endung ".hex". Und du bist dir ganz sicher, dass das eine Intel-Hex-Datei ist, oder heißt sie nur so? Nimm's als Bug in Mfile... sorry, ich bearbeite dafür gerade keine Bugreports und plane auch kein neues Release. ;-)
Habe die Datei mal umgenannt nach ".bin" und mit dem Progger von Bascom geladen, weil der zwischen bin und hex unterscheidet beim laden. es ist eine bin-datei die "hex" heisst. Ausserdem ist die bin-hex wesentlich kleiner als das ihex-format.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.