搜索
bottom↓
回复: 37

高人来介绍一下SWD接口吧!有没有可能做一个BIN转SWD下载(不是JLINK,不带调试功能)的

[复制链接]

出0入0汤圆

发表于 2010-12-15 21:26:36 | 显示全部楼层 |阅读模式
如题

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-12-15 22:34:40 | 显示全部楼层
完全可以,我的EP968手持机就是如此。
SWD接口简单的说,只要2条信号线就可以实现全部的调试/编程功能。

出0入0汤圆

 楼主| 发表于 2010-12-15 23:32:05 | 显示全部楼层
有时序么?

出0入0汤圆

发表于 2010-12-16 08:41:12 | 显示全部楼层
同问,在google找了几天都没找到swd的详细资料,只有一些简单介绍的文章。

出0入9汤圆

发表于 2010-12-16 08:46:28 | 显示全部楼层
我也同问,我也是在找SWD协议,找了这么久只在ARM官网上找了一份英文自版的简介。哪位高手能给一份完整的?

出0入0汤圆

发表于 2010-12-16 11:48:01 | 显示全部楼层
swd方式怎么加密?

出0入0汤圆

发表于 2010-12-16 14:15:42 | 显示全部楼层
难道一楼是用逻辑分析仪分析出来的?

出0入0汤圆

发表于 2010-12-17 03:04:54 | 显示全部楼层
swd有什么好用逻辑分析仪分析的?

出0入0汤圆

发表于 2010-12-17 08:19:29 | 显示全部楼层
SWD好像是在CoreSight的手册里。
然后结合具体Core的TRM看看就好。

可能您找错手册了。

出0入0汤圆

发表于 2010-12-27 16:29:07 | 显示全部楼层
找了一圈没找着~

出0入0汤圆

发表于 2011-1-19 10:15:51 | 显示全部楼层
同问

出0入0汤圆

发表于 2011-9-2 13:16:27 | 显示全部楼层
硬件仿真是  可以  用逻辑分析仪的,http://www.embedinfo.com/wen-list.asp?id=377
必须在 SW模式

出0入0汤圆

发表于 2011-10-27 15:24:40 | 显示全部楼层
顶啊,来点高手啊,我也有这个想法啊,ISP下载太慢了。想用SWD实现,不知道怎么弄啊!!!每天顶一次,顶个高手出来……

出0入0汤圆

发表于 2011-10-27 19:50:50 | 显示全部楼层
在ARM网站上找了一下:
如果需要了解SWD的细节,需要在ARM网站上免费注_册一个帐号,下载IHI0031 ARM_debug_interface这个文档。

这应该是ARM SWD/JTAG Debug的最基础那个文档,如果需要别的文档,应该能从这个文档中获得相关资料。

出0入0汤圆

发表于 2011-10-27 20:24:52 | 显示全部楼层
回复【13楼】dr2001  
-----------------------------------------------------------------------

我下载下来了,分享给大家一起研究~~

点击此处下载 ourdev_689267S9QZ06.zip(文件大小:1.50M) (原文件名:AR551-DA-70001-r0p0-00rel1.zip)


This zip file contains two documents:

   * IHI0031A_ARM_debug_interface.pdf

     This is the "ARM?Debug Interface v5 Architecture Specification,"
     covering ADIv5 version 5.0.


   * DSA09-PRDC-008772-1-0_ARM_debug_interface_v5_supplement.pdf

     This is the "ARM?Debug Interface v5 Architecture Specification ADIv5.1
     Supplement," an update to ARM?Debug Interface v5 Architecture
     Specification. It includes errata and new features for ADIv5.

     The new features described in the supplement represent a minor revision
     of the architecture specification, and hence the architecture version
     number is v5.1. The new features are backwards compatible with v5.0;
     the version documented by the "ARM?Debug Interface v5 Architecture
     Specification."

The terms "ARM Debug Interface v5" and "ADIv5" refer to the major revision of
ADI, that is, to v5.0, v5.1 or any future minor revision of ADIv5.

出0入0汤圆

发表于 2011-11-3 12:59:32 | 显示全部楼层
回复【13楼】dr2001
在arm网站上找了一下:
如果需要了解swd的细节,需要在arm网站上免费注_册一个帐号,下载ihi0031 arm_debug_interface这个文档。
这应该是arm swd/jtag debug的最基础那个文档,如果需要别的文档,应该能从这个文档中获得相关资料。
-----------------------------------------------------------------------

