Forum: Mikrocontroller und Digitale Elektronik ESP8266 Luna Makefile anpassen


von r_u_d_i (Gast)


Lesenswert?

hi

ich habe ein beispiel verwendet, nehmen wir hier an, damit der text 
nicht zu lange wird, dass  hier

base.c ( rboot.c )
base.h ( rboot.h )

verwendet werden. die in den klammern stehenden namen sind vom projekt.

das makefile ist dazu mass geschnitten. ( unten )

habe dann ein extra.c und extra.h neu angelegt und
testweise in der extra.c folgendes eingetragen:
1
#include "extra.h"
2
3
void machnichts(void){
4
// dummy
5
}

in der dazu gehörigen header steht:
1
#ifndef EXTRA_H_
2
#define EXTRA_H_
3
4
#define dummytext "sollte gehen\n"
5
6
void machnichts(void);
7
8
#endif

die base.c habe ich ergänzt:
1
#include "extra.h"


wenn ich im base.c nun den dummytext einbaue,
1
printf(dummytext);

klappt das.

sobald ich aber die funktion aufrufen will
1
machnichts();

meldet luna undefined referenz to 'machnichts'

an was kann das liegen?

das makefile anbei. es geht um rboot.

da makefile nicht mein lieblingsthema ist, denke ich wird hier der 
vernachlässigte fehler auch liegen, zumindest denke ich, müsste ich 
explizit die neuen files noch einbauen? oder extra linken?
wer kann die mir mal einbauen?

ergänzungsfrage:
wie kann ich die osapi.h einbauen?

ehrlichgesagt - ich weiss es leider nicht 100 prozent, wie es in luna 
geht - ich werkle mit der xtensa - vieleicht sieht jemand anderes den 
fehler oder was noch gemacht werden muss oder ich habe das projekt 
falsch ergänzt.

danke!

lg

rudi ;-)


Makefile:
1
#
2
# Makefile for rBoot
3
# https://github.com/raburton/esp8266
4
#
5
6
ESPTOOL2 ?= D:/Projects/esp8266/esptool2/Release/esptool2.exe
7
8
XTENSA_BINDIR ?= C:/xtensa-lx106-elf/bin
9
CC := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
10
LD := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
11
12
CFLAGS    = -Os -O3 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals  -D__ets__ -DICACHE_FLASH
13
LDFLAGS   = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static
14
LD_SCRIPT = eagle.app.v6.ld
15
16
BUILD_DIR = build
17
FIRMW_DIR = firmware
18
19
.SECONDARY:
20
21
all: $(BUILD_DIR) $(FIRMW_DIR) $(FIRMW_DIR)/rboot.bin $(FIRMW_DIR)/testload1.bin $(FIRMW_DIR)/testload2.bin
22
23
$(BUILD_DIR):
24
  @mkdir -p $@
25
26
$(FIRMW_DIR):
27
  @mkdir -p $@
28
29
$(BUILD_DIR)/rboot-stage2a.o: rboot-stage2a.c rboot-private.h rboot.h
30
  @echo "CC $<"
31
  @$(CC) $(CFLAGS) -c $< -o $@
32
  
33
$(BUILD_DIR)/rboot-stage2a.elf: $(BUILD_DIR)/rboot-stage2a.o
34
  @echo "LD $@"
35
  @$(LD) -Trboot-stage2a.ld $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
36
37
$(BUILD_DIR)/rboot-hex2a.h: $(BUILD_DIR)/rboot-stage2a.elf
38
  @echo "FW $@"
39
  @$(ESPTOOL2) -quiet -header $< $@ .text
40
41
$(BUILD_DIR)/rboot.o: rboot.c rboot-private.h rboot.h $(BUILD_DIR)/rboot-hex2a.h
42
  @echo "CC $<"
43
  @$(CC) $(CFLAGS) -c $< -o $@
44
45
$(BUILD_DIR)/%.o: %.c %.h
46
  @echo "CC $<"
47
  @$(CC) $(CFLAGS) -c $< -o $@
48
49
$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
50
  @echo "LD $@"
51
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
52
53
$(FIRMW_DIR)/%.bin: $(BUILD_DIR)/%.elf
54
  @echo "FW $@"
55
  @$(ESPTOOL2) -quiet -bin -boot0 $< $@ .text .rodata
56
57
clean:
58
  @echo "RM $(BUILD_DIR) $(FIRMW_DIR)"
59
  @rm -rf $(BUILD_DIR)
60
  @rm -rf $(FIRMW_DIR)

