Hallo allerseits, ich habe ein kleines Problem dabei, ein bestehendes Projekt (komplett in C geschrieben) um einen in Assembler geschriebenen Bootloader zu erweitern. Am Ende soll also ein hexfile herauskommen, das sowohl den Bootloader als auch eine erste Version der Betriebssoftware enthaelt. Ich habe es nach langem umherprobieren nun endlich hinbekommen, eine C-Funktion in die Bootloader-section an 0x0c00 zu verschieben - funktioniert soweit. Dies bringt mir jedoch noch dann etwas, wenn ich aus dieser C-Funktion heraus eine ASM-Funktion inline aufrufen kann (sonst liegt diese Funktion ja unter Umstaenden nicht im Bootloaderbereich des Flashs). Leider scheitert es daran, denn die Funktion wird immer ueber ein Rcall aufgerufen und liegt sonstwo. Praktisch waere es nun, wenn ich die ganze Geschichte mit der die ASM-Funktion aufrufenden C-Funktionbleiben lassen und dem GCC stattdessen mitteilen koennte, dass er die nackte ASM-Funktion direkt an die Startadresse des Bootloaders im Flash schreiben soll. An diesem Punkt bin ich dann jedoch leider gescheitert, da ich "__attribute__ ((naked, section (".bootloader")));" nicht in die .S einbauen kann. Die .S schaut bisher so aus (dient vorerst nur dazu, den ganzen Compilerkram ueberhaupt ans Laufen zu bekommen): .global asmbl .func asmbl asmbl: nop nop nop .endfunc Hat fuer dieses Problem irgendwer eine Loesung parat? Vielen Dank und beste Gruesse, André
Getrennt erstellen, und erst die .hex-Files "zusammen-bauen", d.h. von einem den "end-record"(letzte Zeile) entfernen und das andere dranhängen. Das ist die bei weitem einfachste Lösung, das Thema gab's hier schon öfters... hth. Jörg
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.