artikel:nav_common:jtag_readout_mainboard_flash

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
artikel:nav_common:jtag_readout_mainboard_flash [Fri. 26.07.2019 19:09] – [Ablauf "Inhalt vom Mainboard-Flash herunterladen und abspeichern"] go4itartikel:nav_common:jtag_readout_mainboard_flash [Tue. 20.08.2019 13:30] go4it
Zeile 14: Zeile 14:
  
 :!: **ACHTUNG**: Vom Segger J-Link werden zahlreiche, billige "China-Clones" angeboten. Keine Ahnung ob welche davon genauso gut funktionieren wie das Original. Bei dem relativ günstigen Preis des "EDU" würde ich jedoch immer ein Original vorziehen, da dies sicher qualitativ hochwertiger ist und man keine Probleme bekommt! :!: **ACHTUNG**: Vom Segger J-Link werden zahlreiche, billige "China-Clones" angeboten. Keine Ahnung ob welche davon genauso gut funktionieren wie das Original. Bei dem relativ günstigen Preis des "EDU" würde ich jedoch immer ein Original vorziehen, da dies sicher qualitativ hochwertiger ist und man keine Probleme bekommt!
- 
-**Watchdogs** 
- 
-{{:artikel:nav_common:watchdog-error.png?direct&200|}} 
- 
-Es gibt zwei Überwachungsmechanismen im Gerät, die Softwareabstürze erkennen und dann einen Prozessorneustart auslösen sollen.  Beide stören aufgrund ihrer kurzen Timeout-Zeiten das auslesen/beschreiben des Flash-Speichers, zumindest wenn man mehr als einen Sektor bearbeiten will und müssen deaktiviert werden. 
- 
-Auf dem Mainboard steuert und überwacht ein NEC V850 Mikrocontroller (der sog. "Radioprozessor") sämtliche Komponenten, auch den OMAP-Hauptprozessor. Hierzu erwartet der V850 vom OMAP sog. "Heartbeats". Bleiben diese für einen Zeitraum von mehr als 20 Sekunden aus, führt der V850 einen Reset beim OMAP durch. Die kann verhindert werden indem man über eine Drahtbrücke am Mainboard die Funktion deaktiviert ("Tuareg-Mode"). 
- 
-Zusätzlich gibt es auf dem OMAP noch einen Watchdog-Timer. Dieser löst ebenfalls einen Reset aus, wenn er nicht binnen 12 Sekunden immer wieder zurückgestellt wird. Dies geschieht normalerweise per Software. Stoppt man jedoch die CPU um den Flash lesen/beschreiben zu können, bleiben die Rückstellbefehle aus und der Watchdog schlägt zu. Um dies zu verhinden muss man gleich nach dem anhalten der CPU die Watchdog-Timer umprogrammieren, sodass diese keine Funktion mehr haben. 
- 
-//Zum Thema gibt es noch [[https://microhacker.denkdose.de/viewtopic.php?f=3&t=2&start=50#p134|Hintergrundinformationen im Forum]]// 
  
 ===== Benötigte Teile und Hilfsmittel ===== ===== Benötigte Teile und Hilfsmittel =====
Zeile 33: Zeile 21:
   - Ein paar möglichst kurze (wg. Störeinstrahlungen) Dupont-Wires (Anschlußvariante Male-Male) um die Pins vom J-Link Adapter mit denen der orangenen Micromatch-Buchse am Mainboard zu verbinden   - Ein paar möglichst kurze (wg. Störeinstrahlungen) Dupont-Wires (Anschlußvariante Male-Male) um die Pins vom J-Link Adapter mit denen der orangenen Micromatch-Buchse am Mainboard zu verbinden
  
-===== JTAG-Interface mit dem Mainboard verbinden und Tuareg-Mode aktivieren =====+===== "Warnung vor dem Hunde" - Das Watchdog-Problem =====
  
