Hallo, wie kann ich in C zu einer bestimmten Speicherstelle im Memory springen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Gruß Bernd
|
Anzeige
|
jump zu best. Memory-AdresseHallo, wie kann ich in C zu einer bestimmten Speicherstelle im Memory springen?
Gruß Bernd Auf nem PC?? AVR / ?? avr kann z.b. asm("rjmp 0xFFAA"); resp asm("jmp 0xFFAA"); bei den größeren Versionen... Aber ob das nicht kuddelmuddel gibt.... Gab es in C nicht auch ein "goto"?? auf einem ARM von Atmel soll der Programmcode laufen. goto bringt mir nichts, da der Sprung zu einer Speicherstelle im Memory / Flash verweisen soll. Gruß Bernd
Gast
#907951
Versuche mal, ob diese Notation zulässig ist:
asm(jmp Bootloader);
Wobei "Bootloader" eine C-Funktion ist.
Muss diese unbedingt an einer fixen Adresse liegen?
Das musst Du dem Linker mitteilen.
Nebenbei:
return 0;
Wenn der Funktionwert void ist, wird in der Regel nichts returned.
eProfi wrote: > Versuche mal, ob diese Notation zulässig ist: > asm(jmp Bootloader); Das geht so sowieso nicht. Da müssten noch Anführungsstriche drumherum. Dann hast du das Problem, dass zum Assemblerzeitpunkt "Bootloader" nicht bekannt ist. > Wobei "Bootloader" eine C-Funktion ist. > Muss diese unbedingt an einer fixen Adresse liegen? > Das musst Du dem Linker mitteilen. Ich kann da nen Trick. Der geht in etwa so:
Ganz ohne Assembler! :O Hallo folgenden Funktionspointer habe ich hier im Forum gefunden. Ich denke damit sollte es funktionieren.
Gruß Bernd Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|