Atmel JTAG deaktivieren in Software ohne Optimierung

Gast #1617978
Hallo zusammen,

Ich habe diverse Beiträge durchsucht aber nicht das richtige Gefunden.
Ich habe das Problem, dass ich die JTAG Schnittstelle im Program 
deaktivieren möchte. Ich nutze dazu C-Code Problem ist, dass innerhalb 
von 4 Taktzyklen 2x in das MCUCSR Register geschrieben werden muss.

Wenn ich das ohne Optimierung in C mache ist das allerdings zu langsam 
und dauer bei mir 5 Zyklen.

Weiss jmd wie ich in C das deaktivieren in Assembler machen kann?
Oder auch gerne andere Lösungen.

MfG Felix
Moderator Persönliche Seite
Nun, das einfachste wäre es natürlich, die Optimierung einzuschalten.
;-)
1
#include <avr/io.h>
2

3
void jtd(void)
4
{
5
  uint8_t tempreg;
6

7
  asm volatile("in %[tmp], %[mcucsr]" "\n\t"
8
        "ori %[tmp], %[mask]" "\n\t"
9
        "out %[mcucsr], %[mask]" "\n\t"
10
        "out %[mcucsr], %[mask]"
11
        :/* no outputs */
12
        : [tmp] "d" (tempreg), [mcucsr] "I" (_SFR_IO_ADDR(MCUCSR)),
13
          [mask] "M" (1 << JTD));
14
}

Sinnvoll wäre es natürlich noch, das Teil static inline zu
deklarieren, denn im Allgemeinen ruft man die Funktion ja nur
ein einziges Mal pro Applikation auf.
Felix schrieb:
> Wenn ich das ohne Optimierung in C mache ist das allerdings zu langsam
> und dauer bei mir 5 Zyklen.

Wenn Dir das Programm mit Optimierung zu schnell ist, nimm einfach nen 
kleineren Quarz, dann kannst Du die Optimierung an lassen.


Peter
Hallo,

Peter Dannegger schrieb:
> Felix schrieb:
>> Wenn ich das ohne Optimierung in C mache ist das allerdings zu langsam
>> und dauer bei mir 5 Zyklen.
>
> Wenn Dir das Programm mit Optimierung zu schnell ist, nimm einfach nen
> kleineren Quarz, dann kannst Du die Optimierung an lassen.

Hmmm, habe jetzt statt eines 4MHz HC49/U einen ganz kleinen 4MHz 
SMD-Quarz genommen. Läuft aber noch genauso schnell......

[Duck und wech]

Gruß aus Berlin
Michael

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.