von r_u_d_i (Gast)


Angehängte Dateien:

Lesenswert?

wo sind die alle? wo treiben sie sich wieder rum? die espler ;-)

komme echt nicht weiter mit dem anpassen in der luna ide -
spiel mich da wund -
xtensa läuft es so schön - aber luna macht mir immer einen strich
durch die rechnung, will das doch open src stellen, da die meisten
mit der luna ide hantieren.

was muss ich denn im makefile noch angeben?
ich kann mir nur vorstellen dass ich die ganzen extras noch zu schreiben 
muss?

wäre hilfreich - auch jeder noch so kleine wink
danke

lg
rudi ;-)

von Mond (Gast)


Lesenswert?

Du bist im falschen Forum, merkst Du das nicht?
Oder hast Du da auch schon gepostet und kein Schwein meldet sich?

Woran das wohl liegt?!

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

- Fußball!
Ich verwende mittlerweile Eclipse-Mars.
Du must die Header-files nichtnur im *.ino( oder im *.cpp) einfügen, 
sondern auch ausdrücklich über rechtsklick-Projekt  -> Import , damit 
sie wirksam werden!

Bleibe jetzt erstmal bei der Arduino-IDE mit ESP-Addon ..

von r_u_d_i (Gast)


Lesenswert?

kettenrad schrieb:
> - Fußball!

na klar - ich sag jetzt lieber nichts - sonst hilft mir keiner mehr ;-)

> Ich verwende mittlerweile Eclipse-Mars.
> Du must die Header-files nichtnur im *.ino( oder im *.cpp) einfügen,
> sondern auch ausdrücklich über rechtsklick-Projekt  -> Import , damit
> sie wirksam werden!

ich habe im projekt rechtsklick - new - header file und new - source 
file gemacht - die files liegen im projekt ordner im gleichen wie die 
base und das reicht nicht?

ich werde es mal versuchen..
danke dir vorerst!

>
> Bleibe jetzt erstmal bei der Arduino-IDE mit ESP-Addon ..

ich bleib bei der xtensa - mach nur luna wegen den vielen die es nutzen 
damit die das dann probieren können.
mal sehen ;-) meld mich wieder.
lg
;-)

von r_u_d_i (Gast)


Lesenswert?

Mond schrieb:
> Du bist im falschen Forum, merkst Du das nicht?
> Oder hast Du da auch schon gepostet und kein Schwein meldet sich?
>
> Woran das wohl liegt?!

wegen fussball?

menesch bin ich der einzige der kein fussball schaut, kein alkohol 
trinkt und nicht raucher ist?

mann.. was ist fussball? im gegensatz zur technik?

;-)

...ja ich sag nichts mehr - sonst hilft mir keiner ;-)
..
ich werde warten ;-)

von r_u_d_i (Gast)


Lesenswert?

kettenrad schrieb:
> sondern auch ausdrücklich über rechtsklick-Projekt  -> Import , damit
> sie wirksam werden!


"Source is in the hierachy of destination"

von r_u_d_i (Gast)


Lesenswert?

das hab ich mal als ersten lauf angehangen
damit zumindest mal extra.o erstellt wird,
nichts passiert - es erscheint nicht mal in der Console ( EXTRA )
obwohl als ersten eintrag
1
..
2
..
3
..
4
..
5
6
7
#test ob es überhaupt was bringt : 
8
9
$(BUILD_DIR)/extra.o: extra.c extra.h 
10
  @echo "EXTRA $<"
11
  @$(CC) $(CFLAGS) -c $< -o $@
12
13
$(BUILD_DIR)/rboot-stage2a.o: rboot-stage2a.c rboot-private.h rboot.h
14
  @echo "CC $<"
15
  @$(CC) $(CFLAGS) -c $< -o $@
16
  
17
$(BUILD_DIR)/rboot-stage2a.elf: $(BUILD_DIR)/rboot-stage2a.o
18
  @echo "LD $@"
19
  @$(LD) -Trboot-stage2a.ld $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
20
21
$(BUILD_DIR)/rboot-hex2a.h: $(BUILD_DIR)/rboot-stage2a.elf
22
  @echo "FW $@"
23
  @$(ESPTOOL2) -quiet -header $< $@ .text
24
25
$(BUILD_DIR)/rboot.o: rboot.c rboot-private.h rboot.h $(BUILD_DIR)/rboot-hex2a.h
26
  @echo "CC $<"
27
  @$(CC) $(CFLAGS) -c $< -o $@
28
29
$(BUILD_DIR)/%.o: %.c %.h
30
  @echo "CC $<"
