Forum: Mikrocontroller und Digitale Elektronik ARM / STM32: JTAG besser nicht abschalten?


von Sven (Gast)


Lesenswert?

Hallo,

ich möchte bei meiner Schaltung mit STM32 die JTAG Schnittstelle 
deaktivieren, um Einbruchversuche in meine Software zu erschweren.

Das ganze funktioniert auch, indem einfach die alternate Function 
genutzt wird, dann ist JTAG tot und mein Debugger (Olimex) kommuniziert 
nicht mehr.

Derzeit habe ich noch ein Hintertürchen in der Software, und kann über 
eine Kommandosequenz wieder das JTAG aktivieren. Ansonsten gelingt es 
mir nämlich nicht, per JTAG eine neue Software zu flashen.

Wie kannn ich den Prozessor löschen/programmieren, wenn JTAG deaktiviert 
ist? Es müsste ja möglich sein, die Reset-Leitung zu halten (damit die 
Software nicht ausgeführt wird, die zur Deaktivierung von JTAG führt), 
und währenddessen zu kommunizieren.
Bisher ist es mir mit der Kombi OpenOCD / Olimex JTAG nicht gelungen. 
Noch bevor das erste Kommando (reset halt) in meinem OpenOCD Flash 
Script ausgeführt wird, kommen schon Fehlermeldungen, dass keine 
Kommunikation möglich ist.

Dieses Problem müsste doch jeder haben, der versucht, die JTAG Pins 
anderweitig zu nutzen (was man üblicherweise wohl versucht zu 
vermeiden).

Danke! Sven
von Oliver J. (skriptkiddy)


Lesenswert?

Schau mal hier:

Beitrag "OpenOCD sysreset"
von RP6Conrad (Gast)


Lesenswert?

Jeden STM32 hat ein bootloader, so lasst sich ueber USART1 ein neues 
program flashen (boot0 / boot1 pin). Daneben gibts auch noch die 
ST-link, braucht nur 2 pins (SWDIO und SWCLK)  um Zugriff zu haben auf 
das  flash und debug. Brauchts du ein ST-link Schnittstelle, aber schon 
das Discovery board VL hat eines. Ueber das ST-link utility kan dan 
geflasht werden.
von Sven (Gast)


Lesenswert?

Hey danke für die Antworten. Der verlinkte Thread beschreibt genau mein 
Problem, leider ist auch dort keine wirkliche Lösung... mir gelingt es 
nicht, über das Kommando jtag_reset x y irgendeine Art von Reset 
herbeizuführen.

Auch wollte ich nicht auf andere Tools umsatteln. Ich suche einen Weg, 
mit meiner aktuellen Toolchain (und das ist OpenOCD + Olimex JTAG) den 
Prozessor zu löschen, ohne manuell einen Reset Taster drücken zu müssen 
oder auf andere Debug Schnittstellen umzusatteln...

Na gut aber anscheinend bleibt mir nix anderes übrig...
von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Sven schrieb:
> ich möchte bei meiner Schaltung mit STM32 die JTAG Schnittstelle
> deaktivieren, um Einbruchversuche in meine Software zu erschweren.

> Es müsste ja möglich sein, die Reset-Leitung zu halten (damit die
> Software nicht ausgeführt wird, die zur Deaktivierung von JTAG führt),

Wenn JTAG per Software deaktiviert wird, wo liegt da die Erschwernis? 
Jemand der einbrechen möchte und offensichtlich in der Lage ist mit 
einem JTAG Debugger zu arbeiten, wird einfach die Abschaltroutine 
überspringen.

--
Marcus
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.