如何控制JTAG设备向闪存写入二进制文件?

How to control JTAG device to write binary file to the flash memory?

可能会有粗鲁的表达,因为我的母语不是英语。 希望大家理解。

我有一个如下所示的 JTAG 调试器,我想创建一个应用程序来控制 JTAG。

我知道有很多工具可以做到这一点。其实我也有使用 IAR IDE 工具,但我想知道 IAR 编译器如何控制 JTAG。

如何控制JTAG设备向闪存写入二进制文件? 任何信息都可以。如果您有任何线索,请告诉我。

感谢阅读。

在 JTAG 标准中实现了一种协议,该协议允许与同样使用该协议并具有硬件接口的微控制器进行通信。该协议作为 状态机 (https://en.wikipedia.org/wiki/Finite-state_machine). A diagram of the JTAG state machine is in https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2009/jgs33_rrw32/Final%20Paper/index.html (i.e. the TCP/IP stack/protocol is also a state machine : http://telescript.denayer.wenk.be/~hcr/cn/idoceo/tcp_linkstates.html) 实现。

基本上在 JTAG 标准中指定了访问 uC 上的哪些寄存器以及状态机必须处于哪种状态才能访问特定寄存器,请参阅 https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2009/jgs33_rrw32/Final%20Paper/index.html 了解更多详细信息。

因此,如果您想编写程序来控制 JTAG 编程器,则必须在代码中实现 JTAG 状态机,因为电缆另一端的微控制器中的相应状态机只能理解该协议。

一个TCP状态机在C中的实现https://www.oryx-embedded.com/doc/tcp__fsm_8c_source.html, in i.e. https://aticleworld.com/state-machine-using-c/也是一个状态机的实现