XC8 - inline asm - goto an bestimmter Stelle

Gast #6243691
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
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.