Hallo, ich bin jetzt am Arm Assembler lernen. Die frage ist eher algemein zum GNU Assembler. Ich moechte bestimmte Teile des Programs auf bestimmte Adressen im Flash ablegen. Ich habe jetzt die Dokus zum GNU AS und GNU LD (linker) durchgelesen und es so verstanden habe: man soll in der Input-Datei das Program mithilfe der Direktive ".section" aufteilen. Z.B .... .section teil1 ldr r0, =0x1 .section teil2 ldr r1, =0x2 .... Dann aber beim linken soll man im Linkerscript festsetzen, welche Sektion auf welche Adresse gehoert. So, wie ich das beschriebn habe, geht leider nicht. Wenn ich die Datei Kompiliere, bekomme ich eine leere Object-Datei. Das heisst, wenn ich die Datei mit "objdump -hd" disassembliere, ist da nur der Section-Header zu sehen und kein Code. Wenn ich die ".section"s aus der Quelldatei entferne, ist das Code wohl in der Object-Datei, aber nicht auf die richtigen Stellen beim linken zu kriegen. Hat jemand einen Tip fuer mich? mfg, r.
@Jörg Wunsch Hallo, vielen Dank fuer die Antwort. Als ich was nachvollziehbares posten wollte, habe ich bemerkt, wo das Problem lag. Ich habe die Sektionen mit .section einrichen wollen. Der Assembler hat diese Sektionen als nicht ausfuehrbare Sektionen erkannt. Jetzt geht es, weil ich folgendes verwende: .section .teil1, "x" "x" steht fuer "executable". Habe beim lesen des Manuals nicht richtig aufgepasst, dass man Flags setzen muss. Danke, r.
> Als ich was nachvollziehbares posten wollte, habe ich bemerkt, wo > das Problem lag. Das nennt man code review. :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.