Schau auf openocd. Die Backends basieren größtenteils auf dem Parallelport-Bit-Bang-Ansatz. Ich denke, dass es so weit geht, immer nur ein Bit zu ändern. Es ist ziemlich einfach, das zu nehmen, was ich denke, dass sie das Dummy-Backend nennen, was ein Beispiel ist. Senden Sie einen beliebigen Schreib-Bit-Befehl an das Arduino und lassen Sie dieses Bit setzen oder löschen. Wenn Sie aufgefordert werden, das Eingabebit zu lesen, senden Sie einen Befehl an den Arduino, um diese Aufgabe auszuführen und die Ergebnisse zurückzugeben.
Ich habe genau das mit Erfolg getan, aber nicht mit einem Arduino, ich hatte OpenOCD-Talk von einem Host in einen simulierten Arm-Core, der in einem HDL-Simulator läuft.
Beachten Sie, dass einige JTAG-Spezifikationen geschlossen sind. Der Cortex-m3 ist beispielsweise eine Art serialisiert reduzierte Anzahl von Pins JTAG, die das letzte Mal, als ich nachgesehen habe, ohne NDA nicht verfügbar war. Das mag keine Rolle spielen, da openocd alles für Sie erledigt, solange Sie ein von openocd unterstütztes J-Tag-Interface verwenden. Das Bit Banged Back-End ist der Ort, an dem Ihr Arduino und das Interface, über das Sie dorthin gelangen / von dem es kommt, zum Spielen hereinkommen .
Wie bereits von Joby bemerkt, müssen Sie vorsichtig sein mit Spannungen (nicht alle Arduino-Aromen sind 5V und nicht alle Arm-Controller sind 3,3 Volt) und Signalkonditionierung und Erdung und all dem Zeug. Wenn Ihre Zielplatine von einem Netzteil mit Strom versorgt wird, das sich auf einem anderen Niveau befindet als das, mit dem Sie Ihr Arduino versorgen, können Sie etwas zum Schmelzen bringen, wenn Sie die beiden verbinden.