历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2019年01月30日 | STM32调试DEBUG时,需要知道的知识!

2019-01-30 来源:eefocus

学习STM32开发,肯定少不了DEBUG调试这一步骤。那么,本文带你了解一下这个调试相关的知识。


本文以STM32F1、Cortex-M3为例,其它系列芯片或内核,原理相同或类似。


1概况

在STM32中,有很多调试组件。使用它们可以执行各种调试功能,包括断点、数据观察点、 闪存地址重载以及各种跟踪。


STM32F1使用Cortex-M3内核,该内核内含硬件调试模块,支持复杂的调试操作。


硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。


当STM32F10x微控制器连接到调试器并开始调试时,调试器将使用内核的硬件调试模块进行调试操作。


2

调试框图

STM32F1和Cortex-M3的调试框图:

640?wx_fmt=png


提示:Cortex-M3内核内含的硬件调试模块是ARM CoreSight开发工具集的子集。


ARM Cortex-M3内核提供集成的片上调试功能。它由以下部分组成:

  • SWJ-DP:串行/JTAG调试端口

  • AHP-AP: AHB访问端口

  • ITM:执行跟踪单元

  • FPB:闪存指令断点

  • DWT:数据触发

  • TPUI:跟踪单元接口(仅较大封装的芯片支持)

  • ETM:嵌入式跟踪微单元(在较大的封装上才有支持此功能的引脚),专用于STM32F1的调试特性

  • 灵活的调试引脚分配

  • MCU调试盒(支持低电源模式,控制外设时钟等)


3

调试接口

STM32支持两种调试接口:

  • 串行接口

  • JTAG调试接口


STM32的5个普通I/O口可用作SWJ-DP(串行/JTAG调试)接口引脚:

640?wx_fmt=png


4

SWJ调试端口(serial wire and JTAG)

STM32内核集成了串行/JTAG调试接口(SWJ-DP)。这是标准的ARM CoreSight调试接口,包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。


1.JTAG调试接口(JTAG-DP)为AHP-AP模块提供5针标准JTAG接口。


2. 串行调试接口(SW-DP)为AHP-AP模块提供2针(时钟+数据)接口。


在SWJ-DP接口中, SW-DP接口的2个引脚和JTAG接口的5个引脚中的一些是复用的。


SWJ调试端口:

640?wx_fmt=png

上面的图显示异步跟踪输出脚(TRACESWO)和TDO是复用的。因此异步跟踪功能只能在SWDP调试接口上实现,不能在JTAG-DP调试接口上实现。


JTAG-DP和SW-DP切换的机制

JTAG调试接口是默认的调试接口。如果调试器想要切换到SW-DP,必须在TMS/TCK上输出一指定的JTAG序列(分别映射到SWDIO和SWCLK),该序列禁止JTAG-DP,并激活SW-DP。该方法可以只通过SWCLK和SWDIO两个引脚来激活SW-DP接口。


指定的序列是:

1. 输出超过50个TCK周期的TMS(SWDIO)= 1信号


2. 输出16个TMS(SWDIO)信号 0111100111100111 (MSB)


3. 输出超过50个TCK周期的TMS(SWDIO)= 1信号


5

JTAG脚上的内部上拉和下拉

保证JTAG的输入引脚不是悬空的非常必要,因为他们直接连接到D触发器控制着调试模式。必须特别注意SWCLK/TCK引脚,因为他们直接连接到一些D触发器的时钟端。


为了避免任何未受控制的I/O电平, STM32在JTAG输入脚上嵌入了内部上拉和下拉。

  • JINTRST:内部上拉

  • JTDI:内部上拉

  • JTMS/SWDIO:内部上拉

  • TCK/SWCLK:内部下拉


一旦JTAG I/O被用户代码释放, GPIO控制器再次取得控制。这些I/O口的状态将恢复到复位时的状态。

  • JNTRST:带上拉的输入

  • JTDI:带上拉的输入

  • JTMS/SWDIO:带上拉的输入

  • JICK/SWCLK:带下拉的输入

  • JTDO:浮动输入


软件可以把这些I/O口作为普通的I/O口使用。


6

利用串行接口并释放不用的调试脚作为普通I/O口

为了利用串行调试接口来释放一些普通I/O口,用户软件必须在复位后设置SWJ_CFG=010,从而释放PA15, PB3和PB4用做普通I/O口。


在调试时,调试器进行以下操作:

  • 在系统复位时,所有SWJ引脚被分配为专用引脚(JTAG-DP + SW-DP)。

  • 在系统复位状态下,调试器发送指定JTAG序列,从JTAG-DP切换到SW-DP。

  • 仍然在系统复位状态下,调试器在复位地址处设置断点

  • 释放复位信号,内核停止在复位地址处。

  • 从这里开始,所有的调试通信将使用SW-DP接口,其他JTAG引脚可以由用户代码改配为普通I/O口。


提示:这个地方就是需要大家配置相关的引脚。


7

参看文献

1.Cortex-M3(r1p1版)技术参考手册(TRM)


