Vielleicht kann ich hiermit einen praktischen Beitrag dazu leisten, dass das Secondary JTAG Port des LPC210x seinen "Schrecken" verliert und der Anwender 10 zusätzlich Pins nutzen kann (gegenüber der Primary JTAG Port Lösung)
So geht's (bei mir):
1. Die PHILIPS Applikation Note AN10255 vergessen ! (hatte mich total verwirrt).
2. Die Pins des Secondary JTAG Ports im eigenen C-Programm auswählen (oberste 5 bit in
PINSEL1). Ein Hilfsprogramm wird nicht benötigt!
3. Einmal das erzeugte Programm per ISP oder über das Primary JTAG Port in die CPU
brennen.(ISP oder Primary JTAG Port wir dann normalerweise nie mehr gebraucht,
neue Programme werden über den Debugger am Secondary JTAG Port geflasht).
4. Den Debugger am Secondary JTAG Port anschliessen . Der Pin DBG der CPU muss "0"
sein! RTCK funktioniert nicht im Secondary JTAG Port Mode, der Debugger muss also
auch ohne RTCK arbeiten können. Der Debugger muss in einer Betriebsart schaltbar
sein, die den JTAG TAP Controller in der CPU auch ohne gezogenem RESET
initialisieren kann (Attache mode, etc.)
5. Debugger ganz normal starten.
6. Vergessen dass es das zweite JTAG Port gibt, solange man die Pinkonfiguartion der
Portpins P0.27 bis P0.31 nicht ändert. Wer im Programm die Konfiguration verändert,
verliert die Kontrolle über das Programm. Wer die ersten Konfiguration nach Reset
verändert UND FLASHT , muss Schritt 3 wieder ausführen.
Das eigene Programm startet natürlich und läuft einige 100ms (abhängig vom Debugger), bis der Debugger es "einfängt" und stoppt und man Kontrolle über die CPU bekommt. Wer das nicht möchte, muss beim Debuggen eine Endlosschleife nach der Initialisierung einbauen und den PC dann manuell setzen.
Einige LPC2106 gehen nur "widerspenstig" über das Secondary Debug Port in den Debug Mode wenn man DBGSEL auf "0" und RTCK auf "1" legt. Dieses Verhalten ist (bei mir) verschwunden, wenn man den DBGSEL Pin auf "1" und dafür RTCK auf "0" legt (RTCK über 10K).