Forum: Mikrocontroller und Digitale Elektronik Bootloader für IOIO ändern


von Christian (Gast)


Lesenswert?

Hallo,

Ich versuche den Bootloader der IOIO Platine zu modifizieren. (siehe 
https://github.com/ytai/ioio/wiki)
Anstelle des verwendeten Oszillators will ich einen Quarz am secondary 
oscillator input benutzen. Ich vermute, dass man dazu nur ein paar 
Software Schalter umstellen muss.

Bisher ist es mir aber noch nicht gelungen die Firmware, wie sie bei 
github verfügbar ist zu kompilieren.

Ich habe:
- das git-Verzeichnis runtergeladen (https://github.com/ytai/ioio)
- mplab installiert
- xc16 installiert
- die zugehörigen Legacy Peripheral Libraries installiert.

Beim compilieren (firmware\bootloader\main.c) bekomme ich folgende 
Fehlermeldung:
1
"C:\Program Files (x86)\Microchip\xc16\v1.26\bin\xc16-gcc.exe"   -o dist/SPRK0020/production/bootloader.production.elf  build/SPRK0020/production/auth.o build/SPRK0020/production/dumpsys.o build/SPRK0020/production/version.o build/SPRK0020/production/xml.o build/SPRK0020/production/_ext/2030206122/flash.o build/SPRK0020/production/_ext/2030206122/ioio_file.o build/SPRK0020/production/_ext/1270477542/logging.o build/SPRK0020/production/_ext/1537399865/uart2.o build/SPRK0020/production/bootloader_conn.o build/SPRK0020/production/main.o build/SPRK0020/production/usb_int.o      -mcpu=24FJ256GB206        -omf=elf -Wl,--local-stack,--defsym=__MPLAB_BUILD=1,,--script="..\common\dummy.gld",--heap=512,--check-sections,--data-init,--pack-data,--no-handles,--isr,--gc-sections,--fill-upper=0,--stackguard=16,--library=adb,--library=usb,--library-path="../libadb/dist/PIC24FJ256GB206/production",--library-path="../libusb/dist/PIC24FJ256GB206_OTG_ADB/production",--no-force-link,--smart-io,-Map=".map",--report-mem,-Tboot_IOIO0030.gld 
2
c:\program files (x86)\microchip\xc16\v1.26\bin\bin\..\bin/elf-ld.exe: cannot find -ladb
3
make[2]: *** [dist/SPRK0020/production/bootloader.production.hex] Error 255

Ich kann mit der Fehlermeldung leider nichts anfangen und auch bei 
google konnte ich dazu nichts finden.

Weiß jemand weiter?

Viele Grüße,
Christian

von Stefan F. (Gast)


Lesenswert?

Er findet eine Library mit dem Namen "adb" nicht.

Suche mal nach einer Datei, die libadb.so heisst. Deren Pfad musst du 
dem Compiler mitteilen.

http://stackoverflow.com/questions/2726993/g-how-to-specify-preference-of-library-path

ADB kommt mir bekannt vor. Ist das nicht der Name von dem Debugging-Tool 
aus dem Android SDK?

von Christian (Gast)


Lesenswert?

Es gibt ein Projektverzeichnis "libadb". Das habe ich geöffnet und 
kompiliert. Jetzt gibt es ein Unterverzeichnis mit der Datei "adb.o", 
libadb.so gibt es aber nicht.

Kann das auch die Datei sein, die ich gefunden habe? Bevor ich jetzt 
ewig lang etwas probiere, das nicht geht...

von Stefan F. (Gast)


Lesenswert?

> Kann das auch die Datei sein, die ich gefunden habe?

Ja kann gut sein. Viele Libraries haben "lib" als Prefix im Namen, aber 
nicht alle. Das System dahinter habe ich noch nicht verstanden.

*.o sind die compilierten *.c Dateien.
*.so sind Libraries, die zur Laufzeit nachgeladen werden können. Also 
entsprechend *.dll bei Windows Programmen.

von Christian (Gast)


Lesenswert?

Ich habe jetzt in den Projekteinstellungen die Library Projects 
hinzugefügt. Da die Anleitung für Linux ausgelegt war und ich Windows 
nutze habe ich versucht entsprechend anzupassen. Ist mein Weg richtig?

Jedenfalls kompiliert es jetzt. Etwas Kopfzerbrechen hat mir noch eine 
lusb bereitet, bei der ich (anscheinend?) noch die korrekte 
Konfiguration auswählen musste.

Danke!

von Stefan F. (Gast)


Lesenswert?

>  Ist mein Weg richtig?
Sorry, dazu hat meine Glaskugel keine Meinung und im Horoskop steht 
nichts hilfreiches dazu. Woher soll ich genau wissen, was da bei Dir vor 
geht?


> Jedenfalls kompiliert es jetzt.
Was soll dann die Frage?

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.