-Pins des JTAG-Interface mit dem Mainboard verbinden[[artikel:nav_common:jtag_connect_mainboard]]+{{:artikel:nav_common:watchdog-error.png?direct&200|}}
  
-Für den Tuareg-Mode eine Drahtbrücke zwischen **Pin 3 (GND)** und **Pin 13 (/SEL)** des [[:artikel:nav_common:mainboard_service_connectors#pinbelegung_der_service-buchse_x3806|rechten Serviceports (X3806)]] vom Mainboards einlöten (ich habe einen Dupont-Wire Male-Female durchgeschnitten und mit so eine Steckbare Verbindung gebaut).+Es gibt zwei Überwachungsmechanismen im Gerät, die Softwareabstürze erkennen und dann einen Prozessorneustart auslösen sollen.  Beide stören aufgrund ihrer kurzen Timeout-Zeiten das auslesen/beschreiben des Flash-Speichers, zumindest wenn man mehr als einen Sektor bearbeiten will und müssen deaktiviert werden.
  
-===== J-Flash konfigurieren =====+Auf dem Mainboard steuert und überwacht ein NEC V850 Mikrocontroller (der sog. "Radioprozessor") sämtliche Komponenten, auch den OMAP-Hauptprozessor. Hierzu erwartet der V850 vom OMAP sog. "Heartbeats". Bleiben diese für einen Zeitraum von mehr als 20 Sekunden aus, führt der V850 einen Reset beim OMAP durch. Die kann verhindert werden indem man über eine Drahtbrücke am Mainboard das laden der Firmware im Flash des V850 verhindert und somit die Watchdog-Funktion deaktiviert ist (Bosch nennt dies den "Tuareg-Mode").
  
-Hierzu unter "Options" den Menüpunkt "Project options..." auswählen und folgende Einstellungen vornehmen:+Zusätzlich gibt es auf dem OMAP auch noch einen Watchdog-TimerDieser löst ebenfalls einen Reset aus, wenn er nicht binnen 12 Sekunden immer wieder zurückgestellt wirdDies geschieht normalerweise per SoftwareStoppt man jedoch die CPU um den Flash lesen/beschreiben zu können, bleiben die Rückstellbefehle aus und der Watchdog schlägt zu. Um dies zu verhinden muss man gleich nach dem anhalten der CPU die Watchdog-Timer umprogrammieren, sodass diese keine Funktion mehr haben.
  
-{{artikel:nav_fx:projectopts_general.jpg?direct|}}+//Zum Thema gibt es noch [[https://microhacker.denkdose.de/viewtopic.php?f=3&t=2&start=50#p134|Hintergrundinformationen im Forum]]//
  
-==== Reiter "Target Interface" ====+===== Grundsätzliches Setup zum lesen und schreiben des Flash =====
  
-Hier werden die JTAG-Einstellungen wie folgt vorgenommen:+==== Schritt 1.) JTAG-Interface mit dem Mainboard verbinden ====
  
-{{artikel:nav_fx:projectopts_target-interface_maxspeed.jpg?direct|}}+Pins des JTAG-Interface mit dem Mainboard verbinden: [[artikel:nav_common:jtag_connect_mainboard]]
  
-==== Reiter "MCU" ====+==== Schritt 2.) Den "Tuareg"-Modus aktivieren ====
  
