Autoquad mit freiem gcc kompilieren

meister

Erfahrener Benutzer
#1
Hi,
habe noch probleme mit dem Makefile für die freie gcc umgebungen (gcc-arm-none-eabi-4_8-2014q3), die änderungen habe ich mal hoch geladen: http://www.multixmedia.org/test/aq-make-free-gcc.tgz

leider hab ich noch probleme mit sachen wie calloc und sscanf, vielleicht kann mir da jemand weiterhelfen oder mag etwas weiter dran basteln :)

Einfach svn auschecken und in onboard ordner das tgz entpacken, danach kann man mit make... kompilieren:

Code:
# svn checkout http://autoquad.googlecode.com/svn/trunk/ autoquad
# cd autoquad/onboard/

# wget http://www.multixmedia.org/test/aq-make-free-gcc.tgz
# tar xzvpf aq-make-free-gcc.tgz

# make BOARD_VER=8 BOARD_REV=6 all
ergebnis liegt dann dort:

Code:
arm-none-eabi-objcopy -O ihex   build/autoquad.elf build/autoquad.hex
arm-none-eabi-objcopy -O binary build/autoquad.elf build/autoquad.bin
Der code läuft auf dem board und lässt sich auch mit der qGroundstation verbinden, allerdings gibt es halt noch kleine fehler,
z.b. wenn ein sscanf im code aufgerufen wird bleibt die firmware stehen.

!!!! ACHTUNG: bitte nur ohne motoren/propeller antesten !!!!

Gruß,
Olli

PS: villeicht kann es jemand auch hier nochmal posten:

http://forum.autoquad.org/viewtopic.php?f=31&t=44

habe dort keinen account.
 

viennaTom

Neuer Benutzer
#2
Gratulation und bestimmt ein ganzes Stück Arbeit.

Ich hatte beim ESC32 auch Probleme mit der float Implementierung von sprintf und sscanf - dafür gibt es in der Rowley Umgebung offenbar eigene Object Files. Ich habe mir eine einfache f2asc Funktion geschrieben und sscanf mit strings und Konvertierung zu float verwendet.

Liebe Grüße
Tom
 

mad_doc

Neuer Benutzer
#3
Hallo Olli,
vielen Dank für all die Mühe, die Sourcen für die freie gcc Umgebung zu portieren. Ich konnte Deine Änderungen soeben unter Debian Jessie kompilieren. Ich musst allerdings die erste Zeile des Makefiles ändern:

BUILD_TYPE ?= Release
#BOARD_TYPE ?= 1

Ich konnte mir grep keinen Hinweis auf BOARD_TYPE finden.

Hast Du mit den Hinweisen von Tom noch weitere Fortschritte gemacht, die Du noch nicht gepostet hast?

Viele Grüße

Karl-Heinz
 
Zuletzt bearbeitet:

meister

Erfahrener Benutzer
#4
Sorry, war die letzte zeit im stress, nun gehts wieder :)

BOARD_TYPE = 0 (org. Autoquad-Boards)
BOARD_TYPE = 1 (OpenFC-Boards)

Aktuelle Versionliegt hier:
https://github.com/multigcs/quadfork

Hab ein paar sachen erstmal wieder zurück bauen müssen damit es mit dem M4 und internen ESC's funktioniert.
Eine Default-Parameter Datei für den Ladybird-M4-v2 und PID's liegt auch bei.

Gruß,
Olli

PS: achso:

sh ./dockerbuild.sh BOARD_TYPE=0 BOARD_VER=8 BOARD_REV=6 all dfu

so lässt sich die Firmware für den M4 in einem Docker-Container bauen, hat den Vorteil das man bis auch docker keine abhängigkeiten auf seinem Linux-System benötigt.
Kompiler und Flash-Tool fird in einer art Virtuellen umgebung ausgeführt.
 
Zuletzt bearbeitet:

mad_doc

Neuer Benutzer
#5
Hallo Olli,

super. Das mit der beruflichen Belastung kenne ich. Ich drücke mich gerade vor der Vorbereitung eines Vortrags, den ich morgen halten muss, und lasse mich gern von jeder Email ablenken :)

Ich schau mir den Code ab übermorgen wieder genauer an. Bleib an der Portieren unbedingt dran! Ich finde es Spitze, nur mit freien Werkzeugen arbeiten zu können. Es geht gar nicht um die Kosten für die kommerzielle Lösung, es geht einfach um die Freiheit :) Es wäre super, wenn Du auch sprintf und sscanf noch lösen könntest.

Viele Grüße

Karl-Heinz

PS: unterscheiden sich die M4-beta und M4-V2 Parameter für den Ladybird??
 

meister

Erfahrener Benutzer
#6
sprintf geht glaube ich sogar, was mit sscanf ist muss ich noch rausfinden, finde ich aber eher nebensächlich, konnt man bisher umgehen :)

Ob es unterschiede zum beta gibt weis ich leider nicht, ich denke aber zumindest die PID-Werte kann man übernehmen, ob ansonsten alle Ports und so passen is ne andere frage.

Gruß,
Olli


PS: danke das noch jemand mitliest, ganz schön ruig ums thema AQ geworden
 

mad_doc

Neuer Benutzer
#7
Hallo Olli,

mir fällt es einfach schwer, aus den vielen Threadbeiträgen für AQ die für meine Hardware Version passenden Antworten rauszusuchen. Leider ist meine Zeit auch sehr begrenzt. Wenn man da nicht solange lesen kann, bis man eine Lösung hat, dann fängt man wenig später wieder von vorne an. Geht zumindest mir so. Hier liegen ein AQ M4 beta, AQ M4 V2 und 2 Erweiterungsboards von Jörg rum. Ich komme aber nicht dazu einen Quad damit aufzubauen. Man muss einfach viel zu viel beachten. Ich denke, diese hohe Anfangshürde ist der Grund, warum so wenig mitlesen. Dabei ist meiner Meinung nach AQ schon cool. Wenn ich da im Openpilot Revolution Thread mit lese, wie aufwendig es ist, GPS zu installieren... dabei würde bei AQ alles schon so toll funktionieren.

Viele Grüße

Karl-Heinz
 

meister

Erfahrener Benutzer
#8
so, hier auch mal ein fork vom qgroundcontrol_aq, falls es jemand unter debian kompilieren will.

im original fehlen 2 mavlink defines (?? wie kann man sowas eigentlich kompilieren ? egal mit welchem system ???)

und dazu gibt es ein build-script das alle abhängigkeiten unter debian-jessie installiert und das ganze funktionierend kompiliert.

https://github.com/multigcs/qgroundcontrol_aq

Gruß,
Olli
 

meister

Erfahrener Benutzer
#10
Juhuuu, bin heut mal dazu gekommen das Follow-Me (Click&GO) das ich in Quadfork eingebaut habe zu testen,

L Ä U F T

:)

Aber Vorsicht !
Funktioniert nicht mit der AQ-App oder qgroundgontrol, ich hab das Protokoll so umgesetzt wie es auch APM/PIX macht,
also wenn dann sollte man es mit deren Apps versuchen.
Ich selber nutze MultiGCS.

Gruß,
Olli

PS: versuch am Wochenende mal en Video dazu zu machen (wenns wetter passt)
 
FPV1

Banggood

Oben Unten