这2个文档都看过了……还是不会! SWD的协议知道了,但是SWD下载程序的协议还是不知道从哪里开始。就如同已经知道了串口从起始位开始,中间数据位,后面是校验和停止位,以及每位的电平,但是想用串口下载HEX文件还需要ISP协议。。。。再顶起!

出0入0汤圆

发表于 2011-11-3 13:17:08 | 显示全部楼层
等高人介绍。

出0入0汤圆

发表于 2011-11-4 08:55:41 | 显示全部楼层
回复【15楼】cxque  
-----------------------------------------------------------------------

给个大致的思路,具体的我没做过,需要你自己慢慢研究了。

1 侦测目前JTAG接口用的是什么协议,JTAG还是SWD。如果不是SWD,用那个50脉冲法,切换到SWD接口。
  这是因为调试接口分JTAG,SWD,JTAG+SWD三种,要确认用的是哪个,并且转入正常的状态。
2 可能需要是使用某种指令复位一下SWD接口,具体是否需要看手册。
3 根据手册,使用SWD读写ARM Core的调试寄存器,勒令ARM Core进入Halt状态。
  这个的主要目的是不让ARM Core读写Flash内存区,防止写Flash的时候出问题。
4 用SWD实现读写内存的函数。只要不是挂在ARM内部总线上的外设和内存,SWD是可以直接访问的。
  一般来说内存控制器和内存存储区都可以直接访问,不需要ARM Core。
5 利用SWD的读写函数直接操作Flash烧写。基本和ARM Core的程序流程类似。
6 完成后直接发个硬件Reset信号,或者软件复位ARM Core。

共参考。

出0入0汤圆

发表于 2011-11-4 21:27:20 | 显示全部楼层
回复【17楼】dr2001  
回复【15楼】cxque  
-----------------------------------------------------------------------
给个大致的思路,具体的我没做过,需要你自己慢慢研究了。
1 侦测目前jtag接口用的是什么协议,jtag还是swd。如果不是swd,用那个50脉冲法,切换到swd接口。
  这是因为调试接口分jtag,swd,jtag+swd三种,要确认用的是哪个,并且转入正常的状态。
2 可能需要是使用某种指令复位一下swd接口,具体是否需要看手册。
3 根据手册,使用swd读写arm core的调试寄存器,勒令arm core进入halt状态。
  这个的主要目的是不让arm core读写flash内存区,防止写flash的时候出问题。
4 用swd实现读写内存的函数。只要不是挂在arm内部总线上的外设和内存,swd是可以直接访问......
-----------------------------------------------------------------------


这位大侠回复很仔细阿。。。

但是我也很疑惑,看SWD协议,还是不知道如何访问内存和FLASH,发送读命令或者写命令的时候地址都是只有2位的……,等待大侠解释。

出0入0汤圆

发表于 2011-11-4 22:56:37 | 显示全部楼层
认真阅读全文即可,文档写的已经很清楚了。

关于你的问题,参考楼上贴的IHI0031A,图2-2,图8-1。
假定你用的SWD,简要流程:
1、使用SWD的DPACC访问DP,读ID确认DP的特性。
2、使用DPACC-AP Select选中AP并且设置AP Bank地址,然后用APACC访问AP的ID。枚举所有可能的AP地址,确认所有的AP都是什么并获得其特性。
3、对读写ARM内存来说,一般需要MEM-AP且类型是AHB的;通过上步枚举,需要找到这个MEM-AP。不同芯片对应的配置数据主要用于确认用哪个AP访问谁。
4、设定DPACC选中MEM-AP;然后用APACC设定MEM-AP的TAR;然后用APACC访问MEM-AP的DRW触发内存读写操作,并且获得实际内存数据。

IHI0031给定的是通用的操作流程和指令定义,操作的需求和细节手册里都有,阅读理解就好。
他们的具体应用需要把IHI0031和具体Core的TRM结合起来。TRM会给出具体的DP和AP实现了哪些REG,完成哪些功能,etc。或者是用户可自行配置的,etc。

ARM的文档手册算是相当开放的,注_册个帐号,Core的大部分内容都可以获得。

出0入0汤圆

发表于 2011-11-8 09:36:20 | 显示全部楼层
回复【19楼】dr2001
认真阅读全文即可,文档写的已经很清楚了。
关于你的问题,参考楼上贴的ihi0031a,图2-2,图8-1。
假定你用的swd,简要流程:
1、使用swd的dpacc访问dp,读id确认dp的特性。
2、使用dpacc-ap select选中ap并且设置ap bank地址,然后用apacc访问ap的id。枚举所有可能的ap地址,确认所有的ap都是什么并获得其特性。
3、对读写arm内存来说,一般需要mem-ap且类型是ahb的;通过上步枚举,需要找到这个mem-ap。不同芯片对应的配置数据主要用于确认用哪个ap访问谁。
4、设定dpacc选中mem-ap;然后用apacc设定mem-ap的tar;然后用apacc访问mem-ap的drw触发内存读写操作,并且获得实际内存数据。
ihi0031给定的是通用的操作流程和指令定义,操作的需求和细节手册里都有,阅读理解就好。
他们的具......
-----------------------------------------------------------------------

