www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik TC1796 FreeRTOS Port


Autor: M. H. (kroggy)
Datum:

Hallo,
versuche gerade die FreeRTOS Portierung für den TC1796 in Betrieb zu
nehmen.

Scheitern tut das ganze an Assembler Zeilen wie dieser (zu finden in der
port.c beim Context Switch):
  unsigned portLONG xSavePCX, xSaveLR;
  ...
  __asm__( "mov.d %0, %%a11":"=r"(xSaveLR) );

Folgende Fehlermeldung bekomme ich vom GCC (v3.3):
   ../src/RTOS/port/port.c:247: error: [12568] inconsistent operand
   constraints in an `asm'

Bin leider nicht so der Assemblerheld. Hoffe mir kann jemand helfen.

Danke.
Autor: A. K. (prx)
Datum:

Was ist portLONG?
Autor: A. K. (prx)
Datum:

Da der Tricore verschiedene Registertypen hat, könnte es sein dass "=r"
nicht zulässig ist und target-abhängige constraints verwendet werden
müssen. Die nur die Doku der betreffenden GCC Portierung kennt. Da die
nicht Bestandteil der offiziellen Version ist...
Autor: M. H. (kroggy)
Datum:

Das klingt gut. Hab ich auch schon probiert, bin dabei aber leider auf
keine grünen Zweig gekommen.
Hast du ne Idee welche ich nutzen kann: Muss ein long schreiben und
Adressen lesen.

Wundern würde mich noch, das das eine Portierung für den GCC und für den
TC1796 sein soll.

portLONG ist ein typedef oder Makro 32 Bit Wert.
Autor: M. H. (kroggy)
Datum:

Kleiner Nachtrag.
Hab das gerade im Handbuch nachgelesen.
Die "=r" wird unterstützt.

Mist
Autor: A. K. (prx)
Datum:

M. H. schrieb:

> Hast du ne Idee welche ich nutzen kann: Muss ein long schreiben und
> Adressen lesen.

Habe weder einen Tricore noch eine Doku für dessen GCC. Mehr als
allgemeine Auskünfte gibt's dazu also von mir nicht.

> Wundern würde mich noch, das das eine Portierung für den GCC und für den
> TC1796 sein soll.

Den Satz krieg ich nicht dekodiert. Ein TC1796 ist laut Google ein
Tricore und so ein ASM-Statement mitsamt dem Begriff "operand
constraint" gibt's jedenfalls nur beim GCC.
Autor: M. H. (kroggy)
Datum:

Hab mal ein paar andere constraints ausprobiert die mir passend
erschienen.

Dazu meint der GCC:
  C:\DOKUME~1\hausm\LOKALE~1\Temp/ccq2aaaa.s: Assembler messages:
  C:\DOKUME~1\hausm\LOKALE~1\Temp/ccq2aaaa.s:159: Error: Opcode/operand
  mismatch: mov.d [%a10]4,%a11


> Den Satz krieg ich nicht dekodiert. Ein TC1796 ist laut Google ein
> Tricore und so ein ASM-Statement mitsamt dem Begriff "operand
> constraint" gibt's jedenfalls nur beim GCC.

Das schon war, hab mich da nur gefragt wie der Erfinder dieses Codes es
geschafft hat zu kompilieren.
Autor: A. K. (prx)
Datum:

Probier es eher mal mit sowas wie

__asm__( "mov.d %0, %%a11":"=d"(xSaveLR) );

Ein operand constraint ist das "r" in "=r"(x). %0 ist bloss der Verweis
darauf. Aber ob da "r" oder "d" oder "D" oder ... richtig ist kann ich
nicht erraten.
Autor: A. K. (prx)
Datum:

M. H. schrieb:

> Das schon war, hab mich da nur gefragt wie der Erfinder dieses Codes es
> geschafft hat zu kompilieren.

Andere Version?
Autor: mario (Gast)
Datum:

Hi,

you will find a TriCore training for GCC and Inline Assembler at
http://www.hightec-rt.com/de/downloads/cat_view/58...
Autor: M. H. (kroggy)
Datum:

Hallo Mario,
hab in einem anderen Thread von dir eine Antwort gefunden, das es noch
andere freeRTOS implementierungen für den TriCore gibt.
(Uni-Erlangen, Uni Budapest, TU Wien and University in Singapore)

Könntest du mir da auch die Kontakte zukommen lassen?
Autor: M. H. (kroggy)
Datum:

Danke.
Das mit dem "=d" und "=D" hab ich heute morgen auch entdeckt. Die "=r"
wird doch nicht für die TriCore GCC Portierung unterstützt.
Kompilieren tut das ganze jetzt auf jeden Fall mal.

Funktionieren noch nicht. Werde mir das morgen früh mal mit dem Debugger
genauer anschauen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net