【免公众号源码】【文件下载网页源码】【积分下载素材源码】swd源码

来源:精志愿源码

1.FreeMaster - MCU的调试利器
2.SWD协议分析(附SWD离线下载源码)
3.printf系列教程00_概述printf各种打印输出方法和相关内容
4.swd的全称是什么?
5.Keil介绍_Keil是什么
6.使用CodeViser调试RK3399处理器以及Linux kernel指导(第一部分)

swd源码

FreeMaster - MCU的调试利器

       FreeMaster是什么?

       FreeMaster是NXP官方提供的一款免费、用于数据可视化的MCU调试软件。通过SWD、UART、CAN等通信接口,它可以在PC上显示MCU中的免公众号源码数据变量。无需在目标工程中引入FreeMaster相关的源代码,只需将需要实时显示的变量设为全局变量或静态局部变量。FreeMaster通过SWD接口读取内存值,并实时显示在界面上。

       FreeMaster如何工作?

       在使用jlink调试工具连接的情况下,FreeMaster能通过SWD接口读取内存,无需修改目标工程代码。它支持显示和修改内存变量,但可视化功能较为强大,如显示波形等。FreeMaster在基本数据读写基础上增加了丰富的可视化功能,帮助用户更直观地调试ARM内核MCU代码。

       FreeMaster的版本与下载

       FreeMaster有多个版本,从2.0移植到最新3.2。除了传统的FreeMASTER上位机外,还有FreeMaster Lite支持Web远程通信和第三方使用JSON-RPC的应用。FreeMaster 2.0至2.5版本适合大多数调试需求,3.0以上版本体积大,功能多,但并非所有用户都需使用。提供下载链接方便用户获取。

       FreeMaster的基本设置

       安装后,新建工程以保存配置,便于后续更新。在使用SWD时,无需修改工程设置和代码。选择通信方式(推荐Plug-in模式)并引入axf文件,即可在FreeMaster中索引变量名称和地址。新增变量观察器,文件下载网页源码设置观测类型、大小、频率和格式。创建波形图显示界面,设置显示变量、颜色和坐标轴。导出观测数据进行分析。

       总结

       FreeMaster提供强大的数据可视化功能,简化了MCU调试过程。其版本多样,适合不同需求。通过基本设置和高级功能,用户可更直观地进行代码调试,尤其适用于电控算法的调试。此外,导出功能支持数据记录和分析,提升调试效率。

SWD协议分析(附SWD离线下载源码)

       SWD协议分析内容

       SWD协议的基本信息比特序,即数据传输顺序为最低有效位优先,先传输低位数据,后传输高位数据。例如,对OK的ACK响应数据为0b,先传输低位1,再传输高位0。

       SWD的传输闲置状态为空闲周期,主机通过将SWDCLK时钟拉低来代表空闲时期。

       ARM SWD采用单条双向数据连接线(SWDIO),为了防止主机与设备间的竞争,在传输方向变化时需要线路周转,此期间主机与设备均不驱动数据线,数据线状态不确定。周转时间长度由DLCR寄存器的TURNROUND位控制,默认为一个时钟周期。积分下载素材源码

       在数据传输过程中,SWD使用偶校验,传输数据中为1的个数为偶数则结果为0,否则为1。

       数据基本传输流程包括数据传输方向和开始条件。ORUNDETECT标志位代表超时检测模式,该模式允许长时间高吞吐量连接,上电后默认禁用。数据传输步骤包括写请求和读请求,写请求在ACK阶段和数据传输阶段有一个周转期,读请求在数据传输阶段后存在周转期。

       数据包请求后始终为转换时间,此时主机和目标均不驱动线路。ACK响应包含转换时间,仅在发生READ事务或接受WAIT或FAULT确认时需要。DATA传输包含转换时间,仅在READ事务中存在。

       数据传输完毕后,主机需进行操作。SWD寄存器介绍包括SW-DP状态机、SW-DP寄存器和SW-AP寄存器。状态机有内部ID代码,目标读取前状态机不工作。APnDP值决定访问这些寄存器。

       AHB-AP具有位AHB-DP寄存器,地址宽度为6位,最多达字节或字节。

       SWD协议的操作包括成功写入和读取操作。写入操作在主机接收到OK的ACK响应后立即开始数据传输,无需周转期。读取操作在数据传输完毕后存在周转期。

       从JTAG切换到SWD操作涉及位JTAG到SWD选择序列,包括读取芯片ID、清除错误标志位和使能AP调试。海外电视源码读取MCU任意寄存器需发送两次读操作或一次读操作后发送一次读RDBUFF寄存器操作。写入MCU任意寄存器需参考相关文档。

       具体操作流程和更多细节可参阅相关文档资料和源码。附件包含ARM调试接口架构规范和DAPProg源码。

printf系列教程_概述printf各种打印输出方法和相关内容

       说明:

       本文为『strongerHuang』原创,首发于微信公众号『嵌入式专栏』,同时在个人网站EmbeddedDevelop上更新。

       标签:printf、SWD、SWO、SWV、ITM、JLink-RTT、ST-Link、J-Link、仿真、重定义、串口映射

       一、写在前面

       在MCU项目中,printf主要用于调试信息输出,如程序执行异常时显示错误提示。

       前文在公众号『strongerHuang』发布文章《基于STM的多种printf用法》后,得到良好反馈,故整理成此详细教程系列。

       目前整理的文章涵盖:

       UART打印输出

       仿真打印输出

       SWO打印输出

       JLink-RTT打印输出

       除了仿真,其他三种方式均基于MCU硬件实现打印输出,UART效率最低,SWO与JLink-RTT效率更高。

       二、printf输出方式

       本教程聚焦MCU的printf打印输出方法,常见方式包括:

       使用UART串口输出

       仿真环境内的输出

       SWO打印输出

       JLink-RTT打印输出

       除仿真外,其他三种为基于MCU硬件的打印输出,从效率看,UART < SWO < JLink-RTT。半价抢购商城源码

       每种printf输出方式各有应用场景,具备独特特点。

       三、实验现象

       通过实验现象了解printf内容,后续文章将详细配置。

       3.1 UART打印输出

       UART是常见的打印输出方式,需占用硬件UART串口。

       3.2 仿真打印输出

       在集成开发环境内模拟printf输出,无需连接物理开发板即可实现。

       3.3 SWO打印输出

       SWO(Serial Wire Output)提供串行线输出,SWD(Serial Wire Debug)用于调试,SWV(Serial Wire Viewer)用于查看。

       SWO输出需额外SWO引脚线,配合SWV查看器使用。

       基于Keil的『Debug(printf)Viewer』

       基于IAR的『Terminal IO』

       基于ST-LINK Utility的『Serial Wire Viewer』

       基于J-Link的『SWO Viewer』

       说明:前两种工具可分别在ST-Link和J-link下查看,第三种专用于ST-Link,第四种专用于J-link。

       3.4 JLink-RTT打印输出

       无需使用UART串口或额外SWO引脚,需在代码中添加相关配置。

       四、软、硬件工具及其它说明

       教程使用的软件和工具包含:

       STMCubeMX

       Keil MDK-ARM

       IAR EWARM

       STM ST-LINK Utility

       J-Link / J-Trace

       硬件要求:

       MCU开发板(Cortex-M3、M4均可,本教程以STMF0、F1、F4系列为例)

       下载调试器(ST-Link或J-Link)

       PC(推荐Windows系统,兼容MDK-ARM)

       额外说明:

       提供源代码工程下载

       不推荐使用软件仿真,因开发板成本较低且仿真与实际可能存在差异

       五、说明

       文档仅供个人学习使用,禁止商用。由个人编辑整理,可能存在错误。教程同步更新于微信公众号『嵌入式专栏』,关注公众号回复printf系列教程查看。

       博客:strongerhuang.com

       GitHub:github.com/EmbeddedDeve...

       关注微信公众号『strongerHuang』,在底部菜单中查看更多内容!

swd的全称是什么?

       在单片机领域,STCCRC因其方便的烧录特性,使得许多开发者倾向于选择STC的产品。而ARM内核单片机则通常采用JTAG或SWD协议进行烧录。JTAG协议引脚较多,能够支持更多类型的单片机进行编程、调试和生产测试,但占用的板子尺寸较大。相反,SWD协议引脚数更少,便于节省电路板空间,且具有特殊功能,如通过其I/O线打印调试信息,且在高速大数据环境下性能更佳。然而,SWD仅适用于ARM内核单片机。

       在STM单片机的开发中,通常会使用SWD,如ST-Link,因为其引脚节约、调试下载稳定的特点。对于Pin座子,其多用于开发板,目的是方便调试,无需额外引线。

       此外,分享了一份全面的单片机学习资源,包括C语言、单片机、模电数电、原理图和PCB设计、单片机高级编程等资料,覆盖从入门到进阶的学习路径。这份资料包还包括个热门项目,包含源码、原理图、PCB设计及说明文档,能帮助学习者快速提升技能。有同学凭借这份资料成功入职BAT,非常推荐保存并深入学习。

       如果您对这份资源感兴趣,可以点击下方卡片查看获取方法,或者联系「无际单片机」获取。我们还会组建技术交流群,提供一个交流平台,让学习者能接触到更多高手,从而提升对行业的认知。

