从下表可看出支持JTAG的IR为0x01,0x10,0x11,其他都是BYPASS。 其中0x01是操作IDCODE获取厂商版本信息。 0x10是直接控制dtm,即dtm的控制和状态寄存器。 0x11是操作dmi,通过dmi来间接操作dm。 从上面框图可以看到,和DM交互,最重要的是DTM通过DMI访问DM的过程,其中我们现在JTAG具备的直接能力是只能够操作DTM的IR和...
1>DTM模块 在DTM模块里实现了一个TAP控制器(状态机),其中IR寄存器的长度最少为5位,当TAP控制器复位...
DMI是芯片内部总线,可以使用简单的自定义总线,也可以是TileLink/AMBA这类标准总线。在调试系统中,存在一个DTM模块,负责将外部调试接口(如JTAG/USB接口)转换成内部DMI总线的请求,从而使调试器可以通过外部调试接口访问到DM内部寄存器,进而控制内核的调试状态。 DM模块内部寄存器列表如下: 地址寄存器描述 DM相关寄存器 0x10...
可以看到主要分为3个部分,分别是Debug Host,可以理解为PC;Debug Hardware,可以理解为JLink或者CMSIS-DAP这样的调试工具;第三部分就是嵌入在芯片内部的调试模块。在调试模块内部,与调试工具直接交互的是DTM模块,DTM模块通过DMI接口与DM模块交互。 2.1DTM模块 在DTM模块里实现了一个TAP控制器(状态机),其中IR寄存器的长...
对应RISCV中的定义如下,主要选择的IR就是0x10和0x11,然后对应的DR就是分别对应的是dtmcs和dmi的数据寄存器。其中选择IDCODE则DR在TDO输出的是32位厂商代码。 在这里其实可以理解为只是使用了JTAG的这种硬件的数据链路,即选择IR对应不同的DR内容的操作形式。规格书中介绍了基于JTAG的DTM实现,实际上也不可以不用JTAG...
16:DTM 17:硬件实现 18:调试示例 调试模块(debug module)是risc-v内核设计的比较独立也比较重要的一块,虽然0.13.2是risc-v debug的draft版本,但目前市面上risc-v处理器的调试模块几乎都是基于这个spec设计,在risc-v处理器设计中添加调试模块(电路)的目的是在设计固化后,用户仍能获取当前系统状态(通过访问各种资...
HI3861使用 五线JTAG+DTM 或 两线SWD+CoreSight 形式进行OpenOCD Debug 基于https://github.com/riscv/riscv-openocd/releases/tag/v2018.12.0 进行适配RISCV-CoreSight 目录讲解 bin/ 存放openocd.exe+依赖的dll bin_dir/ 存放需要烧写的HI3861的bin,包括SWD/JTAG,示例 ...
调试需要通过debug ram完成,比如,要对SoC中的寄存器或内存进行写入操作,就需要先将如下程序和数据通过dtm写入到debug ram: 为什么RISC-V External Debug Support Version 0.11nov12这个spec规定32位的risc-v至少要28byte(7 words)的debug ram? 审核编辑:汤梓红 ...
In addition, the JTAG debug transport module (DTM) is fully supported. The EMSA5-FS is suitable for implementing microcontrollers in automotive, aerospace, medical and other safety-critical devices and systems. About Fraunhofer IPMS The Fraunhofer Institute for Photonic Microsystems IPMS stands for ...
区别于RISC-V经典的4线JTAG调试接口,青稞处理器引入两线甚至单线的DTM接口,只需两个甚至一个I/O即可实现对处理器的调试和下载。 4、“WFE”指令 RISC-V规范中没有WFE指令,为满足蓝牙运用的多种低功耗场景,青稞处理器增加WFE指令,只需把快速可编程中断控制器(PFIC)中的系统控制寄存器的特定位置1,即可将 “WFI...