高手啊@@ 不过目前还没看懂你的意思。回去慢慢把文档看明白先。 看来2遍,一头雾水啊,什么DPACC,APACC都不知道是啥……

出0入0汤圆

发表于 2011-11-8 10:01:09 | 显示全部楼层
mark swd

出0入0汤圆

发表于 2011-11-8 11:15:09 | 显示全部楼层
回复【21楼】cxque  
-----------------------------------------------------------------------

我说的那些内容都在IHI0031中有详细描述。
IHI0031有几个框图,十分清晰的表明了操作方法。查找、阅读文档,把那个图理解清楚就都好办了。

有问题的话,就在这个帖子里讨论吧。以后万一要用到什么内容也好找一点。呵呵。

出0入0汤圆

发表于 2011-11-8 11:50:31 | 显示全部楼层
多谢分享,

出0入0汤圆

发表于 2011-11-10 22:17:42 | 显示全部楼层
回复【23楼】dr2001
回复【21楼】cxque   
-----------------------------------------------------------------------
我说的那些内容都在ihi0031中有详细描述。
ihi0031有几个框图,十分清晰的表明了操作方法。查找、阅读文档,把那个图理解清楚就都好办了。
有问题的话,就在这个帖子里讨论吧。以后万一要用到什么内容也好找一点。呵呵。
-----------------------------------------------------------------------

多谢您的回复和仔细指导,看了你的说明,然后根据你说的两张图仔细看了文档,好像流程和结构是比较明白了。真是多谢了啊。!!

Flash和DEBUG MEMERY都是mem-ap,他俩挂载的总线不一样,如何区别呢?或者说如何通过属性区别呢,没找到各自属性的表示方法……

出0入0汤圆

发表于 2011-11-11 08:03:46 | 显示全部楼层
回复【25楼】shpan_111  
-----------------------------------------------------------------------

在访问AP的时候,最后有寄存器保存的是ID,这里边能得到每个AP的基本信息是什么。

具体每个芯片里边的AP是如何配置的,那就需要看具体内核的手册了,比如要用STM32的话,就需要看CortexM3的TRM。
TRM里边说明了它配置了什么样的AP,地址是什么,连接到哪个总线,etc。

这些信息也不尽完善,只能边写程序边测试了。

出0入0汤圆

发表于 2013-10-8 22:26:20 | 显示全部楼层
wuguoyan 发表于 2011-10-27 20:24
回复【13楼】dr2001  
-----------------------------------------------------------------------

十分感谢

出0入0汤圆

发表于 2013-10-9 00:22:19 | 显示全部楼层
关注SWD!好像这个用得非常少

出0入0汤圆

发表于 2014-2-10 13:22:24 | 显示全部楼层
我在搞SWD,但是为什么读AP读出来全是0,ACK为100,读DP可以读对,ACK也是100,不知道问题在哪儿,搞了好久了.

出0入0汤圆

发表于 2014-3-2 17:17:33 | 显示全部楼层
有没有高人做成了的?

出0入0汤圆

发表于 2014-3-10 10:14:54 | 显示全部楼层
顶一个,想自己动手做一做,关键在于了解!

出10入95汤圆

发表于 2015-1-15 10:04:51 | 显示全部楼层
SWD协议!
多谢分享!

出0入0汤圆

发表于 2015-5-24 20:44:28 | 显示全部楼层
SWD下载确实方便~

出0入0汤圆

发表于 2015-8-11 11:24:29 | 显示全部楼层
太腻害了,

可是文件下不来啊,奇怪。。。。。

出0入0汤圆

发表于 2018-4-26 22:26:26 | 显示全部楼层
看不懂,大神和菜鸟的差距!

出0入0汤圆

发表于 2018-4-27 11:54:03 | 显示全部楼层
mark一下,swd

出0入0汤圆

发表于 2018-12-17 18:16:55 | 显示全部楼层
看不懂,大神和菜鸟的差距!

出0入0汤圆

发表于 2019-5-23 15:54:13 | 显示全部楼层
谢谢楼上的各位,正在学习中。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 16:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表