Forum: Compiler & IDEs XC8 - inline asm - goto an bestimmter Stelle


von Max (Gast)


Lesenswert?

Hallo Leute,

ich habe ein Problem bei der Benutzung von inline Assembler beim XC8 
Compiler

ich möchte folgende Sprungbefehle an einer bestimmten Stelle im Speicher 
platzieren.
So hätte ich es gemacht:
1
asm("_reset:  org    000h");
2
asm("           goto   BL_START");
3
      
4
asm("_hi_int:  org    008h");  
5
asm("           goto  ADDRESS_INT_HIGH");
6
      
7
8
asm("_low_int:  org   018h");
9
asm("           goto  ADDRESS_INT_LOW");

nur leider legt er diesen Teil im Flash ganz woanders hin.
Interessanterweise scheint es beim C18 Compiler funktioniert zu haben...

Hätte jemand zufällig einen Tipp?

Danke Viele Grüße

Max

von Thomas Z. (usbman)


Lesenswert?

Das ist ja mal eine kreative Idee den Inline Assembler zu verwenden....
Wie kommt man auf die Idee per Inline Code von C aus die Platzierung zu 
steuern? Mal abgesehen dass org sowieso kein Assembler Befehl ist und 
deshalb per Inline nicht funktionieren kann, sowas wird im Linker 
gemacht

von Larry (Gast)


Lesenswert?

Das ist doch gerade beim XC8 sehr einfach.
1
void prd(ui word, uc dp) @ 0xd7 {
2
...
3
}

Platziert die Funktion prd auf die Adresse 0xd7.
Wer haette das gedacht.

von Larry (Gast)


Lesenswert?

P.S.:

Handbuchleser wissen mehr!

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.