31
  @$(CC) $(CFLAGS) -c $< -o $@
32
33
$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
34
  @echo "LD $@"
35
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
36
37
$(FIRMW_DIR)/%.bin: $(BUILD_DIR)/%.elf
38
  @echo "FW $@"
39
  @$(ESPTOOL2) -quiet -bin -boot0 $< $@ .text .rodata
40
41
clean:
42
  @echo "RM $(BUILD_DIR) $(FIRMW_DIR)"
43
  @rm -rf $(BUILD_DIR)
44
  @rm -rf $(FIRMW_DIR)

von Dieter Graef (Gast)


Lesenswert?

Das extra muß noch in die all: zeile eingetragen werden
all: $(BUILD_DIR) $(FIRMW_DIR) $(BUILD_DIR)/extra.o 
$(FIRMW_DIR)/rboot.bin $(FIRMW_DIR)/testload1.bin 
$(FIRMW_DIR)/testload2.bin

m.f.G.
Dieter

von r_u_d_i (Gast)


Lesenswert?

Dieter Graef schrieb:
> Das extra muß noch in die all: zeile eingetragen werden
> all: $(BUILD_DIR) $(FIRMW_DIR) $(BUILD_DIR)/extra.o
> $(FIRMW_DIR)/rboot.bin $(FIRMW_DIR)/testload1.bin
> $(FIRMW_DIR)/testload2.bin
>
> m.f.G.
> Dieter

Hallo Dieter,
vielen Dank erstmal dass du dir die Zeit und Mühe genommen hast.
Also das hab ich jetzt mal so eingetragen.
Jetzt tut sich etwas:
No rule to make target 'build/extra.o', needed by 'all'

lg
rudi ;-)

von Dieter Graef (Gast)


Lesenswert?

ulkig
$(BUILD_DIR)/extra.o: extra.c extra.h
  @echo "EXTRA $<"
  @$(CC) $(CFLAGS) -c $< -o $@
kann auch raus das ist schon bei

$(BUILD_DIR)/%.o: %.c %.h
  @echo "CC $<"
  @$(CC) $(CFLAGS) -c $< -o $@

mit drin % ist für beliebige zeichenfolge

m.f.G.
Dieter

von Dieter Graef (Gast)


Lesenswert?

noch was
mit make -d wird make gesprächiger

m.f.G.
Dieter

von r_u_d_i (Gast)


Lesenswert?

Dieter Graef schrieb:
> ulkig
> $(BUILD_DIR)/extra.o: extra.c extra.h
>   @echo "EXTRA $<"
>   @$(CC) $(CFLAGS) -c $< -o $@
> kann auch raus das ist schon bei
>
> $(BUILD_DIR)/%.o: %.c %.h
>   @echo "CC $<"
>   @$(CC) $(CFLAGS) -c $< -o $@
>
> mit drin % ist für beliebige zeichenfolge
>
> m.f.G.
> Dieter

ich habe es jetzt wieder raus..
und deinen vorschlag mal abgeändert so:

anstatt
1
all: $(BUILD_DIR) $(FIRMW_DIR) $(BUILD_DIR)/extra.o $(FIRMW_DIR)/rboot.bin $(FIRMW_DIR)/testload1.bin $(FIRMW_DIR)/testload2.bin

dann mein extra mal zum schluss:
1
all: $(BUILD_DIR) $(FIRMW_DIR) $(FIRMW_DIR)/rboot.bin $(FIRMW_DIR)/testload1.bin $(FIRMW_DIR)/testload2.bin $(BUILD_DIR)/extra.o

jetzt wird es compiliert,
jetzt werde ich noch meine funktion aktivieren und mal sehen
ob er die jetzt findet.

danke erstmals! du hast mir sehr geholfen!

lg
rudi ;-)

ps
wie kann ich das handlen eines makefile besser verstehen, gibt es dazu 
eine script erklärung? - das ist nicht mein lieblingsthema - gebe es 
offen zu. aber ich denke ich habe da nachholbedarf.

jetzt probiere ich das mit der funktion noch...

von r_u_d_i (Gast)


Lesenswert?

er findet die "machnichts()" nicht -

es ist ein grauss ;-)

von Dieter Graef (Gast)


Lesenswert?

kann er ja nicht es it ja nur das Objektfile da aber das muß noch durch 
den linker .

$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
  @echo "LD $@"
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group 
-o $@
linkt aber nur ein einziges file.Besser ist es nach dem kompilieren zu 
archivieren und dann das archiv mit den objektdateien durch den linker 
zu schicken.


