"binary" im Makefile erzeugt kein bin-datei

#1801299
Lesenswert?

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.
Gast #1801331
Lesenswert?

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
.....
Gast #1801365
Lesenswert?

Ö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.)
#1801367
Lesenswert?

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.
Gast #1801469
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren