文章目录
- STM32调试功能
- 1.硬件接口图
- 2.调试原理
- 3.引脚分配
- 4.调试接口使用方式
- 5.芯片配置
STM32调试功能
1.硬件接口图
2.调试原理
Cortex-M内核(M0/M3/M4/M7等)包含用于高级调试功能的硬件。利用这些调试功能,可以在取指(指令断点)或访问数据(数据断点)时停止内核。内核停止时,可以查询内核的内部状态和系统的外部状态。查询完成之后,将恢复内核和系统并恢复程序执行。
Cortex-M内核(MO/M3/M4/M7等)集成了串行SWD/JTAG调试接口(SWJ-DP),包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。
- JTAG调试接口(JTAG-DP)为5针标准JTAG接口。
- 串口调试接口(SW-DP)为2针串行调试(时钟+数据)接口。
SW-DP的2个引脚和JTAG的5个引脚中部分引脚复用。
3.引脚分配
复位后,MCU会将用于SWJ-DP的全部5个引脚指定为专用引脚(AFO),可供调试工具立即使用。但是MCU可以禁止部分或者全部SWJ-DP端口,进而释放相关引脚以用作GPIO口。
如果引脚我们想作为其他复用功能使用,那么跟其他I0口复用映射配置方法是一致的。
我们目前只有1301和2001有JTAG功能,其他芯片只支持SWD
1301只支持JTAG、2001支持两种协议切换
4.调试接口使用方式
1.使用Jlink连接
Jlink驱动:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace
pylink文档:PyLink — PyLink
2.读取内存地址
3.获取内存地址的默认值 register.py
5.芯片配置
环境搭建
1.按章Jlink 驱动, 安装位置:D:\Program Files\SEGGER\ Jlink
2.pycharm 下载并安装jlink支持的pylink_sqrare-0.14.1-py2.py3-none-any.whl, 内网放在C:\Anaconda3 \Lib\site-packages下, 用命令python setup.exe install 安装这个库,python 命令不识别添加环境变量:
C:\Anaconda3 C:\ Anaconda3\Scripts C:\ Anaconda3\Libary\bin
3.使keil能是被到芯片的型号配置:
下载并解压: Jlink HT device-FLASH 下载.rar
包含:HT 和 JLinkDevices.xml
-
配置jlink: 将JLinkDevices.xml 复制到 Jlink 安装目录下:D:\Program Files\SEGGER\ Jlink \
将HT 复制到 D:\Program Files\SEGGER\ Jlink \ Devices
-
配置user: 将JLink安装目录下的 Devices 、 JlinkDevices.xml 、 Jlink_x64.dll 直接复制到 D:Users\kxdeng\AppData\Local\Temp
-
配置 keil: 将HT 中的所有文件 复制到 keil 的安装目录下: D:\keil_v5\ARM\Flash 中
参考文档:
1.首页 | Read the Docs
2.Installation — PyLink
3.https://blog.csdn.net/jf_52001760/article/details/122382671
4.https://pypi.org/project/pylink-square/0.14.3/#files