BOOT引脚 JTAG协议

BOOT引脚 :

复位、启动选择

Boot引脚与JTAG无关。其仅是用于MCU启动后,判断执行代码的起始地址

电路设计上可能Boot引脚不会使用,但要求一定要外部连接电阻到地或电源,切不可悬空;STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

用户闪存 = 芯片内置的Flash

SRAM= 芯片内置的RAM区,就是内存

系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序,这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:

BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。

BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。

BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。

用JTAG口或SWD模式烧写 选择从用户闪存启动。

用串口ISP模式烧写程序时时选择从系统存储启动

烧写接口

如果要减小插座的数量,就用SWD模式的仿真,在这个模式下,如果用JLINK只要四根线就可以了,这四根线分别是:3.3V、GND、SWDIO、SWCLK。

其中STM32的JTMS/SWDIO接JTAG口的TMS,STM32的JTCK/SWCLK接JTAG口的TCK。如果要用ULINK2,则再加多一条“NRST”,即5条。这个接口你可自行定义,在使用时用杜邦线跳接或做块转换接口板联接仿真器与目标板即可。

 JTAG协议:

JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),也叫ARM调试协议,主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:

  • TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;
  • TCK:测试时钟输入;
  • TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;
  • TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出;

JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。那么能不能让JTAG支持USB协议,用USB接口来调试ARM呢?这就要说到JLINK和ULINK了。

JTAG仿真器:JLink仿真器、ULINK仿真器、ST-LINK仿真器

例:

JLINK是一个兼容JTAG的仿真器,作用是烧入程序和Debug

JLINK是如何处理数据的?

PC→USB→J-Link(通过JTAG接口)→STM32上的JTAG接口电路通过操作寄存器直接访问到flash,实现对flash的读写

注:

1.调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种。

猜你喜欢

转载自blog.csdn.net/m0_58530510/article/details/129866952