m.f.G.
Dieter

von r_u_d_i (Gast)


Lesenswert?

Dieter Graef schrieb:
> kann er ja nicht es it ja nur das Objektfile da aber das muß noch durch
> den linker .
>
> $(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
>   @echo "LD $@"
>   @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group
> -o $@
> linkt aber nur ein einziges file.Besser ist es nach dem kompilieren zu
> archivieren und dann das archiv mit den objektdateien durch den linker
> zu schicken.

ok danke Dieter! soweit verstanden.
gibt es denn keine andere möglichkeit?
wie könnte ich extra.o in dem makefile durch den linker jagen?
ich puzzle noch ;-)


aber ich habe es jetzt soweit abgeändert, dass ich das obj file erhalte.

ich habe diesen link gefunden und den werde ich mir mal bei tage 
durchlesen.: 
http://www.oreilly.de/german/freebooks/rlinux3ger/ch133.html

1
#
2
# Makefile for rBoot
3
# https://github.com/raburton/esp8266
4
#
5
6
#ESPTOOL2 ?= D:/Projects/esp8266/esptool2/Release/esptool2.exe
7
ESPTOOL2 ?=  C:/esptool2/esptool2.exe
8
9
# Base directory for the compiler
10
#XTENSA_TOOLS_ROOT ?= c:/Espressif/xtensa-lx106-elf/bin
11
12
#XTENSA_BINDIR ?= C:/xtensa-lx106-elf/bin
13
XTENSA_BINDIR ?= C:/Espressif/xtensa-lx106-elf/bin
14
15
CC := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
16
LD := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
17
18
CFLAGS    =  -Os -O3 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals  -D__ets__ -DICACHE_FLASH
19
LDFLAGS   = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static
20
LD_SCRIPT = eagle.app.v6.ld
21
22
#test zwei neue
23
#LD_SCRIPT_ROM0 = rom0.ld
24
#LD_SCRIPT_ROM1 = rom1.ld
25
26
27
BUILD_DIR = build
28
FIRMW_DIR = firmware
29
30
.SECONDARY:
31
32
all:  $(BUILD_DIR) $(FIRMW_DIR) $(FIRMW_DIR)/rboot.bin $(FIRMW_DIR)/testload1.bin $(FIRMW_DIR)/testload2.bin
33
34
$(BUILD_DIR):
35
  @mkdir -p $@
36
37
$(FIRMW_DIR):
38
  @mkdir -p $@
39
40
$(BUILD_DIR)/rboot-stage2a.o: rboot-stage2a.c rboot-private.h rboot.h
41
  @echo "CC $<"
42
  @$(CC) $(CFLAGS) -c $< -o $@
43
  
44
$(BUILD_DIR)/rboot-stage2a.elf: $(BUILD_DIR)/rboot-stage2a.o
45
  @echo "LD $@"
46
  @$(LD) -Trboot-stage2a.ld $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
47
48
$(BUILD_DIR)/rboot-hex2a.h: $(BUILD_DIR)/rboot-stage2a.elf
49
  @echo "FW $@"
50
  @$(ESPTOOL2) -quiet -header $< $@ .text
51
52
#jetzt wird das auch gemacht  
53
$(BUILD_DIR)/extra.o: extra.c extra.h  
54
  @echo ";-) $<"
55
  @$(CC) $(CFLAGS) -c $< -o $@
56
57
#eintrag am ende hinzugefuegt  
58
$(BUILD_DIR)/rboot.o:  rboot.c  rboot-private.h rboot.h $(BUILD_DIR)/rboot-hex2a.h $(BUILD_DIR)/extra.o   
59
  @echo "CC;-) $<"
60
  @$(CC) $(CFLAGS) -c  $< -o $@
61
62
$(BUILD_DIR)/%.o: %.c %.h
63
  @echo "CC $<"
64
  @$(CC) $(CFLAGS) -c $< -o $@
65
66
$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
67
  @echo "LD $@"
68
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
69
70
#neue
71
#  @$(LD) -T$(LD_SCRIPT_ROM0) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
72
#  @$(LD) -T$(LD_SCRIPT_ROM1) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group -o $@
73
74
75
$(FIRMW_DIR)/%.bin: $(BUILD_DIR)/%.elf
76
  @echo "FW $@"
77
  @$(ESPTOOL2) -quiet -bin -boot0 $< $@ .text .rodata
78
79
clean:
80
  @echo "RM $(BUILD_DIR) $(FIRMW_DIR)"
