Посмотрите на openocd. Бэкэнды в основном основаны на подходе параллельного порта, и я думаю, что он заходит так далеко, что меняется только по одному биту за раз. Довольно просто взять то, что я думаю, они называют фиктивным бэкэндом, который является примером. Отправьте любую команду записи в arduino, и установите или сбросьте этот бит. Когда вас попросят прочитать входной бит, отправьте команду в arduino, чтобы выполнить эту задачу и вернуть результаты.
Я сделал именно это с успехом, но не с Arduino, у меня был разговор openocd от хоста в симулируемое ядро руки, работающее в симуляторе HDL.
Обратите внимание, что некоторые спецификации jtag закрыты, например, cortex-m3 является своего рода сериализованным уменьшенным числом пинов jtag, которое в прошлый раз, когда я смотрел, было недоступно без NDA. это может не иметь значения, потому что openocd позаботится обо всем этом для вас, пока вы используете интерфейс jtag, который поддерживает openocd, бэк-бэк-бэнд - это то место, где ваше arduino и любой интерфейс, который вы используете для доступа к нему / с него, входят в игру. ,
Как уже отмечал Джоби, вы должны быть осторожны с напряжениями (не все ардуиновые ароматы имеют напряжение 5 В и не все контроллеры питания имеют напряжение 3,3 В), а также с формированием сигнала и заземлением и всем этим. Если ваша целевая плата питается от источника питания, который находится на другом уровне по сравнению с тем, что вы используете для питания вашего Arduino, вы можете расплавить что-то, когда вы подключите их.