JTAG & SWD

  • 配置SWD后复用引脚的配置

stm32复位后,JTAG与SW默认同时开启的,即所有的JTAG端口均被系统保留,软件设置GPIO是不起作用的,所以导致DB4一直为高电平,DB3一直为低电平,ST的文档里说明,如果要释放多余的JTAG端口,需设置SWJ_CFG[2:0]为010,关闭JTAG-DP,启用SW-DP 并且开启端口复用的始终,在代码上体现是这样的:  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

  • 仿真器对SWD模式支持情况
  1. 市面上的常用仿真器对 SWD 模式支持情况 (1) JLINKV6 支持 SWD 仿真模式, 速度较慢。 (2) JLINKV7 比较好的支持 SWD 仿真模式, 速度有了明显的提高,速度是 JLINKV6 的 6 倍。 (3) JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M。 (4) ULINK1 不支持 SWD 模式。 (5) 盗版 ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M。 (6) 正版 ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M。
  2. SWD 硬件接口上的不同 (1) JLINKV6 需要的硬件接口为: GND, RST, SWDIO, SWDCLK (2) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK (3) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的实际连线及相应实验结果) (4) ULINK1 不支持 SWD 模式 (5) 盗版 ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK (6) 正版 ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK

DAC

配置时手册中的bug

  • DAC channel2 8bit right-aligned data holding register DAC_DHR8R2 地址偏移 0x1c->0x1B #define DAC2_DHR8R1_Address 0x4000741B