Keil介绍_Keil是什么

       本文将详细介绍Keil uVision5这款专业的C语言软件开发工具,它以其功能齐全和破解版本的便捷性受到开发者关注。Keil uVision5 v5.中文纪念版提供了工程管理、源代码编辑、下载调试等全方位服务,特别适合Cortex-M、Cortex-R4、ARM7等产品的开发。

       作为一款编程开发工具,它支持C和汇编源文件的编辑,且内置的LWIP和SWD下载功能在速度和管理上都有显著提升。Keil uVision5的特点包括丰富的库功能,如标准文件系统支持、灵活的图形界面、网络开发组件以及USB设备开发支持,极大地提高了开发效率。

       新版本还提供了文档资源方便查阅,多种代码模板例程帮助开发者快速上手,简化项目维护,使得代码重用变得更加简单。其驱动程序支持的灵活性使得更换新设备时无需重写大量代码,只需简单配置即可,进一步增强了代码的可重用性。

       此外,Keil uVision5软件包不断更新,兼容性优化,并且开源,支持第三方组件的添加,为开发者提供了更大的灵活性。如果你对这款强大的开发工具感兴趣,可以点击以下链接下载其v5.中文纪念版:

       点击下载:Keil uVision5完美破解版(附注册机)v5.中文纪念版下载

使用CodeViser调试RK处理器以及Linux kernel指导(第一部分)

       CodeViser是由J&D Tech公司开发的一款JTAG仿真器,兼容ARM和RISC-V等CPU核。其配套的CVD调试软件提供了一个高效稳定的调试环境,支持源码级调试和强大的脚本命令。本文将讨论如何使用CodeViser调试瑞芯微公司RK多核芯片,开发板选用华清FS开发板。

       RK的CPU采用big.LITTLE大小核架构,拥有双Cortex-A大核和四Cortex-A小核,对整数、浮点、内存等方面进行了大幅优化,在整体性能、功耗和核心面积三个方面都实现了革命性提升。

       串口设置

       1、打开Putty串口工具,在“Connection Type”下选择Serial,在“Serial Line”下的框中填写COM5(根据你的PC设备管理器查看你的串口是COM几),在“Speed”下的框中填写波特率为。

       2、选择左边“Category”最下方的“Serial”,将右边的“Flow Control”改为“None”。

       3、点击下面的“Open”按钮,即可打开串口。

       注意:串口线需连接到RK板子的UART2上。

       4、给板子上电,然后在串口中按Ctrl-C,让程序停在boot循环中。

       CVD设置和调试

       1、将CVD仿真器USB电缆与PC机相连,将CVD的JTAG/SWD适配版与RK板子的JTAG端口相连。

       2、根据板子提示,设置板子卡槽边上的拨码开关,选择JTAG(1 on,2 off,3 off)或SWD(1 off,2 on,3 on)调试方式。

       3、打开CVD软件,设置Coresight中调试用的CodeBase地址和CTI Base地址,从菜单上选择Config->Interface,然后,Method选择manual,CPU选择AA,core选择6个,我先选择的是SWD调试方式。

       然后,选择Coresight选项卡,设置Base Address->Code Base,A Core0、Core1、Core2和Core3地址是0x、0x、0x和0x。

       A Core4和Core5的地址是0x和0x。

       再选择Coresight选项卡,设置Base Address->Cti Base,A Core0、Core1、Core2和Core3地址是0x、0x、0xA和0xB。

       A Core4和Core5的地址是0x和0x。

       SWD调试

       1、按System->System Mode->Up,系统进入Debug模式,可以进行基本调试了。

       2、按工具条上向右的**箭头图标,可以显示调试窗口。

       再按Debug List View视图中的STEP或OVER按钮或工具条上的Step in或Step Over,就可以进行单步调试了。

       打开寄存器窗口,可看到调试时,有变化的寄存器高亮显示。

       注意:我试了将拨码开关设置成JTAG模式,无法进行调试。

       未完待续!

       第二部分Linux Kernel调试和多核调试内容将在下周发布,敬请关注!

文章所属分类:知识频道,点击进入>>