-Hier wird zunächst "ARM9" als CPU-Typ aus der Liste ausgewählt:+Drahtbrücke zwischen **Pin 3 (GND)** und **Pin 13 (/SEL)** des [[:artikel:nav_common:mainboard_service_connectors#pinbelegung_der_service-buchse_x3806|rechten Serviceports (X3806)]] vom Mainboards einlöten (ich habe einen Dupont-Wire Male-Female durchgeschnitten und mit so eine Steckbare Verbindung gebaut).
  
-{{artikel:nav_nx:projectopts_mcu.jpg?direct|}}+==== Schritt 3.) J-Flash konfigurieren ====
  
-Um die Software-Watchdogs abzuschalten die Default Init-Steps löschen und durch folgende ersetzen:+Sämtliche Einstellungen habe ich in ein sog. "Project-File" (Datei mit der Endung *.jflash) gepackt, welches hier heruntergeladen werden kann:
  
-{{:artikel:nav_common:disable_wd.png?direct|}}+  * {{:artikel:nav_common:fx_omap5948.jflash|FX_OMAP5948.jflash}} 
 +  * {{:artikel:nav_common:nx_omap5948.jflash|NX_OMAP5948.jflash}} 
 +  * {{:artikel:nav_common:mca_omap5948.jflash|MCA_OMAP5948.jflash}}
  
-Die einzelnen Einstellungen im Detail:+//Im grunde sind das alles diesselben Dateien, einzig das beim FX eine andere Flash-Chip Variante zum Einsatz kommt (256N anstelle 512N, weil das FX nur einen 32 MB Flash-Chip drauf hat und das MCA und NX einen 64 MB).//
  
-{{:artikel:nav_common:disable_wd_1.png?direct|}}+In J-Flash dann einfach über "File" -> "Open project..." die Datei auswählen und einladen.
  
-{{:artikel:nav_common:disable_wd_2.png?direct|}}+===== Image vom Mainboard-Flash herunterladen =====
  
-{{:artikel:nav_common:disable_wd_3.png?direct|}} +==== Schritt 1.) ====
- +
-{{:artikel:nav_common:disable_wd_4.png?direct|}} +
- +
-{{:artikel:nav_common:disable_wd_5.png?direct|}} +
- +
- +
-==== Reiter "Flash" ==== +
- +
-Hier wird der Flash-Typ eingestelltDazu auf "Select flash device" klicken und aus der Liste den "Spansion S29GL256N" (wenn es sich um ein Mainboard eines Navigationssystems FX handeltbzw. "Spansion S29GL512N" (wenn es sich um ein NX oder MCA handel) wählen: +
- +
-{{artikel:nav_fx:projectopts_flash-256.jpg?direct|}} +
- +
-==== Reiter "Production" ==== +
- +
-Diese Einstellungen werden genutzt wenn man "Productional Programming" im J-Flash verwendet: +
- +
-{{artikel:nav_fx:projectopts_production.jpg?direct|}} +
- +
-==== Reiter "Performance" ==== +
- +
-{{artikel:nav_fx:projectopts_performance.jpg?direct|}} +
- +
-==== Einstellungen sichern ==== +
- +
-Am Ende erhält man eine Übersicht der Einstellungen im Hauptbildschirm: +
- +
-{{artikel:nav_nx:setup_complete_256.jpg?direct&640|}} +
- +
-Diese speichert man sich am besten als "Project" für spätere Versuche ab. +
- +
- +
- +
- +
-===== Ablauf "Inhalt vom Mainboard-Flash herunterladen und abspeichern" =====+
  
 {{artikel:nav_fx:flash-download_entiry-chip.jpg?direct&640|}} {{artikel:nav_fx:flash-download_entiry-chip.jpg?direct&640|}}
Zeile 113: Zeile 69:
 {{artikel:nav_fx:flash-download_save2bin_256.jpg?direct&640|}} {{artikel:nav_fx:flash-download_save2bin_256.jpg?direct&640|}}
  
 +===== Mainboard-Flash mit neuem Image programmieren =====
 +
 +==== Schritt 1.) Image Datei laden ====
 +
 +
 +==== Schritt 2.) Mainboard Flash löschen ====
  
-===== Ablauf "Mainboard-Flash löschen und mit neuem Inhalt programmieren" ===== 
  
 +==== Schritt 3.) Gelade Imagedatei ins Flash programmieren ====
  
-:TODO: 
  
  • artikel/nav_common/jtag_readout_mainboard_flash.txt
  • Zuletzt geändert: Wed. 19.05.2021 13:28
  • von go4it