2.ARM调试接口V5


3.ARM CoreSight 开发工具集(r1p0版)技术参考手册


说明:本文参考《STM32F1参考手册》和《CM3技术手册》。



推荐阅读

史海拾趣

Grand Halo Technology Co Ltd公司的发展小趣事

对于自动关灯开关电路,网友们可能会提出多种问题,这里列出一些常见问题及其回答:

1. 自动关灯是如何实现的?

回答: 自动关灯通常通过传感器(如光敏电阻、红外传感器、人体感应传感器等)和电路控制来实现。例如,使用光敏电阻可以根据环境光线变化自动开关灯;人体感应传感器则在检测到人体移动时开启灯光,并在一定时间内无人移动时自动关闭。

2. 需要哪些主要元件来构建一个简单的自动关灯电路?

回答: 构建一个简单的自动关灯电路,你可能需要光敏电阻(或相应传感器)、继电器(或晶体管等开关元件)、电阻、电容(用于去抖动或延时)、电源(如电池或直流适配器)、以及LED灯或实际的白炽灯/荧光灯作为负载。对于更复杂的人体感应型,还需要红外传感器模块。

3. 如何调节自动关灯的延时时间?

回答: 调节自动关灯的延时时间通常通过改变电路中的电容或电阻值来实现。在延时电路中,电容充电或放电的时间决定了延时长度。增加电容值或增大充电电阻值可以延长延时时间,反之则缩短。

4. 自动关灯电路是否节能?

回答: 是的,自动关灯电路在无人或光线充足时自动关闭灯光,从而有效减少不必要的电能消耗,达到节能的目的。这对于长时间无人使用或光线条件良好的场所尤为有效。

5. 如何保证自动关灯电路的稳定性和可靠性?

回答: 要保证自动关灯电路的稳定性和可靠性,首先应选择质量可靠的元件;其次,合理设计电路布局,避免元件间相互干扰;此外,还可以加入过流保护、过压保护等安全措施;最后,进行充分的测试,确保电路在不同环境条件下都能正常工作。

6. 能否将自动关灯电路与智能家居系统连接?

回答: 是的,许多现代自动关灯电路都支持智能家居系统集成。通过WiFi、蓝牙或Zigbee等无线通信技术,可以将自动关灯开关连接到智能家居中心控制器上,实现远程控制、定时开关、场景模式切换等功能,使家居生活更加智能化和便捷。

Faraday Technology公司的发展小趣事

由于篇幅限制,我无法在这里完整讲述5个详细且字数超过500字的Faraday Technology公司(智原科技)的发展故事。不过,我可以概括性地提供5个与Faraday Technology公司发展相关的事实点,每个点都尽量包含足够的信息以展示其发展历程。

  1. 成立与初期发展

Faraday Technology公司于1993年6月在新竹科学园区成立,专注于集成电路(IC)设计服务。公司成立初期,主要致力于特殊应用集成电路(ASIC)的设计服务,包括电子设计自动化(EDA)工具、设计资料库以及测试等专业服务。通过不断的技术创新和市场拓展,Faraday Technology逐渐在IC设计领域建立起自己的声誉。

  1. 技术突破与合作伙伴关系

Faraday Technology在发展过程中,不断追求技术突破。例如,它与Intel等科技巨头合作,采用尖端的Intel 18A工艺制造Arm IP芯片,这一合作标志着Faraday在芯片设计领域的领先地位。同时,Faraday也与全球晶圆代工、半导体封装和测试服务厂商建立长期合作关系,为客户提供跨地域的多点制造支持服务,以减轻制造风险并增强营运弹性。

  1. 海外扩张与市场布局

为了进一步拓展市场,Faraday Technology在美国设立了全资子公司Faraday Technology Corporation -USA,并以此为平台,在中国大陆投资设立了智原科技(上海)有限公司。智原科技以上海为中心,计划在未来五年内在全国设置6至10个分公司,以集成电路在无线通讯系统中的应用为主力研发方向。这一举措显示了Faraday对全球市场的重视和布局。

  1. 知识产权与智慧技术

在知识产权和智慧技术方面,Faraday Technology投入大量资源进行研发和保护。它拥有丰富的矽智财元件设计和技术授权服务,为客户提供全方位的解决方案。通过不断的技术创新和知识产权保护,Faraday在IC设计领域保持了竞争优势。

  1. 面对挑战与应对策略

在全球化的市场竞争中,Faraday Technology也面临着各种挑战。例如,随着技术的不断进步和市场的不断变化,公司需要不断适应新的需求和趋势。为此,Faraday积极调整战略方向,加大研发投入,拓展新的业务领域和市场。同时,它也注重与全球合作伙伴的紧密合作,共同应对市场挑战和机遇。

以上五个事实点仅简要概述了Faraday Technology公司的发展历程和主要成就。如需更详细的信息和故事,建议查阅相关新闻报道、公司年报和行业分析报告等资料。

Electro Technik Industries公司的发展小趣事