81
  @rm -rf $(BUILD_DIR)
82
  @rm -rf $(FIRMW_DIR)

von Peter C. (peter_c49)


Lesenswert?

hast du "deine" funktion auch registriert?
nur Makefile reicht nicht, lua muss deine funktion in das dictionary 
aufnehmen, gemaess lua c-bindings musst du sie via luaL_register 
registrieren.
zb in app/modules/*.c wird das auch so gemacht.
ev mal "lua c bindings" in die suchmaschine werfen.

von Dieter Graef (Gast)


Lesenswert?

r_u_d_i schrieb
>gibt es denn keine andere möglichkeit?
ja die zu verlinkenden Dateien in eine Variable schreiben
probier mal:

#
# Makefile for rBoot
# https://github.com/raburton/esp8266
#

#ESPTOOL2 ?= D:/Projects/esp8266/esptool2/Release/esptool2.exe
ESPTOOL2 ?=  C:/esptool2/esptool2.exe
#hier kommen die obj dateien rein

RBOOTOBJ =


# Base directory for the compiler
#XTENSA_TOOLS_ROOT ?= c:/Espressif/xtensa-lx106-elf/bin

#XTENSA_BINDIR ?= C:/xtensa-lx106-elf/bin
XTENSA_BINDIR ?= C:/Espressif/xtensa-lx106-elf/bin

CC := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
LD := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)

CFLAGS    =  -Os -O3 -Wpointer-arith -Wundef -Werror -Wl,-EL 
-fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals 
-D__ets__ -DICACHE_FLASH
LDFLAGS   = -nostdlib -Wl,--no-check-sections -u call_user_start 
-Wl,-static
LD_SCRIPT = eagle.app.v6.ld

#test zwei neue
#LD_SCRIPT_ROM0 = rom0.ld
#LD_SCRIPT_ROM1 = rom1.ld


BUILD_DIR = build
FIRMW_DIR = firmware

.SECONDARY:

all:  $(BUILD_DIR) $(FIRMW_DIR) $(FIRMW_DIR)/rboot.bin 
$(FIRMW_DIR)/testload1.bin $(FIRMW_DIR)/testload2.bin

$(BUILD_DIR):
  @mkdir -p $@

$(FIRMW_DIR):
  @mkdir -p $@

$(BUILD_DIR)/rboot-stage2a.o: rboot-stage2a.c rboot-private.h rboot.h
  @echo "CC $<"
  @$(CC) $(CFLAGS) -c $< -o $@

$(BUILD_DIR)/rboot-stage2a.elf: $(BUILD_DIR)/rboot-stage2a.o
  @echo "LD $@"
  @$(LD) -Trboot-stage2a.ld $(LDFLAGS) -Wl,--start-group $^ 
-Wl,--end-group -o $@

$(BUILD_DIR)/rboot-hex2a.h: $(BUILD_DIR)/rboot-stage2a.elf
  @echo "FW $@"
  @$(ESPTOOL2) -quiet -header $< $@ .text

#jetzt wird das auch gemacht
$(BUILD_DIR)/extra.o: extra.c extra.h
  @echo ";-) $<"
  @$(CC) $(CFLAGS) -c $< -o $@
  RBOOTOBJ += $(BUILD_DIR)/extra.o

#eintrag am ende hinzugefuegt
$(BUILD_DIR)/rboot.o:  rboot.c  rboot-private.h rboot.h 
$(BUILD_DIR)/rboot-hex2a.h $(BUILD_DIR)/extra.o
  @echo "CC;-) $<"
  @$(CC) $(CFLAGS) -c  $< -o $@
  RBOOTOBJ += $(BUILD_DIR)/rboot.o

$(BUILD_DIR)/%.o: %.c %.h
  @echo "CC $<"
  @$(CC) $(CFLAGS) -c $< -o $@

#damit nur rboot.elf das extra bekommt
$(BUILD_DIR)/rboot.elf: $(BUILD_DIR)/rboot.o
  @echo "LD $@"
  @echo "Linke $(RBOOTOBJ)"
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group 
-o $(RBOOTOBJ)

$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
  @echo "LD $@"
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group 
-o $@

#neue
#  @$(LD) -T$(LD_SCRIPT_ROM0) $(LDFLAGS) -Wl,--start-group $^ 
-Wl,--end-group -o $@
#  @$(LD) -T$(LD_SCRIPT_ROM1) $(LDFLAGS) -Wl,--start-group $^ 
-Wl,--end-group -o $@


$(FIRMW_DIR)/%.bin: $(BUILD_DIR)/%.elf
  @echo "FW $@"
  @$(ESPTOOL2) -quiet -bin -boot0 $< $@ .text .rodata

clean:
  @echo "RM $(BUILD_DIR) $(FIRMW_DIR)"
  @rm -rf $(BUILD_DIR)
  @rm -rf $(FIRMW_DIR)

von kettenrad (Gast)


Lesenswert?

@Peter C. (peter_c49)

Danke für den Hinweis!
LUA und LUNA kann man schonmal verwechseln.
(Dennoch, nochmals danke, das Du hier mitliest, - sind ja sonst nicht 
allzuviele ..)

von r_u_d_i (Gast)


Lesenswert?

Hallo Dieter & kettenrad,

ok - ich komme der Sache schon näher; es bleibt nicht aus, in den How To 
zu lesen, wie ein Makefile aufgebaut ist, ein paar Sachen habe ich mir 
notiert wie TAB und keine Leerzeichen bei Befehlen.

ich habe kurz Dieters Ergänzung probiert und hatte eine Fehlermeldung: 
"create prozess.. angegebene Datei nicht gefunden"

ich werde jetzt noch mal Schritt für Schritt durchgehen, ggfs das 
Makefile neu anlegen. Prinzipiel habe ich es in Luna etwas verstanden, 
wie die Make Abschnitte funktionieren und die Abhängigkeiten aufgebaut 
werden müssen,
da habe ich aber noch Nachholbedarf und lese in dem openbook nach.

einen neuen Eintrag als Abschnitt in der Makefile auf der rechten Seite 
der IDE "dieter"
macht dann also im Hintergrund : make dieter
und ruft das Makefile und den Abschnitt dieter: auf.
Ausgabe:

Hallo rudi
rudi 2
Hallo dieter
dieter 2

1
rudi:
2
       @echo "Hallo rudi"
3
       @echo "rudi 2"
4
5
dieter: rudi
6
        @echo "Hallo dieter"
7
        @echo "dieter 2"
8
9
kettenrad: 
10
        @echo "Hallo Dieter"
11
        @echo "kettenrad 2"
12
        mingw32-make.exe -f c:/...workspace/rboot/Makefile dieter

Soweit verstanden. Ich denke, dass es noch an der einen oder anderen 
Variable hängt, ich werde da jetzt intensiver ran gehen, wollte nur kurz 
Bescheid geben, soweit verstanden.

Was ich aber nicht verstehe ist, dass meine funtion in der extra.c nicht 
gefunden wird, obwohl ich den header extra.h includiere. Dachte immer, 
das wäre ausreichend;

Da im rboot Projekt noch andere Abhängigleiten exisitieren und auch ein 
esptool2 eine header datei erzeugt, ist der Ablauf etwas komplexer,
denke, dass es an einer bestimmten Abhängigkeit lliegt / Reihenfolge 
eingehalten werden muss. Ich werde daher das noch mal auflegen.

Danke bisher an euch beiden und auch an Peter, der es gut gemeint hatte.
Mal sehen ob ich das hinbekomme, ich denke es liegt an den vielen 
Möglichkeiten und Vielfalt von allen möglichen Variablen.

Und dazu kommt, dass das Projekt immer wieder refresht werden muss, 
komisch ;-) - vieleicht ist das auch ein kleiner bug in luna,
mal sehen.

lg
rudi ;-)

von r_u_d_i (Gast)


Lesenswert?

copy & paste fehler, Hallo Dieter anstatt Hallo kettenrad
nochmal:

1
rudi:
2
       @echo "Hallo rudi"
3
       @echo "rudi 2"
4
5
dieter: rudi
6
        @echo "Hallo dieter"
7
        @echo "dieter 2"
8
9
kettenrad: 
10
        @echo "Hallo kettenrad"
11
        @echo "kettenrad 2"
12
        mingw32-make.exe -f c:/...workspace/rboot/Makefile dieter

make dieter

Ausgabe:

Hallo rudi
rudi 2
Hallo dieter
dieter 2


teste Abhänigkeit:

make kettenrad


Ausgabe

Hallo kettenrad
kettenrad 2
Hallo rudi
rudi 2
Hallo dieter
dieter 2


soweit mal verstanden.
Ich ergänze hier dann.

lg
rudi ;-)

von r_u_d_i (Gast)


Lesenswert?

@dieter
1
#damit nur rboot.elf das extra bekommt
2
$(BUILD_DIR)/rboot.elf: $(BUILD_DIR)/rboot.o
3
  @echo "LD $@"
4
  @echo "Linke $(RBOOTOBJ)"
5
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group 
6
-o $(RBOOTOBJ)

habe ich etwas abgeändert
ich hab mal die neue Variable RBOOTOBJ vorerst weglassen, da geht noch 
irgendetwas etwas ab oder ein zeichen oder ein path oder eine variable

damit rboot.elf das extra bekommt habe ich das extra daher noch 
zusätzlich mit der "Abhängigkeit" bzw "Vorbedingung" 
$(BUILD_DIR)/extra.o
explizit ergänzt.
1
#damit nur rboot.elf das extra bekommt
2
$(BUILD_DIR)/rboot.elf: $(BUILD_DIR)/rboot.o $(BUILD_DIR)/extra.o 
3
  @echo "LD $@"
4
  @echo "Linke $(RBOOTOBJ)"
5
  @$(LD) -T$(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $^ -Wl,--end-group

jetzt compiliert es ohne warnung und fehler.

hey! danke für den ansporn!

ich sehe es ein, da muss ich noch gewaltig nachlesen,
es nutzt der beste projekt code nichts, wenn es am makefile scheitert.
das hab ich auch bei xtensa gesehen, anscheinend ist in der ide aber ein 
automatismus eingebaut, denn extra dagegen linken tue ich nicht darin.

ich denke - jetzt hab ich das nötigste um da weiter dran arbeiten zu 
können und es LUNA conform zu bringen.

danke!

lg rudi ;-)

Mond schrieb:
> Du bist im falschen Forum, merkst Du das nicht?

nein nein - bin schon im richtigen und einzig weiterführendem.

;-)

von Mond (Gast)


Lesenswert?

Dann stelle den Code auch wie versprochen zur Verfügung.

Oder läuft das wie im letzten Jahr, da hatte ich esp Module bei dir 
bestellt die nie ankamen..;-((((

von r_u_d_i (Gast)


Lesenswert?

Mond schrieb:

> Dann stelle den Code auch wie versprochen zur Verfügung.

oha - der Tonfall ist mir sehr bekannt!

guckst du hier,

base:
https://github.com/raburton/esp8266

da esp8266 nur aes128 hw funktionen hat, für die es keine doku gibt
http://bbs.espressif.com/viewtopic.php?f=49&t=965#p3299

meine komplette aes256 ergänzung:
http://bbs.espressif.com/viewtopic.php?f=49&t=965#p3300

das lerning by doing example makefile aus diesem post mit dem extra.c 
extra.h und der machnichts() funktion steht in dem post mit der lösung 
dazu.

so jetzt geh hausieren damit von forum zu forum -
und lass dir die lorbeeren aufsetzen.

wenn du in erklärungsnot kommst, wie was funktioniert,
kannst ja hier im forum nachfragen, aber bedenke -
nicht alle lesen mit.


>
> Oder läuft das wie im letzten Jahr, da hatte ich esp Module bei dir
> bestellt die nie ankamen..;-((((

das sind schwere anschuldigungen und fast rufmord "mond"..

..wenn du die esp module bezahlt hast und nie bei dir angekommen sind, 
warum meldest du dich erst jetzt hinter vorgehaltener hand?

wenn du mir deinen hübschen namen nennst, werde ich nachsehen,
ob du welche bestellt und bezahlt hattest. wenn es meine unachtsamkeit
war, dann wirst du die module bekommen, die du bezahlt hast, und als 
entschädiging sicher auch etwas mehr.

ich kann mir nur sehr schlecht vorstellen, dass du welche bezahlt hast
und ich dir keine gesendet hätte. das lässt sich aber alles leicht 
nachprüfen, wenn du mir deinen namen nennst, denn wie du weisst,
habe ich alle sendungen nur gegen nachweis versandt!

was du mit dem src code jetzt anstellen kannst weiss ich nicht.
sicher nichts - denn zum thema des threads konntest du nichts beitragen,
nur rumnöllen, anschwärzen und stänkern.

das übliche halt.

die posting frage wurde gelöst, dank an dieter!

solved.

lg
rudi ;-)

von r_u_d_i (Gast)


Lesenswert?

@mond

solltest du auf den sinn kommen und dich fragen,
warum der ganze aes kremple in der rboot.c gelandet ist, dass hat den 
grund, weil zu der zeit eben das makefile problem exist war.

dank jetziger situation, um funktionen in extra c und h files 
auszulagern und dagegen zu linken etc, brauchst du nur die funktionen in 
ein extra c und die typen in ein h file transmieren.

dazu steht bereits im rboot.c und rboot.h absatz marken drin, die dir es 
erleichtern, das so umzusetzen und du brauchst keine funktionen 
rausfischen.

solltest du damit nicht klar kommen, so frag in einem neuem thread nach,
man hilft dir ganz bestimmt weiter - so oder so.

..

von r_u_d_i (Gast)


Lesenswert?

@mond
noch ein tip:
oder du baust die aes256 lib ein.
Beitrag "ESP8266 SD Card / AES256"

und lerne endlich c

..

von kettenrad (Gast)


Lesenswert?

http://bbs.espressif.com/viewtopic.php?f=49&t=965#p3300

--  das schlägt dem Fass den Boden in's Gesicht!   :-)

Ich habe meine Installationen zerschossen bei dem Versuch.
Back to start ..

von kettenrad (Gast)


Lesenswert?

-- Ähm, bevor mich jemand falsch interpretiert:
  rudi hats geschafft, - ich habe bei ähnlichen Versuchen auf meinem 
Windows XP(32-bit) pure Unordnung in den Umgebungsvariablen erzeugt und 
mir alle meine Änderungen "gemerkt" --> dachte ich ..

von Mond (Gast)


Lesenswert?

Also mit dem Source Code kann und will ich definitiv nichts "anstellen", 
der geht mir am Popo vorbei.
Ich habe keine Module bezahlt, stand aber auf der Liste, habe dennoch 
nie wieder was gehört, Du schuldest mir also NICHTS!

Erschrecke Dich nicht wegen der Groß/Kleinschreibung und den 
Satzzeichen, dass ist normal so und führt dazu das der Text schneller 
und übersichtlicher lesbar wird.

Bye...

von r_u_d_i (Gast)


Lesenswert?

Mond schrieb:

> Erschrecke Dich nicht wegen der Groß/Kleinschreibung und den
> Satzzeichen, dass ist normal so und führt dazu das der Text schneller
> und übersichtlicher lesbar wird.

rechtschreibung, grammatik und satzbau musst du aber noch üben

> Satzzeichen, dass ist normal so und führt dazu das der Text
.................^^.............................^

> und führt dazu das der
...................^

es mus lauten:

> Satzzeichen, das ist normal so und führt dazu, dass der Text schneller

btw

dass das normal ist glaube ich dir ebenso nicht - denn ich stolpere 
drüber.

;-)

der etwas "bessere klugscheisser"

von r_u_d_i (Gast)


Lesenswert?

sehr hilfreich:

http://www.gnu.org/software/make/manual/make.html
http://www.ijon.de/comp/tutorials/makefile.html



was mich wundert, in keinem der c bücher die ich habe, steht etwas von 
make und Makefile drin.


@Jürgen Wolf
das wäre ein sehr gutes und sinnvolles ergänzungskapitel!

beim stöbern hab ich von o'relly noch ein älteres linux buch gefunden, 
da ist wenigstens etwas aufgeführt. auch im alten suse 6.3 / 7.0 
handbuch.

lg
;-)

von r_u_d_i (Gast)


Lesenswert?


von Mond (Gast)


Lesenswert?

Pirelli,du besserer Klugscheißer...

von r_u_d_i (Gast)


Lesenswert?

rboot
# XTENSA_BINDIR needs trailing slash

die makefiles wurden im git überarbeitet.
https://github.com/raburton/esp8266

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

r_u_d_i schrieb:
> kettenrad schrieb:
>> Bleibe jetzt erstmal bei der Arduino-IDE mit ESP-Addon ..
> ich bleib bei der xtensa - mach nur luna wegen den vielen die es nutzen
1
             | Windows | Linux
2
xtensa       |  Nein   |  Ja
3
Arduino      |   Ja    |   ?
4
Luna         |   Ja    |   ?
5
Code::Blocks |   Ja    |   ?
6
…?           |    …    |   …
Ich hoffe, ich komme drum rum, noch ein Linux aufzusetzen, daher die 
Frage. Aktuell bin ich mit der Arduino-IDE am schnellsten.

ESP8266-Source-Level-Debugging wäre für mich ein Grund für Linux. Aber 
das gibt es ja leider nicht, sondern nur JTAG-Flashen.

Aber Flashen sollte auch mit 2962963bd (1.2%) oder 2000000bd (0%) über 
PL2303 oder FT232RL gehen. BTW: 6153846bd (2.6%) mit PL2303 ist 
scheinbar das Maximum mit weniger als 3% Abweichung, wenn ich das 
richtig sehe.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.