本文介绍了如何使用gpio固件库来释放swj-dp引脚(串行jtag调试端口),并且重用为标准io。swj-dp io能够用作标准ios,它的性能可以达到标准io的80%。
当系统复位后,会默认把以上引脚复用为调试功能:pa15引脚复位后的主要功能为 jtdi、pb3为jtdo、pb4为jntrst;如果把这些引脚作为普通引脚使用时,则需要进行重映射。通过设置复用重映射和调试i/o配置寄存器 (afio_mapr) 的swj_cfg[2:0]位,可以改变上述重映像配置。
1、硬件描述
把led灯与swj-dp引脚相连。
2、固件描述
提供的gpio驱动通过一系列的函数支持所有的gpio 特性。
首先,swj-dp被禁用,swj-dp引脚配置为输出推挽式。5个led连接到pa13(jtms/swdio),pa14(jtck/swdclk),pa15(jtdi),pb03(jtdo),pb04(jtrst),这些led在无限循环中被翻转。
注意:一旦swj-dp被禁用,和主机的调试器的连接将断开。只要jtag io仍然禁用,就不能重新建立调试连接。为了避免这种情况,pb09被连接到一个按钮,该按钮用来禁用或者不禁用jtag ios。
●在复位时按钮按下,jtag io禁用。
●在复位时按钮没有按下,jtag不改变。
3、注意事项
重映射的方式一共有三种。分别描述如下:
1.gpio_remap_swj_jtagdisable:/*< jtag-dp disabled and sw-dp enabled */ 即能用pb3,pb4,pa15做普通io,pa13&14用于swd调试。
2.gpio_remap_swj_disable: /*< full swj disabled (jtag-dp + sw-dp) */ 5个引脚全为普通引脚,但不能再用jtag&swd仿真器调试,只能用st-link调试。
3.gpio_remap_swj_nojtrst:/*cr = dbgmcu->cr & ~((uint32_t)1<<5); //使能复用时钟和引脚 gpio时钟rcc_apb2periphclockcmd(rcc_apb2periph_gpioa | rcc_apb2periph_gpiob | rcc_apb2periph_afio, enable); //切换 swj调试,释放 pa15,pb4, pb3gpio_pinremapconfig(gpio_remap_swj_jtagdisable,enable); 值得注意的是,当释放禁用了pb3的异步跟踪后,就无法正常进行debug调试了。
常用肖特基二极管型号及参数
漏电开关测试仪图解_漏电保护测试仪怎么用
74系列芯片功能大全
阅兵直播采用的增强现实技术是如何实现的?
贵州首条国际互联网数据专用通道顺利通过竣工验收
使用STM32F10xxx SWJ引脚作为标准IO
Linux如何获取进程的基地信息
什么是热回路
缝合线线径检测设备
WTN6语音芯片在指静脉门锁上的应用方案
一种臭氧氧化和硅蚀刻技术
华为P10都已经发布了!华为mate10:你在多远的未来?
Arduino程序光传感器感测模块简介
Cloud VR发展进入快车道,规模商用加速
NAND形成规模,产能过剩的风险日益高企
一文读懂Git重要概念和常用指令
鸿蒙系统开源代码 鸿蒙系统官网
运放参数的详细解释和分析
uCOS-II的介绍和uCOS-II在单片机使用中的一些特点资料概述
MCU是本轮汽车芯片短缺的“重灾区”