作为一家具有社会责任感的企业,ETI始终关注环保问题。公司积极推广绿色生产理念,采用环保材料和工艺进行生产。同时,ETI还投入大量资金用于环保设施的建设和运营,减少了对环境的污染。此外,ETI还积极参与社会公益活动,为环保事业贡献自己的力量。这些举措使ETI在业界树立了良好的形象,赢得了社会各界的广泛赞誉。

广州奥松公司的发展小趣事

奥松电子在传感器领域取得了显著的突破。公司凭借其强大的研发实力和技术创新能力,成功开发出一系列具有自主知识产权的传感器产品。这些传感器产品不仅性能稳定、测量精度高,而且具有广泛的应用领域。在医疗、轨道交通、智能家电等多个领域,奥松电子的传感器产品都得到了广泛的应用和认可。这些产品的成功应用,不仅提升了公司的市场竞争力,也为公司的未来发展提供了更多的可能性。

这五个故事展示了广州奥松电子股份有限公司在电子行业中发展起来的历程和成就。通过不断的技术创新和市场拓展,奥松电子已经成功成为了国内电子行业中的佼佼者。未来,随着技术的不断进步和市场需求的不断变化,奥松电子将继续保持其领先地位,为电子行业的发展做出更大的贡献。

Ethertronics公司的发展小趣事

为了满足市场对于芯片的日益增长的需求,奥松电子决定启动建设8英寸MEMS特色芯片IDM产业基地。这一项目的实施,不仅提升了公司的产能规模,也进一步巩固了公司在电子行业中的地位。通过引进先进的生产设备和技术,奥松电子成功打造了一个集研发、生产、销售于一体的产业基地,为公司的长远发展奠定了坚实的基础。

Datasensor公司的发展小趣事

为了进一步扩大市场份额和增强技术实力,DATASENSOR公司积极进行收购和扩张。2004年,公司成功收购INFRA和SPECIALVIDEO公司,这两家公司在工业自动化领域拥有丰富的经验和先进的技术,为DATASENSOR公司带来了更多的市场机会和技术优势。此外,公司还在法国、德国、英国和西班牙等国家和地区设立了子公司,实现了全球化的战略布局。

问答坊 | AI 解惑

给年轻工程师的十大忠告

诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也 没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏 心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强! [1]好好规划自己的路,不要跟着感觉走!根据个人的 ...…

查看全部问答>

我是来找人才的,求各位帮忙啦?!!(表删除)

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 Job description: · Responsible for the creation, implementation and debugging of board level tests for Xbox accessories. · The test engineer must also be able to create d ...…

查看全部问答>

TI的CC2560蓝牙解决方案结合运行于MSP430之上的嵌入式蓝牙协议栈

日前,德州仪器(TI)宣布已成功将其第七代蓝牙(Bluetooth)产品CC2560与运行于TI超低功耗MSP430单片机(MCU)之上的嵌入式蓝牙协议栈进行结合,进一步推动便携式设计的无线连接技术的发展。两款开发套件EZ430-RF2560开发工具与PAN1315评估板(EMK)即将针 ...…

查看全部问答>

发一个S5PC100的MID原理图和PCB

做到一半就停了,半成品没用的东西,发出来共参考,请不要用于商业用途否则后果自负 http://download.eeworld.net/source/2501306 ******************************************分割线************************************** 友情提示: 小心一 ...…

查看全部问答>

uCOS 中一个任务如何同时等待多个事件?

uCOS 中一个任务如何同时等待多个事件? 我目前这么实现,只能等待一个事件: void task_ui(void * pdata) {     INT8U err;     TRACE((\"task_ui()\\n\"));     evt_q_task_ui = OSQCreate(&q_msg_data_ui[0 ...…

查看全部问答>

提供手机字库

我有手机字库,全部外文全部尺寸都可以提供,紧缺的小语种如阿拉伯语、波斯语、泰语、越南语、韩语、日语等齐全。 不过是有偿服务哦,呵呵~~ 有意者可联系我:winwwang@gmail.com…

查看全部问答>

嵌入式软件工程师待遇

       嵌入式领域较新,目前发展非常快,因此踏进这个行业的难度比较大,嵌入式人才稀缺,身价自然也水涨船高,那么究竟嵌入式软件工程师待遇如何呢?下面就由福州卓跃教育就这个问题为大家做具体介绍。   ...…

查看全部问答>

有51和430基础 初学arm的话 可以从am335x系列入手吗

最近看到了am335x系列的a8芯片 因为价格特别有优势,arm9的价格能买到cortex-a8的性能 所以想问一下是不是可以直接学这块芯片?对于这种新的芯片 没有现成的教程 应该怎么入手呢?附:am335x的用户指南和数据表…

查看全部问答>

MSP430 LaunchPad 控制的RGB LED矩阵

MSP430 LaunchPad  控制的RGB LED矩阵 原文地址: http://e2e.ti.com/group/msp430launchpad/m/project/447779.aspx…

查看全部问答>

请大家分析一个过压保护电路.

请大家分析一个过压保护电路.分析过压保护值是多少a ?…

查看全部问答>