网站后台打不开了怎么办wordpress怎么显示歌词
2026/2/25 4:43:27 网站建设 项目流程
网站后台打不开了怎么办,wordpress怎么显示歌词,移动应用开发专业怎么样,重庆网站seo分析注#xff1a;本文为 “STM32 调试” 相关合辑。 图片清晰度受引文原图所限。 略作重排#xff0c;未整理去重。 如有内容异常#xff0c;请看原文。 使用 SWO 代替 UART#xff0c;实现 Printf 打印功能 万般电子 原创 于 2019-10-29 19:51:10 发布 JTAG 接口中存在 1 个…注本文为 “STM32 调试” 相关合辑。图片清晰度受引文原图所限。略作重排未整理去重。如有内容异常请看原文。使用 SWO 代替 UART实现 Printf 打印功能万般电子 原创 于 2019-10-29 19:51:10 发布JTAG 接口中存在 1 个 SWO 引脚此前未对其功能进行深入探究。直至发现 ST-LINK V2-1 上同样配置有 SWO 引脚遂开展针对性研究与学习实践后发现其使用便捷性优于 UART。1 写在前面SWOSerial Wire Output串行线输出SWVSerial Wire Viewer串行线查看器ITMInstrumentation Trace Macrocell仪器跟踪宏单元在 Cortex-M3、M4、M7 系列 MCU 中内核调试组件包含仪器跟踪宏单元ITM。ITM 的核心用途为调试信息输出例如printf \text{printf}printf格式输出。SWO 为单引脚、异步串行通信接口可在 Cortex-M3、M4、M7 内核的 MCU 中使用由调试器提供探测支持依托 MCU 内核中的 ITM 模块实现功能。对于 STM32 系列芯片Cortex-M3、M4、M7 内核的 MCU 均配置有 SWO 引脚Cortex-M0 内核的 MCU 无此功能例如 STM32F0、STM32L0 等型号。2 硬件平台将 ST-LINK V2-1 与核心板进行连接其中 SWO 引脚连接至 PB3 引脚。若核心板/开发板采用 JTAG 接口可按此方式连接。JTAG 接口中的 SWO 引脚本质上即为 PB3 引脚。查阅 STM32F103 数据手册可知PB3 引脚的复用功能为 TRACESWO。3 代码部分与 UART 实现printf \text{printf}printf打印输出的原理类似UART 是将printf \text{printf}printf重定向至 UART 外设而本方案是将printf \text{printf}printf重定向至 ITM 模块。仅需两行代码即可实现 SWO 输出功能无需像 UART 那样额外编写外设驱动程序该函数位于 BSP_SWO.c 文件中。其中ITM_SendChar \text{ITM\_SendChar}ITM_SendChar函数位于 core_cm3.h或 core_cm4.h、core_cm7.h头文件中可直接调用使用。4 Keil SWO 输出配置4.1 工程基础配置打开 Keil 工程按照图示进行相关配置。4.2 MicroLIB 使能配置勾选 Use MicroLIB 选项。4.3 编译与调试模式进入配置完成后先对工程进行编译并确保编译通过随后进入调试模式。4.4 调试窗口打开打开 Debug (printf) Viewer 窗口。4.5 运行与信息查看点击全速运行按钮即可观察到 MCU 通过 ST-LINK V2-1 向编译器输出打印信息同时也支持单步调试模式下查看输出信息。4.6 参考工程提供提供两份配置完成的完整工程供学习参考。若需在自有工程中使用 SWO 调试功能仅需将 BSP_SWO.c 和 BSP_SWO.h 两个文件添加至工程中即可。下载链接https://pan.baidu.com/s/1EhJulPbD6Cp5OohzpQY0Fgshflsharepset提取码h43c5 STM32 ST-LINK Utility SWO 输出配置5.1 软件配置与启动运行 STM32 ST-LINK Utility 软件按照图示进行配置点击 Start 按钮即可启用 SWO 输出功能。5.2 下载前连接断开使用 Keil 下载程序前需先断开与 STM32 ST-LINK Utility 的连接。若未断开连接将无法正常下载程序并提示连接错误。6 写在后面串口同样可实现打印信息输出SWO 的核心优势如下串口为 MCU 的片内外设使用时会占用 1 个外设资源而 SWO 不占用任何片内外设资源更换不同型号 MCU 时需重新编写对应的串口驱动程序而 SWO 无需编写额外驱动串口输出通常采用中断方式发送数据调试过程中若需在中断中观察信息易引发中断嵌套问题而 SWO 不存在此类中断相关问题SWO 的传输速度远高于串口在时序要求较高的场景下对代码运行的影响更小。测试表明发送相同字符串时SWO 的传输速度是串口的8.7 8.78.7倍。尽管 SWO 不具备串口的双向传输能力但在多数串口调试场景中仅使用 TX 引脚实现输出功能因此 SWO 引脚可更优地替代串口 TX 引脚的输出功能。7 联系我们本文档由万般电子编写版权所有。仅供个人学习使用未经许可不得用于其他任何用途否则将追究相应法律责任。STM32 开发通过 SWO 功能输出 Printf 函数到 Utility重拾十年梦 于 2020-04-04 09:35:44 发布本文介绍 STM32F103RBT6 微控制器的 SWO 功能通过 SWO 实现 \text{printf} 函数输出不占用串口资源。详细阐述 ITM指令跟踪微单元的作用及配置流程包括 CUBEMX 与 KEIL 软件的设置以及如何在程序中使用 SWO 进行调试。1 概述1.1 资源概述开发板ST 官方 NUCLEO-F103RB 开发板CUBEMX 版本1.3.0MDK 版本5.23主控芯片型号STM32F103RBT61.2 SWO 功能简介SWO 又称 trace跟踪功能该功能在 SWD 调试的基础上仅需增加 1 条 SWO 线缆即可实现类似串口的输出功能配合printf \text{printf}printf函数可将相关信息打印至 utility 窗口。此功能不占用串口资源且无需在中断中执行相关操作。1.3 ITM(指令跟踪微单元) 简介本次 SWO 输出功能的实现基于 ITM 模块调用完成。ITM 是一种应用驱动的跟踪源支持通过printf \text{printf}printf类调试手段跟踪操作系统OS与应用事件并发布判定后的系统信息。ITM 以数据包形式发布跟踪信息其组成部分如下软件跟踪软件可通过直接写入 ITM 激发寄存器的方式发布数据包信息硬件跟踪ITM 会发布由 DWT 产生的信息包时间戳时间戳会附加至对应数据包上ITM 内置 1 个21 2121位计数器用于生成时间戳计数器时钟由 Cortex-M3 内核时钟或串行线观测器Serial Wire Viewer的位时钟提供。ITM 发送的信息包输出至 TPIUTrace Port Interface UnitTPIU 会添加额外数据包参考 TPIU 相关文档随后将完整的数据包序列输出至调试器[1]。1.4 实现功能本次程序实现的功能如下芯片复位后向 Serial Wire Viewerutility打印调试信息按下按键 BUTTON实现 LED2 灯状态翻转。针对第二条功能本文档不进行详细阐述。2 硬件连接以及 CUBEMX 配置2.1 硬件连接开发板内部已完成相关线路连接如下图所示若目标板与 STLINK 仿真器相互独立需使用 5 根线缆进行连接具体连接关系如下表所示序号连接网络备注1VCC电源正3.3 V2GND电源负3SWOSW 跟踪功能4SWDIOSW 数据输入输出5SWCLKSW 时钟信号2.2 CUBEMX 配置选择异步跟踪模式此时 PB3 引脚将自动被定义为 SWO 端口。3 软件开发3.1 KEIL 软件设置KEIL 软件设置如下图所示由于本程序使用内部 HSI 时钟系统频率为64 MHz 64 \text{MHz}64MHz因此对应填写64 MHz 64 \text{MHz}64MHz实际配置时需根据系统实际时钟频率进行调整。3.2 程序设计使用 CUBEMX 生成工程代码后对主函数进行修改。主程序中需包含 stdio.h 头文件否则无法识别printf \text{printf}printf函数。#includestdio.hfputc \text{fputc}fputc函数宏定义如下#definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)函数定义如下由于printf \text{printf}printf函数底层调用fputc \text{fputc}fputc函数通过该转换可使printf \text{printf}printf函数调用 ITM 函数实现输出功能PUTCHAR_PROTOTYPE{ITM_SendChar(ch);returnch;}ITM_SendChar ( ) \text{ITM\_SendChar}()ITM_SendChar()函数在 core_cm3.h 头文件中已定义具体代码如下__STATIC_INLINEuint32_tITM_SendChar(uint32_tch){if(((ITM-TCRITM_TCR_ITMENA_Msk)!0UL)/* ITM enabled */((ITM-TER1UL)!0UL))/* ITM Port #0 enabled */{while(ITM-PORT[0U].u320UL){__NOP();}ITM-PORT[0U].u8(uint8_t)ch;}return(ch);}在主函数main ( ) \text{main}()main()中添加printf \text{printf}printf函数实现信息输出printf(** Test finished successfully. ** \n\r);4 实验结果与总结4.1 实验结果打开 utility 软件点击 printf via SWO viewer 选项。设置对应频率点击 Start 按钮将调试板复位程序设置printf \text{printf}printf函数仅运行一次因此每次输出信息均需重新复位即可在 SWV 窗口中观察到对应的输出信息。4.2 总结在传统调试过程中通常采用断点分析或 LED 灯亮灭状态判断程序运行情况该方式直观性不足且在程序规模较大时操作难度较高。SWO 功能可有效解决该问题可在各类错误处理函数中添加提示信息辅助开展软件开发与调试工作。STM 中文参考手册 V10via:使用 SWO 代替 UART实现 Printf 打印功能_swo 是直接功能还是复用-CSDN 博客https://blog.csdn.net/qq_37663138/article/details/102802553STM32 开发通过 SWO 功能输出 Printf 函数到 Utility_cubemx swo-CSDN 博客https://blog.csdn.net/weixin_46623350/article/details/105305426

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询