eigenes Programm für fritzbox bauen

Vlad_Tepesch

Neuer User
Mitglied seit
2 Jun 2007
Beiträge
60
Punkte für Reaktionen
0
Punkte
0
Hi,
Ich würde gern ein eigenes Programm für die Fritzbox schreiben.
Ich benutze das freetz-linux zum bauen
Kann mir vielleicht jemand ein simples Makefile als starting point für eine eigene Anwendung posten?
wäre nett, wenn das außerdem die anbindung der libusb-1 schon enthalten sein würde.
Ich bin was die gcc toolchains anbelangt nicht so firm (bisher hab ich das immer die IDE machen lassen).

Was ich vorhab:
ICh möchte eine RFM12-Netzwerkbrücke erstellen um die Daten von Funksensoren im Netzwerk verfügbar zu machen..
dazu will ich einen µC (atmega8) mit SW-USB und RFM12 modul an die Fritzbox hängen.

Auf dieser soll ein Programm laufen, dass eingeegangene Funkpakete per UDP Broadcast verschickt und umgekehrt auch auf Pakete lauscht und diese über den Funksender ausgibt.

Die Funk-Hardware läuft schon. Das USB-Gerät hab ich an Windows am laufen und ein Funksensor verrichtet auch schon seine Arbeit, so dass die Funkstrecke schon funktioniert.
Jetzt kommt der Teil, wo ich hoffe, dass mir hier jemand den Einstieg erleichtern kann.

MfG
Vlad
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,968
Punkte für Reaktionen
26
Punkte
48
Ich würde gern ein eigenes Programm für die Fritzbox schreiben.
... Kann mir vielleicht jemand ein simples Makefile als starting point für eine eigene Anwendung posten?
Hast Du schon den source code für dein Programm?
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
Es klingt nicht danach, und dann ist wohl das Makefile der kleinste Teil des Problems.

Jedes der bereits vorhandenen Pakete kommt mit einem Makefile, das man als Vorlage verwenden kann.
 

Vlad_Tepesch

Neuer User
Mitglied seit
2 Jun 2007
Beiträge
60
Punkte für Reaktionen
0
Punkte
0
Hast Du schon den source code für dein Programm?

Halb.
Ich hab ein windowsprogramm, was die libusb benutzt, um mit dem µC zu reden.
Der Socket-Teil fehlt noch.

Es klingt nicht danach, und dann ist wohl das Makefile der kleinste Teil des Problems.
naja, mit sockets hab ich schon hin und wieder gearbeitet (wenn auch nicht unter linux), aber das ist ein anderes Problem.
Mir gehts jetzt tatsächlich erst mal darum, ein funktionsfähiges Programm zu erstellen, ohne mich Tagelang damit allein beschäftigen zu müssen, da dachte ich, da kann ich auf das zurückgreifen, was hier andere wahrscheinlich schon hunderte Male gemacht haben und mich auf mein eigentliches Problem konzentrieren.
Jedes der bereits vorhandenen Pakete kommt mit einem Makefile, das man als Vorlage verwenden kann.
naja, ich wollte ein möglichst kleines, von dem package-system unabhängiges.
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,968
Punkte für Reaktionen
26
Punkte
48

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,787
Punkte für Reaktionen
12
Punkte
38
Je nachdem wie kompliziert dein Programm ist reicht auch ein einfacher Aufrufe des Compilers?
Code:
[email protected]:~/fritzbox/freetz/trunk$ toolchain/target/bin/mips-linux-gcc -o hello hello-world.c
[email protected]:~/fritzbox/freetz/trunk$ file hello
hello: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, with unknown capability 0x10000 = 0x70403, not stripped
Oder hast du ein configure Skript? Mehrere Code-Files?

Gruß
Oliver
 

Vlad_Tepesch

Neuer User
Mitglied seit
2 Jun 2007
Beiträge
60
Punkte für Reaktionen
0
Punkte
0
OK, hier ein kleines und unabhängiges Paket, als Beispiel: klick

Ich meinte ein vom Freetz-Paket-System unabhängiges Makefile, was die Toolchain benutzt.

vor allem, was für compiler/assembler/linker flags nötig sind, für meine fritzbox 7170 (MIPS OHIO MIPS 4KEc V4.8)

hasb jetzt mal mit folgendem Makefiel probiert, was ich aus einem kleinen Arm-Testprojekt gneommen habe.
Das programm scheint auch zu laufen, allerdings wundert mich, dass ich kein -mcpu spezifierien muss.

Auch weiß ich leider nicht, wie ich die dynamische Lib benutzen kann. Die libs bisheriger µC Projekte waren immer h und c files die einfach mitkompiliert und gelinkt wurden.

Code:
TOOLCHAINBASE=/home/freetz/freetz-trunk/toolchain/build/mipsel_gcc-4.5.3_uClibc-0.9.29/mipsel-linux-uclibc
INCLUDEPATH=$(TOOLCHAINBASE)/include
LIBPATH=$(TOOLCHAINBASE)/lib
BINPATH=$(TOOLCHAINBASE)/bin
TOOLPREFIX=/mipsel-linux-

###############################################################
#####
##### Compiler, Linker and Tools
#####
###############################################################

CC=$(BINPATH)$(TOOLPREFIX)gcc
CPP=$(BINPATH)$(TOOLPREFIX)g++
AS=$(BINPATH)$(TOOLPREFIX)as
LD=$(BINPATH)$(TOOLPREFIX)gcc
OC=$(BINPATH)$(TOOLPREFIX)objcopy
OD=$(BINPATH)$(TOOLPREFIX)objdump

CPUFLAGS=
OPTFLAGS=-Os
#OPTFLAGS=

CFLAGS=$(CPUFLAGS) -c -Wall -I$(INCLUDEPATH)
ASFLAGS=$(CPUFLAGS) -D --gstabs
ROMLDFLAGS=-lc -s -Wl,-warn-common
THUMBFLAGS=

PROJECT=helloworld

all: $(PROJECT)

$(PROJECT): main.o
	$(LD) $(ROMLDFLAGS) -o $(PROJECT) main.o

main.o: main.c
	$(CC) $(CFLAGS) $(THUMBFLAGS) -L $(LIBPATH) -o main.o main.c

clean:
	$(RM) -v $(PROJECT) *.o *.elf *.bin *.hex *~

### EOF
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,968
Punkte für Reaktionen
26
Punkte
48

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
vor allem, was für compiler/assembler/linker flags nötig sind, für meine fritzbox 7170
Gar keine, siehe das Beispiel von Oliver.
Das programm scheint auch zu laufen, allerdings wundert mich, dass ich kein -mcpu spezifierien muss.
Der verwendete Compiler erzeugt sowieso Code, den die CPU ausführen kann.
Auch weiß ich leider nicht, wie ich die dynamische Lib benutzen kann.
Einfach an der Kommandozeile angeben. In diesem Fall -lusb.
[/QUOTE]
 

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via